Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Portierung CCU.IO

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Portierung CCU.IO

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      derrapf last edited by

      Hab grad mal getestet:

      Wenn ich alle Scripte deaktiviere ist Ruhe.

      Ich habe ein Testscript mal eben aktiviert:

      var idTrockner       = 'hm-rega.0.44879';     //*STAT_W.Trockner_fertig*/
      var idSprache        = 'sayit.0.tts.text';    // Sprachausgabe Browser
      
      on ({id: idTrockner}, function (data) {
         sayFinish(idTrockner, 'Der Trockner ist fertig');
      });     
      
      function sayFinish(idGeraet, text)
      {
                  setState(idSprache, text);
      }
      

      Sobald das aktiviert st kommen die Logs. Ohne dass überhaupt ein Wert von idTrockner geändert wird.

      bananapi	2015-11-03 22:56:02	info	host.bananapi instance system.adapter.sayit.0 started with pid 5408
      bananapi	2015-11-03 22:56:02	info	host.bananapi instance system.adapter.sayit.0 started with pid 5408
      hm-rega.0	2015-11-03 22:55:58	info	hm-rega.0 State 46031 650
      hm-rega.0	2015-11-03 22:55:58	info	hm-rega.0 State 46030 1019
      hm-rega.0	2015-11-03 22:55:57	info	hm-rega.0 State 36952 7.87
      hm-rega.0	2015-11-03 22:55:57	info	hm-rega.0 State 36816 8.32
      hm-rega.0	2015-11-03 22:55:57	info	hm-rega.0 State 36815 7.97
      hm-rega.0	2015-11-03 22:55:56	info	hm-rega.0 State 34330 5.3
      hm-rega.0	2015-11-03 22:55:56	info	hm-rega.0 State 34124 101954
      hm-rega.0	2015-11-03 22:55:56	info	hm-rega.0 State 34122 9.82
      hm-rega.0	2015-11-03 22:55:56	info	hm-rega.0 State 32642 78
      hm-rega.0	2015-11-03 22:55:55	info	hm-rega.0 State 12338 10
      hm-rega.0	2015-11-03 22:55:55	info	hm-rega.0 State 11970 6.1
      bananapi	2015-11-03 22:55:32	info	host.bananapi Restart adapter system.adapter.sayit.0 because enabled
      bananapi	2015-11-03 22:55:32	error	host.bananapi instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
      bananapi	2015-11-03 22:55:32	info	host.bananapi Restart adapter system.adapter.sayit.0 because enabled
      bananapi	2015-11-03 22:55:32	error	host.bananapi instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
      Error:	2015-11-03 22:55:31	error	at TCP.close (net.js:485:12)
      Error:	2015-11-03 22:55:31	error	at TLSSocket.emit (events.js:129:20)
      Error:	2015-11-03 22:55:31	error	at TLSSocket.socketCloseListener (_http_client.js:247:23)
      Error:	2015-11-03 22:55:31	error	at createHangUpError (_http_client.js:215:15)
      Error:	2015-11-03 22:55:31	error	socket hang up
      uncaught	2015-11-03 22:55:31	error	exception: socket hang up
      Error:	2015-11-03 22:55:31	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
      Error:	2015-11-03 22:55:31	error	at exports._errnoException (util.js:746:11)
      Error:	2015-11-03 22:55:31	error	connect EHOSTUNREACH
      uncaught	2015-11-03 22:55:31	error	exception: connect EHOSTUNREACH
      hm-rega-0	2015-11-03 22:55:28	info	State 46031 650
      hm-rega-0	2015-11-03 22:55:28	info	State 46030 1019
      sayit-0	2015-11-03 22:55:28	info	saying: Der Trockner ist fertig
      hm-rega-0	2015-11-03 22:55:27	info	State 36952 7.87
      hm-rega-0	2015-11-03 22:55:27	info	State 36816 8.32
      hm-rega-0	2015-11-03 22:55:27	info	State 36815 7.97
      hm-rega-0	2015-11-03 22:55:26	info	State 34330 5.3
      hm-rega-0	2015-11-03 22:55:26	info	State 34124 101954
      hm-rega-0	2015-11-03 22:55:26	info	State 34122 9.82
      hm-rega-0	2015-11-03 22:55:26	info	State 32642 78
      hm-rega-0	2015-11-03 22:55:25	info	State 12338 10
      hm-rega-0	2015-11-03 22:55:25	info	State 11970 6.1
      sayit-0	2015-11-03 22:55:06	info	Upload announce mp3 files
      sayit-0	2015-11-03 22:55:06	info	starting. Version 0.3.11 in /opt/iobroker/node_modules/iobroker.sayit
      host-bananapi	2015-11-03 22:55:02	info	instance system.adapter.sayit.0 started with pid 5400
      hm-rega-0	2015-11-03 22:54:58	info	State 46717 41.4
      hm-rega-0	2015-11-03 22:54:58	info	State 46031 647
      hm-rega-0	2015-11-03 22:54:58	info	State 46030 1018
      hm-rega-0	2015-11-03 22:54:57	info	State 36952 7.87
      hm-rega-0	2015-11-03 22:54:57	info	State 36816 8.32
      hm-rega-0	2015-11-03 22:54:57	info	State 36815 7.97
      hm-rega-0	2015-11-03 22:54:56	info	State 34330 5.3
      hm-rega-0	2015-11-03 22:54:56	info	State 34124 101954
      hm-rega-0	2015-11-03 22:54:56	info	State 34122 9.82
      hm-rega-0	2015-11-03 22:54:56	info	State 32642 78
      hm-rega-0	2015-11-03 22:54:55	info	State 12338 10
      hm-rega-0	2015-11-03 22:54:55	info	State 11970 6.1
      host-bananapi	2015-11-03 22:54:32	info	Restart adapter system.adapter.sayit.0 because enabled
      host-bananapi	2015-11-03 22:54:32	error	instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
      Error:	2015-11-03 22:54:31	error	at TCP.close (net.js:485:12)
      Error:	2015-11-03 22:54:31	error	at TLSSocket.emit (events.js:129:20)
      Error:	2015-11-03 22:54:31	error	at TLSSocket.socketCloseListener (_http_client.js:247:23)
      Error:	2015-11-03 22:54:31	error	at createHangUpError (_http_client.js:215:15)
      Error:	2015-11-03 22:54:31	error	socket hang up
      uncaught	2015-11-03 22:54:31	error	exception: socket hang up
      Error:	2015-11-03 22:54:31	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
      Error:	2015-11-03 22:54:31	error	at exports._errnoException (util.js:746:11)
      Error:	2015-11-03 22:54:31	error	connect EHOSTUNREACH
      uncaught	2015-11-03 22:54:31	error	exception: connect EHOSTUNREACH
      hm-rega-0	2015-11-03 22:54:28	info	State 46717 41.4
      hm-rega-0	2015-11-03 22:54:28	info	State 46031 647
      hm-rega-0	2015-11-03 22:54:28	info	State 46030 1018
      sayit-0	2015-11-03 22:54:28	info	saying: Der Trockner ist fertig
      hm-rega-0	2015-11-03 22:54:26	info	State 36952 7.87
      hm-rega-0	2015-11-03 22:54:26	info	State 36816 8.32
      hm-rega-0	2015-11-03 22:54:26	info	State 36815 7.97
      hm-rega-0	2015-11-03 22:54:26	info	State 34330 5.3
      hm-rega-0	2015-11-03 22:54:26	info	State 34124 101954
      hm-rega-0	2015-11-03 22:54:26	info	State 34122 9.82
      hm-rega-0	2015-11-03 22:54:25	info	State 32642 78
      hm-rega-0	2015-11-03 22:54:24	info	State 12338 10
      hm-rega-0	2015-11-03 22:54:24	info	State 11970 6.1
      sayit-0	2015-11-03 22:54:06	info	Upload announce mp3 files
      sayit-0	2015-11-03 22:54:06	info	starting. Version 0.3.11 in /opt/iobroker/node_modules/iobroker.sayit
      host-bananapi	2015-11-03 22:54:02	info	instance system.adapter.sayit.0 started with pid 5392
      hm-rega-0	2015-11-03 22:53:58	info	State 46717 41.4
      hm-rega-0	2015-11-03 22:53:58	info	State 46031 647
      hm-rega-0	2015-11-03 22:53:58	info	State 46030 1018
      hm-rega-0	2015-11-03 22:53:57	info	State 36952 7.87
      hm-rega-0	2015-11-03 22:53:57	info	State 36816 8.32
      hm-rega-0	2015-11-03 22:53:57	info	State 36815 7.97
      hm-rega-0	2015-11-03 22:53:56	info	State 34330 5.3
      hm-rega-0	2015-11-03 22:53:56	info	State 34124 101954
      hm-rega-0	2015-11-03 22:53:56	info	State 34122 9.82
      hm-rega-0	2015-11-03 22:53:56	info	State 32642 78
      hm-rega-0	2015-11-03 22:53:55	info	State 12338 10
      hm-rega-0	2015-11-03 22:53:55	info	State 11970 6.1
      host-bananapi	2015-11-03 22:53:32	info	Restart adapter system.adapter.sayit.0 because enabled
      host-bananapi	2015-11-03 22:53:32	error	instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
      Error:	2015-11-03 22:53:32	error	at TCP.close (net.js:485:12)
      Error:	2015-11-03 22:53:32	error	at TLSSocket.emit (events.js:129:20)
      Error:	2015-11-03 22:53:32	error	at TLSSocket.socketCloseListener (_http_client.js:247:23)
      Error:	2015-11-03 22:53:32	error	at createHangUpError (_http_client.js:215:15)
      Error:	2015-11-03 22:53:32	error	socket hang up
      uncaught	2015-11-03 22:53:32	error	exception: socket hang up
      Error:	2015-11-03 22:53:32	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
      Error:	2015-11-03 22:53:32	error	at exports._errnoException (util.js:746:11)
      Error:	2015-11-03 22:53:32	error	connect EHOSTUNREACH
      uncaught	2015-11-03 22:53:32	error	exception: connect EHOSTUNREACH
      hm-rega-0	2015-11-03 22:53:29	info	State 46717 41.4
      sayit-0	2015-11-03 22:53:28	info	saying: Der Trockner ist fertig
      hm-rega-0	2015-11-03 22:53:29	info	State 46031 647
      hm-rega-0	2015-11-03 22:53:29	info	State 46030 1018
      hm-rega-0	2015-11-03 22:53:27	info	State 36952 7.87
      hm-rega-0	2015-11-03 22:53:27	info	State 36816 8.32
      hm-rega-0	2015-11-03 22:53:27	info	State 36815 7.97
      hm-rega-0	2015-11-03 22:53:27	info	State 34330 5.3
      hm-rega-0	2015-11-03 22:53:27	info	State 34124 101954
      hm-rega-0	2015-11-03 22:53:27	info	State 34122 9.82
      hm-rega-0	2015-11-03 22:53:26	info	State 32642 78
      hm-rega-0	2015-11-03 22:53:25	info	State 12338 10
      hm-rega-0	2015-11-03 22:53:25	info	State 11970 6.1
      javascript-0	2015-11-03 22:53:03	info	script.js.Test2: registered 1 subscription and 0 schedules
      javascript-0	2015-11-03 22:53:03	info	Start javascript script.js.Test2
      

      Gruss Ralf

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Wenn du die Variable sayit.0.tts.text händisch beschreibst (aus admin), kannst du was hören?

        1 Reply Last reply Reply Quote 0
        • D
          derrapf last edited by

          Ah!

          Ich weiss warum das Dings loopt:

          Weil ich nur geschrieben habe:

          on ({id: idTrockner'}, function (data) {
             sayFinish(idTrockner, 'Der Trockner ist fertig');
          }); 
          
          

          Soll das so sein?

          Wenn ich change: 'ne' dazu schreibe wird wieder getriggert, aber dann kommt auch wieder der Absturz des Adapters.

          Wir haben also zwei Baustellen:

          a) Wie triggert man richtig (also nur wenn die Variable auf 2 geht) val:2 alleine geht nicht und val:2 mit change geht auch nicht. Nur change alleine scheint zu funktionieren oder eben ganz one change und val. Dann loopt der Mist aber sogar ohne Änderung der Varable

          Kannst Du vielleicht kurz erläutern wie die on Syntax eigentlch funktioneren soll? Also was bewirken change und val genau und in kombination?

          b) Der Absturz des Adapters sobald er was sagen soll. Interessanterweise aber nur bei dieser Sysvariablen…

          Gruss Ralf

          1 Reply Last reply Reply Quote 0
          • D
            derrapf last edited by

            @Bluefox:

            Wenn du die Variable sayit.0.tts.text händisch beschreibst (aus admin), kannst du was hören? `

            Nein. Wenn ich unter Zustände die Variable beschreibe passiert gar nichts.

            Gruss Ralf

            1 Reply Last reply Reply Quote 0
            • Bluefox
              Bluefox last edited by

              Probier mal mit:

              on ({id: idTrockner, change: 'any'}, function (obj) {
                 log(obj.newState.val);
                 if (obj.newState.val == 2) {
                 	sayFinish(idTrockner, 'Der Trockner ist fertig');
                 }
              }); 
              

              > Nein. Wenn ich unter Zustände die Variable beschreibe passiert gar nichts.
              Dann ist dein sayit falsch eingestellt.

              1 Reply Last reply Reply Quote 0
              • D
                derrapf last edited by

                @Bluefox:

                Probier mal mit:

                on ({id: idTrockner, change: 'any'}, function (obj) {
                   log(obj.newState.val);
                   if (obj.newState.val == 2) {
                   	sayFinish(idTrockner, 'Der Trockner ist fertig');
                   }
                }); 
                ```` `  
                

                Da wird wieder nichts getriggert.

                Mein Sayit ist so eingestellt (Viel gibt's ja nicht einzustellen):
                743_bild1.jpg

                Gruss Ralf

                1 Reply Last reply Reply Quote 0
                • Bluefox
                  Bluefox last edited by

                  Hast du Raspi?

                  Schon das gemacht?
                  > To enable the text to speech on RaspberryPI or linux system call one time following command sudo apt-get -y install mpg321 to install mpg321.

                  Vielleicjt auch testen, dass es tatsächlich geht:

                  https://jeffskinnerbox.wordpress.com/20 … pberry-pi/

                  1 Reply Last reply Reply Quote 0
                  • D
                    derrapf last edited by

                    Hallo Bluefox
                    @Bluefox:

                    Hast du Raspi? `

                    Banana-Pi
                    @Bluefox:

                    Schon das gemacht? `
                    Ich habe nicht das Problem dass Sayit nicht spricht. Er spricht ja. Er triggert nur nicht richtig und beim Triggern dieser einen Sysvar geht er auf die Bretter. Wenn die die idWaschmaschine ändere, dann spricht er ohne Probleme.

                    Und: Er spricht NICHT, wenn ich die sayit.0.tts.text Variabe direkt im Reiter Zustände ändere.

                    Gruss Ralf

                    1 Reply Last reply Reply Quote 0
                    • D
                      derrapf last edited by

                      Ich habe mal Dein Script nochmal angepasst und sowohl obj.newState.val als auch obj.oldState.val ausgegeben:

                      var idTrockner       = 'hm-rega.0.44879';     //*STAT_W.Trockner_fertig*/
                      var idSprache        = 'sayit.0.tts.text';    // Sprachausgabe Browser
                      
                      on ({id: idTrockner, change:'ne'}, function (obj) {
                         log("getriggert! State = "+obj.newState.val);
                         log("getriggert! State = "+obj.oldState.val);
                         if (obj.newState.val == 2) {
                            sayFinish(idTrockner, 'Der Trockner ist fertig');
                         }
                      }); 
                      
                      function sayFinish(idGeraet, text)
                      {
                                             setState(idSprache, text);
                                             log('Saying again: '+text);
                      }
                      

                      Im Log steht

                      javascript.0	2015-11-04 00:54:30	info	javascript.0 script.js.Test2: getriggert! State = fertig
                      javascript.0	2015-11-04 00:54:30	info	javascript.0 script.js.Test2: getriggert! State = 0
                      
                      

                      Da stimmt doch was nicht, oder?

                      Warum gibt obj.newState.val den Index der Werteliste aus, aber obj.oldState.val den Wert?

                      Das ist doch nicht konsistent!

                      Und auf was triggert die On-Syntax? Auf newState oder oldState?

                      Zum Verständnis: Ich setze die Variable manuell im IoBroker auf den Wert2; Irgendwas (nicht die CCU, hab ich grad nachgesehen) setzt sie dann aber recht schnell wieder auf 0 gesetzt so dass sich eben oldState = 2 und newState = 0 ergibt.

                      Auf jeden Fall kommt er nicht in die if-Bedingung, weil newState zu schnell wieder auf 0 geht.

                      Ändere ich die Bedingung auf if (obj.newState.val == 2) {, dann wird setState(idSprache, text) aufgerufen, aber dann geht der Adapter wieder auf die Bretter.

                      Gruss Ralf

                      1 Reply Last reply Reply Quote 0
                      • D
                        derrapf last edited by

                        Neue Erkenntnisse:

                        Ich hab jetzt in einem ersten Schritt nur die Probleme mit dem Trigger untersucht:

                        var idTrockner       = 'hm-rega.0.44879';     //*STAT_W.Trockner_fertig*/
                        var idSprache        = 'sayit.0.tts.text';    // Sprachausgabe Browser
                        
                        on ({id: idTrockner, change:'ne', val: 'fertig'}, function (obj) {
                           log("getriggert! newState = "+obj.newState.val);
                           log("getriggert! oldState = "+obj.oldState.val);
                           if (obj.newState.val == 0) {
                              sayFinish(idTrockner, 'Der Trockner ist fertig');
                           }
                        }); 
                        
                        function sayFinish(idGeraet, text)
                        {
                                       //        setState(idSprache, text);
                                               log('Saying again: '+text);
                        }
                        

                        Man muss scheinbar auf val: "fertig" prüfen. In diesem Fall wird die Funktion auch nur bei dem Wert "fertig" getriggert. So soll es sen.

                        Was mich jetzt wundert ist das Log: Nun steht hier nämlich richtg:

                        javascript-0	2015-11-04 01:29:28	info	script.js.Test2: getriggert! oldState = laeuft
                        javascript-0	2015-11-04 01:29:28	info	script.js.Test2: getriggert! newState = fertig
                        

                        Lasse ich val: 'fertig' weg, ist newState plötzlich nicht "aus" sondern 0:

                        javascript-0	2015-11-04 01:34:31	info	script.js.Test2: getriggert! oldState = fertig
                        javascript-0	2015-11-04 01:34:31	info	script.js.Test2: getriggert! newState = 0
                        

                        Warum wird einmal der Index verwendet und dann wieder der Wert der Enumeration? Das ist doch ein Bug oder?

                        Gruss Ralf

                        1 Reply Last reply Reply Quote 0
                        • Bluefox
                          Bluefox last edited by

                          @derrapf:

                          Neue Erkenntnisse:

                          Ich hab jetzt in einem ersten Schritt nur die Probleme mit dem Trigger untersucht:

                          var idTrockner       = 'hm-rega.0.44879';     //*STAT_W.Trockner_fertig*/
                          var idSprache        = 'sayit.0.tts.text';    // Sprachausgabe Browser
                          
                             
                          on ({id: idTrockner, change:'ne', val: 'fertig'}, function (obj) {
                             log("getriggert! newState = "+obj.newState.val);
                             log("getriggert! oldState = "+obj.oldState.val);
                             if (obj.newState.val == 0) {
                                sayFinish(idTrockner, 'Der Trockner ist fertig');
                             }
                          }); 
                          
                          function sayFinish(idGeraet, text)
                          {
                                         //        setState(idSprache, text);
                                                 log('Saying again: '+text);
                          }
                          

                          Man muss scheinbar auf val: "fertig" prüfen. In diesem Fall wird die Funktion auch nur bei dem Wert "fertig" getriggert. So soll es sen.

                          Was mich jetzt wundert ist das Log: Nun steht hier nämlich richtg:

                          javascript-0	2015-11-04 01:29:28	info	script.js.Test2: getriggert! oldState = laeuft
                          javascript-0	2015-11-04 01:29:28	info	script.js.Test2: getriggert! newState = fertig
                          

                          Lasse ich val: 'fertig' weg, ist newState plötzlich nicht "aus" sondern 0:

                          javascript-0	2015-11-04 01:34:31	info	script.js.Test2: getriggert! oldState = fertig
                          javascript-0	2015-11-04 01:34:31	info	script.js.Test2: getriggert! newState = 0
                          

                          Warum wird einmal der Index verwendet und dann wieder der Wert der Enumeration? Das ist doch ein Bug oder?

                          Gruss Ralf `
                          Das ist ein bug. Frage ist nur wo.

                          1 Reply Last reply Reply Quote 0
                          • D
                            derrapf last edited by

                            Hi Bluefox
                            > Das ist ein bug. Frage ist nur wo.
                            Das würde ich Dir gerne sagen wenn ich könnte.

                            Immerhin wissen wir jetzt wie man es machen muss, bzw. nicht machen darf.

                            Eine Zusammenfassung dieser Erkenntnisse wäre vielleicht was für's Wiki.

                            Jetzt aber das eigentliche Problem was mir mehr Sorge bereitet: Das ist der Absturz des Sayit Adapters.

                            Und jetzt wird es immer ominöser. Ich habe ein wenig rumgespielt:

                            Kannst Du Dir erklären, dass der Absturz vom Text kommt der ausgegeben werden soll?

                            Ich habe eben "Die Waschmaschine ist fertig" in beide ON's eingegeben und es hat beides mal ohne Absturz funktioniert.

                            Danach habe ich als zweiten Text "Die Waschmaschine ist nicht fertig" eingegeben und prompt hat es geknallt.

                            Andere Texte wie "Du bloedes Teil" oder "test2" und "test1" funktionieren auch nicht und bringen den Adapter zu Absturz.

                            Hää?????

                            Wer soll das kapieren?

                            Du müsstest das theoretisch reproduzieren können mit diesem Code. Der erste Text funktioniert; der zweite Text lässt den Adapter abrauchen.

                            var idTrockner       = 'hm-rega.0.44879';     //*STAT_W.Trockner_fertig*/
                            var idSprache        = 'sayit.0.tts.text';    // Sprachausgabe Browser
                            
                            on ({id: idTrockner, change:'ne', val: 'fertig'}, function (obj) {
                                  setState(idSprache, 'Die Waschmaschine ist fertig');
                                  setState(idSprache, 'Der Trockner ist fertig');
                            }); 
                            

                            Gruss Ralf

                            1 Reply Last reply Reply Quote 0
                            • D
                              derrapf last edited by

                              Hallo

                              Da bluefox nichts mehr zum Thema schreibt: Könnte bitte irgend jemand den Code oben ausprobieren (ev eine andere Variable verwenden)?

                              Mich würde interessieren ob das ein Bug ist, oder ob was an meiner Installation nicht stimmt.

                              Gruss Ralf

                              1 Reply Last reply Reply Quote 0
                              • Bluefox
                                Bluefox last edited by

                                @derrapf:

                                Hi Bluefox
                                > Das ist ein bug. Frage ist nur wo.
                                Das würde ich Dir gerne sagen wenn ich könnte.

                                Immerhin wissen wir jetzt wie man es machen muss, bzw. nicht machen darf.

                                Eine Zusammenfassung dieser Erkenntnisse wäre vielleicht was für's Wiki.

                                Jetzt aber das eigentliche Problem was mir mehr Sorge bereitet: Das ist der Absturz des Sayit Adapters.

                                Und jetzt wird es immer ominöser. Ich habe ein wenig rumgespielt:

                                Kannst Du Dir erklären, dass der Absturz vom Text kommt der ausgegeben werden soll?

                                Ich habe eben "Die Waschmaschine ist fertig" in beide ON's eingegeben und es hat beides mal ohne Absturz funktioniert.

                                Danach habe ich als zweiten Text "Die Waschmaschine ist nicht fertig" eingegeben und prompt hat es geknallt.

                                Andere Texte wie "Du bloedes Teil" oder "test2" und "test1" funktionieren auch nicht und bringen den Adapter zu Absturz.

                                Hää?????

                                Wer soll das kapieren?

                                Du müsstest das theoretisch reproduzieren können mit diesem Code. Der erste Text funktioniert; der zweite Text lässt den Adapter abrauchen.

                                var idTrockner       = 'hm-rega.0.44879';     //*STAT_W.Trockner_fertig*/
                                var idSprache        = 'sayit.0.tts.text';    // Sprachausgabe Browser
                                
                                   
                                on ({id: idTrockner, change:'ne', val: 'fertig'}, function (obj) {
                                      setState(idSprache, 'Die Waschmaschine ist fertig');
                                      setState(idSprache, 'Der Trockner ist fertig');
                                }); 
                                

                                Gruss Ralf `
                                change und val sind überflüssig.

                                Es triggert erst "change - not equal" (auf Änderung) und dann falls change nicht getriggert hat, dann wird noch geprüft ob es 'fertig' ist.

                                D.h. dein Fall muss einfach so sein "{id: idTrockner, val: 'fertig'}"

                                1 Reply Last reply Reply Quote 0
                                • Bluefox
                                  Bluefox last edited by

                                  Ich habe jetzt dein Skript auf das reduziert:

                                        setState('sayit.0.tts.text', 'Die Waschmaschine ist fertig');
                                        setState('sayit.0.tts.text', 'Der Trockner ist fertig');
                                  
                                  

                                  Bei mir auf Raspi2 stürzt nichts ab. Und bei dir?

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    derrapf last edited by

                                    Hallo Bluefox
                                    @Bluefox:

                                    change und val sind überflüssig.

                                    Es triggert erst "change - not equal" (auf Änderung) und dann falls change nicht getriggert hat, dann wird noch geprüft ob es 'fertig' ist.

                                    D.h. dein Fall muss einfach so sein "{id: idTrockner, val: 'fertig'}" `
                                    Hab ich das richtig verstanden?

                                    Diese Syntax bedeudet dann sinngemäss: "Triggere wenn sich der Wert geändert hat oder wenn sich der Wert auf 'fertig' geändert hat"?

                                    Gruss Ralf

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      derrapf last edited by

                                      Hi Bluefox
                                      @Bluefox:

                                      Ich habe jetzt dein Skript auf das reduziert:

                                            setState('sayit.0.tts.text', 'Die Waschmaschine ist fertig');
                                            setState('sayit.0.tts.text', 'Der Trockner ist fertig');
                                      
                                      

                                      Bei mir auf Raspi2 stürzt nichts ab. Und bei dir? `

                                      Das ist doch das Script was ich oben zum Testen gepostet habe. Nur ohne den Trigger drum rum.

                                      Soll ich nur ein Script mit diesen zwei Zeilen schreiben?

                                      Wie, oder wodurch wird das ausgeführt wenn es keinen "ON…" Code gibt??

                                      Gruss Ralf
                                      3476_log.txt

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        derrapf last edited by

                                        Ah, ja.

                                        Geht. Wenn man das Script speichert wird es scheinbar gleich augeführt.

                                        Ergebnis: Der erste Satz wird gesagt; beim zweiten Satz krachts. Und jetzt?

                                        hm-rpc.0	2015-11-13 00:31:26	error	hm-rpc.0 Error: not connected
                                        host-bananapi	2015-11-13 00:31:26	info	Restart adapter system.adapter.sayit.0 because enabled
                                        host-bananapi	2015-11-13 00:31:26	error	instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
                                        Error:	2015-11-13 00:31:25	error	at TCP.close (net.js:485:12)
                                        Error:	2015-11-13 00:31:25	error	at TLSSocket.emit (events.js:129:20)
                                        Error:	2015-11-13 00:31:25	error	at TLSSocket.socketCloseListener (_http_client.js:247:23)
                                        Error:	2015-11-13 00:31:25	error	at createHangUpError (_http_client.js:215:15)
                                        Error:	2015-11-13 00:31:25	error	socket hang up
                                        uncaught	2015-11-13 00:31:25	error	exception: socket hang up
                                        Error:	2015-11-13 00:31:25	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
                                        Error:	2015-11-13 00:31:25	error	at exports._errnoException (util.js:746:11)
                                        Error:	2015-11-13 00:31:25	error	connect EHOSTUNREACH
                                        uncaught	2015-11-13 00:31:25	error	exception: connect EHOSTUNREACH
                                        sayit-0	2015-11-13 00:31:22	info	saying: Der Trockner ist fertig
                                        hm-rega-0	2015-11-13 00:31:18	info	State 48905 0
                                        hm-rega-0	2015-11-13 00:31:18	info	State 46718 21.5
                                        hm-rega-0	2015-11-13 00:31:18	info	State 46717 39.1
                                        hm-rega-0	2015-11-13 00:31:18	info	State 46031 0
                                        hm-rega-0	2015-11-13 00:31:18	info	State 46030 2
                                        hm-rega-0	2015-11-13 00:31:18	info	State 44879 2
                                        hm-rega-0	2015-11-13 00:31:17	info	State 42820 true
                                        sayit-0	2015-11-13 00:31:17	info	saying: Die Waschmaschine ist fertig
                                        

                                        Gruss Ralf
                                        6359_logfilemultiroom.txt.zip.txt

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          pix last edited by

                                          Hallo Ralf,

                                          die beiden Ansagen kommen natürlich ultrakurz hingereinander. Die Maschine kann schneller denken, als reden.

                                          Kannst du mal eine kleine Verzögerung einbauen?

                                          setState('sayit.0.tts.text', 'Die Waschmaschine ist fertig');
                                          setStateDelayed('sayit.0.tts.text', 'Der Trockner ist fertig', 5000);
                                          

                                          Gruß

                                          Pix

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            derrapf last edited by

                                            Hallo Pix, Hallo bluefox

                                            Es bleibt ominös bei mir.

                                            Eben wollte ich die Pix'sche Scriptverion probieren, als ich feststellen musste, dass IoBroker nicht mehr reagierte. Da ich zwischenzeitlich auf dem Bananapi mit MQTT rumgespielt und ein paar Dinge intalliert hatte, war ich nicht sonderlich verwundert und habe IOBroker neu gestartet.

                                            Danach habe ich nochmal das Testscript (ohne die Verzögerung) gestartet und auf einmal hat der Sayit beide Sätze ohne abzurauchen gesagt.

                                            Juhu, dachte ich, dann probierst Du mal das "richtige" Script; und siehe da: Es meldet sowohl die fertige Waschmaschine als auch den fertigen Trockner.

                                            Da ich inzwischen das Script erweitert hatte, dass auch das zu lange geöffnete Badfenster gemeldet wird, bin ich mutig geworden und habe die entsprechende Variable auf den Wert "daueroffen" gesetzt: Hat auch geklappt!

                                            Mein Übermut wurde immer grösser und die Variable wurde auf den dritten Wert gesetzt den sie hat: "zu lange offen": Krach!

                                            Und schon hat es wieder geknallt. Der Code ist der Gleiche, nur der Satz ein anderer.

                                            Also habe ich (Pix'sche Timing Theorie) gewartet. Lange. Und nochmal den entsprechenden Satz sagen lassen:

                                            Und was soll ich sagen: Es krachte schon wieder.

                                            Irgendwie finde ich kein Muster bei diesem seltamen Verhalten. Das einzige was bleibt ist ein sehr instabiler Eindruck dieses Moduls. Ich poste hier nochmal den Code und das Log, obwohl ich nicht glaube, dass das hier noch irgend jemand versteht…

                                            Code

                                            var idSprache        = 'sayit.0.tts.text';    // Sprachausgabe Browser
                                            
                                            var idWaschmaschine  = 'hm-rega.0.39968';     //STAT_Waschmaschine_fertig
                                            var idTrockner       = 'hm-rega.0.44879';     //STAT_W.Trockner_fertig
                                            var idBad_daueroffen = 'hm-rega.0.37449';     //Badezimmer_Alarm_daueroffen. Werte: zu; daueroffen; zu lang offen
                                            
                                            var timer = {};
                                            var debug = true;
                                            var repeat = true;
                                            var no_repeat = false;
                                            
                                            on ({id: idBad_daueroffen, val: 'daueroffen'}, function (data) {
                                               //sayOpen(idBad_daueroffen, "Achtung Systemmeldung um " +d.getHours() + " Uhr und " + d.getMinutes() + " Minuten:", 1000, no_repeat);
                                               saySomething(idBad_daueroffen, 'Achtung. Das Badezimmerfenster ist schon lenger als 15 Minuten offen', no_repeat);
                                            });  
                                            
                                            on ({id: idBad_daueroffen, val: 'zu lang offen'}, function (data) {
                                               //sayOpen(idBad_daueroffen, "Achtung Systemmeldung um " +d.getHours() + " Uhr und " + d.getMinutes() + " Minuten:", 1000; no_repeat);
                                               saySomething(idBad_daueroffen, 'Das Fenster im Bad ist schon lenger als eine halbe Stunde offen. Bitte endlich mal zu machen.', repeat);
                                            });  
                                            
                                            //----------------------------------------- Waschmaschine und Trockner --------------------------------
                                            on ({id: idWaschmaschine, val: 'fertig'}, function (data) {
                                               saySomething(idWaschmaschine, 'Die Waschmaschine ist fertig');
                                            });     
                                            
                                            on ({id: idTrockner, val: 'fertig'}, function (data) {
                                               saySomething(idTrockner, 'Der Trockner ist fertig');
                                            });  
                                            
                                            function saySomething(idGeraet, text, repeat)
                                            {
                                               // Sage zum ersten Mal
                                               var d = new Date ();
                                               var h = d.getHours();
                                            
                                               if (debug || (h < 22) && (h > 9)) // nur zwischen 9 und 20 Uhr
                                               {
                                                  log('Saying: ' + text);
                                                  setState(idSprache, text);
                                            
                                                 if (repeat)
                                                 {
                                                  // Sag jede 10 Min Text an           
                                                  timer[idGeraet] = setInterval(function() {
                                                     log('Timer[' + idGeraet + ']=' + timer[idGeraet]);
                                                     log('Get State=' + getState(idGeraet).val);
                                                     if (getState(idGeraet).val == 2)
                                                     {
                                                        log('Saying again: ' + text);
                                                        setState(idSprache, text);
                                                     }
                                                     else
                                                     {
                                                        if (timer[idGeraet]) clearInterval(timer[idGeraet]);
                                                        timer[idGeraet] = null;
                                                     }
                                                  }, 600000);
                                                 }
                                               }
                                            }
                                            
                                            

                                            Und hier die Logs. Man sieht, dass mehrfach die Texte richtig gesagt wurden aber es zwischen durch immer wieder Fehler gab.

                                            Unter anderem den Fehler > hm-rpc-0 2015-11-14 17:53:04 error Error: not connected und ein Node-Red Fehler

                                            Ich hoffe nicht, dass die damit zuammen hängen..
                                            > host-bananapi 2015-11-14 17:54:06 error instance system.adapter.node-red.0 terminated with code 7 (Adapter already running)

                                            host-bananapi	2015-11-14 17:51:59	info	Restart adapter system.adapter.sayit.0 because enabled
                                            host-bananapi	2015-11-14 17:51:59	error	instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
                                            TypeError:	2015-11-14 17:51:58	error	at FSReqWrap.oncomplete (fs.js:95:15)
                                            TypeError:	2015-11-14 17:51:58	error	at /opt/iobroker/node_modules/iobroker.sayit/main.js:276:21
                                            TypeError:	2015-11-14 17:51:58	error	at getLength (/opt/iobroker/node_modules/iobroker.sayit/main.js:164:27)
                                            TypeError:	2015-11-14 17:51:58	error	at /opt/iobroker/node_modules/iobroker.sayit/main.js:277:39
                                            TypeError:	2015-11-14 17:51:58	error	at /opt/iobroker/node_modules/iobroker.sayit/main.js:415:21
                                            TypeError:	2015-11-14 17:51:58	error	at cacheFile (/opt/iobroker/node_modules/iobroker.sayit/main.js:397:5)
                                            TypeError:	2015-11-14 17:51:58	error	at sayItSystem (/opt/iobroker/node_modules/iobroker.sayit/main.js:672:9)
                                            TypeError:	2015-11-14 17:51:58	error	at sayFinished (/opt/iobroker/node_modules/iobroker.sayit/main.js:203:45)
                                            TypeError:	2015-11-14 17:51:58	error	Cannot read property 'text' of undefined
                                            uncaught	2015-11-14 17:51:58	error	exception: Cannot read property 'text' of undefined
                                            sayit-0	2015-11-14 17:51:58	warn	Received file is too short:
                                            sayit-0	2015-11-14 17:51:58	warn	Cannot read length of file /opt/iobroker/node_modules/iobroker.sayit/say.mp3
                                            sayit-0	2015-11-14 17:51:58	warn	Received file is too short:
                                            sayit-0	2015-11-14 17:51:57	info	saying: Das Fenster im Bad ist schon lenger als eine halbe Stunde offen. Bitte endlich mal zu machen.
                                            hm-rega-0	2015-11-14 17:51:56	info	State 37449 zu lang offen
                                            javascript-0	2015-11-14 17:51:56	info	script.js.Statusaenderungen_sagen: Saying: Das Fenster im Bad ist schon lenger als eine halbe Stunde offen. Bitte endlich mal zu machen.
                                            hm-rega-0	2015-11-14 17:51:56	info	State 37449 zu lang offen
                                            ...
                                            hm-rega-0	2015-11-14 17:51:48	info	State 36815 8.19
                                            hm-rega-0	2015-11-14 17:51:48	info	State 36162 7
                                            host-bananapi	2015-11-14 17:51:48	info	Restart adapter system.adapter.node-red.0 because enabled
                                            host-bananapi	2015-11-14 17:51:48	error	instance system.adapter.node-red.0 terminated with code 7 (Adapter already running)
                                            hm-rega-0	2015-11-14 17:51:48	info	State 34330 5.3
                                            ...
                                            hm-rega-0	2015-11-14 17:51:41	info	State 41 10
                                            host-bananapi	2015-11-14 17:51:41	info	instance system.adapter.node-red.0 started with pid 17945
                                            javascript-0	2015-11-14 17:51:37	info	script.js.Statusaenderungen_sagen: Get State=0
                                            javascript-0	2015-11-14 17:51:37	info	script.js.Statusaenderungen_sagen: Timer[hm-rega.0.37449]=null
                                            hm-rpc-0	2015-11-14 17:51:34	error	Error: not connected
                                            ...
                                            hm-rega-0	2015-11-14 17:51:11	info	State 41 10
                                            host-bananapi	2015-11-14 17:51:11	info	Restart adapter system.adapter.node-red.0 because enabled
                                            host-bananapi	2015-11-14 17:51:11	error	instance system.adapter.node-red.0 terminated with code 7 (Adapter already running)
                                            host-bananapi	2015-11-14 17:51:07	info	instance system.adapter.node-red.0 started with pid 17938
                                            hm-rega-0	2015-11-14 17:50:48	info	State 48905 66
                                            ...
                                            hm-rega-0	2015-11-14 17:50:41	info	State 41 10
                                            host-bananapi	2015-11-14 17:50:37	info	Restart adapter system.adapter.node-red.0 because enabled
                                            host-bananapi	2015-11-14 17:50:37	error	instance system.adapter.node-red.0 terminated with code 7 (Adapter already running)
                                            host-bananapi	2015-11-14 17:50:33	info	instance system.adapter.node-red.0 started with pid 17931
                                            ...
                                            hm-rpc-0	2015-11-14 17:50:04	error	Error: not connected
                                            host-bananapi	2015-11-14 17:50:03	info	Restart adapter system.adapter.node-red.0 because enabled
                                            host-bananapi	2015-11-14 17:50:03	error	instance system.adapter.node-red.0 terminated with code 7 (Adapter already running)
                                            host-bananapi	2015-11-14 17:50:00	info	instance system.adapter.node-red.0 started with pid 17924
                                            javascript-0	2015-11-14 17:49:50	info	script.js.Statusaenderungen_sagen: Get State=0
                                            javascript-0	2015-11-14 17:49:50	info	script.js.Statusaenderungen_sagen: Timer[hm-rega.0.37449]=null
                                            
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            52
                                            5542
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo