Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Unerklärliche Fehlermeldung von socketio / javascript

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Unerklärliche Fehlermeldung von socketio / javascript

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

      @blauholsten:

      Hi,

      In deinem Skript steht vor Url=…....., request (Url);

      Da steht aber bestimmt aber noch nichts in Url drin. `

      Wenn ich es richtig verstanden habe wäre es so dann besser bzw. richtig:

      var idButton = "hm-rpc.0.LTK0019323.1.PRESS_SHORT"/*SZ Taster 1.PRESS_SHORT*/; 
      
      subscribe({id: idButton, val: true}, function (obj) { 
         log("Strom SZ wurde aktiviert");
      
      var request = require("request");   
      
          Url = "http://192.168.178.58:50000/tts=Anlage in Betrieb.";
          request(Url);
      });
      

      Gruß

      Thomas

      1 Reply Last reply Reply Quote 0
      • htrecksler
        htrecksler Forum Testing last edited by

        Url wird er immer noch nicht kennen.

        Du musst:

        var Url = ...
        
        

        schreiben

        1 Reply Last reply Reply Quote 0
        • N
          Nordlicht last edited by

          @htrecksler:

          Url wird er immer noch nicht kennen.

          Du musst:

          var Url = ...
          
          

          schreiben `

          Ich habe aus diesem Beitrag das Beispiel genommen http://forum.iobroker.net/viewtopic.php?p=43367#p43367.

          Solche Beispiele sind natürlich immer so ne Sache wenn man etwas anpasst oder eben anpassen muss.

          Und als "Skript-Laie" führt das oftmals ins verderben.

          Also dann so:

          var idButton = "hm-rpc.0.LTK0019323.1.PRESS_SHORT"/*SZ Taster 1.PRESS_SHORT*/; 
          
          subscribe({id: idButton, val: true}, function (obj) { 
             log("Strom SZ wurde aktiviert");
          
          var request = require("request");   
          
          var Url = "http://192.168.178.58:50000/tts=Anlage in Betrieb.";
              request(Url);
          });
          

          Nehmt es mir nicht übel wenn ich hier auf dem Schlauch stehe bitte.

          1 Reply Last reply Reply Quote 0
          • htrecksler
            htrecksler Forum Testing last edited by

            Dir nimmt hier keiner irgendwas übel. Ganz bestimmt nicht.

            Ganz im Gegenteil. Durch solche Fragen lernen hier sehr viele sehr viel (mich eingeschlossen) 😄

            1 Reply Last reply Reply Quote 0
            • htrecksler
              htrecksler Forum Testing last edited by

              eines noch, damit Scripte halbwegs lesbar sind sollte man auf das korrekte Einrücken achten:

              var idButton = "hm-rpc.0.LTK0019323.1.PRESS_SHORT"/*SZ Taster 1.PRESS_SHORT*/; 
              
              subscribe({id: idButton, val: true}, function (obj) { 
              	log("Strom SZ wurde aktiviert");
              	var request = require("request");   
              	var Url = "http://192.168.178.58:50000/tts=Anlage in Betrieb.";
              	request(Url);
              });
              
              
              1 Reply Last reply Reply Quote 0
              • N
                Nordlicht last edited by

                @htrecksler:

                Dir nimmt hier keiner irgendwas übel. Ganz bestimmt nicht.

                Ganz im Gegenteil. Durch solche Fragen lernen hier sehr viele sehr viel (mich eingeschlossen) 😄 `

                Schön zu lesen….

                Was mir und zig anderen fehlt ist einfach ein Leitfaden für so gewisse "Grundaufrufe" in den Skripten wie z.B. Home24 Mediaplayer. Durch das Zusammengestöpsle von vielen Zeilen die man so findet kommt nicht immer das richtig dabei herum.

                Aber da muss man wohl durch.

                Danke für Deine Ausführungen.

                1 Reply Last reply Reply Quote 0
                • blauholsten
                  blauholsten Developer last edited by

                  Ich empfehle dir deinen Code wie folgt zu erweitern:

                  var idButton = "hm-rpc.0.LTK0019323.1.PRESS_SHORT"/*SZ Taster 1.PRESS_SHORT*/; 
                  
                  subscribe({id: idButton, val: true}, function (obj) { 
                     log("Strom SZ wurde aktiviert");
                     var request = require("request");   
                     var Url = "http://192.168.178.58:50000/tts=Anlage in Betrieb.";
                     request(Url).on ('error', function  (e) { console.error (e);});
                  });
                  
                  

                  sonst startet deine dein JS-Instanz neu durch, wenn z.B. das Gerät auf dem der M24-Player läuft nicht erreichbar ist.

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

                    Würde aus technischen Gründen das Script umstallen und zwar:

                    var idButton = "hm-rpc.0.LTK0019323.1.PRESS_SHORT"/*SZ Taster 1.PRESS_SHORT*/; 
                    var request = require("request");   
                    var Url = "http://192.168.178.58:50000/tts=Anlage in Betrieb.";
                    
                    subscribe({id: idButton, val: true}, function (obj) { 
                       log("Strom SZ wurde aktiviert");
                       request(Url).on ('error', function  (e) { console.error (e);});
                    });
                    

                    request braucht nicht immer neu 'nachgeladen' werden (im subscribe-Teil), auch die URL ändert sich ja nicht.

                    Warum verwendest du subscribe(xxx) on nicht on(xxx)?

                    Jedenfalls sollten in der Eventfunktion nur Programmteile vorkommen die zwingend dann ausgeführt werden müsssen.

                    p.s.: Wenn du nodejs >=4 verwendest kannst die 'var' auch gegen 'const' tauschen wenn sie sich im Programmverlauf nicht ändern sollen…

                    1 Reply Last reply Reply Quote 0
                    • N
                      Nordlicht last edited by

                      Vielen Dank, ich werde das so übernehmen und den Fehler beobachten. Sollte nun ja nicht mehr auftreten.

                      Und genau dieses "Baukastenprinzip" bzw. dessen richtige Anordnung…. dort liegen meine Verständnisprobleme wenn ich etwas konstruieren möchte.
                      > Warum verwendest du subscribe(xxx) on nicht on(xxx)?
                      Der einzige Grund ist nur, weil ich es hier im Forum so gesehen habe, frag mich jetzt bitte nicht wo genau.

                      Welchen genauen Unterschied es macht ist mir ehrlich gesagt nicht bewusst. Das es die gewünschte Funktion ausgelöst hat war ich der Ansicht, dass es nicht falsch sein kann.

                      Deine Nachfrage aber zeigt mir, dass hier auch etwas im Argen sein muss…. zumindest teilweise.

                      > p.s.: Wenn du nodejs >=4 verwendest kannst die 'var' auch gegen 'const' tauschen wenn sie sich im Programmverlauf nicht ändern sollen..
                      Hier läuft die Version 4.7.0

                      Dieses "Tausch" betrifft dann alle var-Positionen in einem Skript die unverändert bleiben?

                      Bringt das Vorteile oder ist es "nur" eine Neuerung ohne besondere Auswirkungen?

                      1 Reply Last reply Reply Quote 0
                      • blauholsten
                        blauholsten Developer last edited by

                        Hi,

                        Kannst du deinen letzten Post bitte ändern, du hast beim Zitat beides mal mich zitiert. Es war aber fsjoke der dies geschrieben hat. Danke

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

                          @Nordlicht:

                          Vielen Dank, ich werde das so übernehmen und den Fehler beobachten. Sollte nun ja nicht mehr auftreten.

                          Und genau dieses "Baukastenprinzip" bzw. dessen richtige Anordnung…. dort liegen meine Verständnisprobleme wenn ich etwas konstruieren möchte.
                          > Warum verwendest du subscribe(xxx) on nicht on(xxx)?
                          Der einzige Grund ist nur, weil ich es hier im Forum so gesehen habe, frag mich jetzt bitte nicht wo genau.

                          Welchen genauen Unterschied es macht ist mir ehrlich gesagt nicht bewusst. Das es die gewünschte Funktion ausgelöst hat war ich der Ansicht, dass es nicht falsch sein kann.

                          Deine Nachfrage aber zeigt mir, dass hier auch etwas im Argen sein muss…. zumindest teilweise.

                          > p.s.: Wenn du nodejs >=4 verwendest kannst die 'var' auch gegen 'const' tauschen wenn sie sich im Programmverlauf nicht ändern sollen..
                          Hier läuft die Version 4.7.0

                          Dieses "Tausch" betrifft dann alle var-Positionen in einem Skript die unverändert bleiben?

                          Bringt das Vorteile oder ist es "nur" eine Neuerung ohne besondere Auswirkungen? `

                          Hallo, war etwas busy die letzten Tage.. un habe nicht alle Antworten beobachtet.

                          zu on(xxx) kann ich nur sagen dass es in Javascript instanzen glaub ich besser ist da diese subscriptions gelöscht werden wenn das script stoppt. Vielleicht macht es subscribe auch aber ich habe in Javascript-Adaptern eben nur on() verwendet da es in der Beschreibung so vorkommt.

                          Das const anstatt var hilft nur Programmierfehlern vorzubeugen. Es gibt auch 'let' das anstatt var verwendet werden soll wenn die Variable nur in diesem Block verwendet werden soll.

                          Damit kann man besser definieren ob man eine var-Variable (= änderbar), const-Konstante (= nicht änderbar) oder lokale let-Variable (änderbar aber nur im momentaner Klammer-Umgebung gültig). Es hilft auch ein wenig dem Speichermanagement, aber das ist kaum spürbar.

                          Was allerdings dann möglich wird ist

                          const i=1;
                          for(let i of [1,2,3]) console.log(i);
                          console.log(i);
                          
                          würde
                          1
                          2
                          3
                          1
                          
                          ausgeben
                          
                          

                          Der Grund ist dass let i eine neue lokale Varieable erzeugt welche nur in der for-Anweisung gültig ist und nicht die Konstante i überschreibt.

                          Ich kann jetzt auch nicht alle anderen Vorteile aufzählen (da ich auch nicht alle kenne).

                          1 Reply Last reply Reply Quote 0
                          • N
                            Nordlicht last edited by

                            Jetzt muss ich noch einmal nachhaken, weil in einem anderen Skript die URL nicht immer gleich ist…..

                            ! ````
                            var Severity = "dwd.0.warning.severity"/Warning severity/;
                            var request = require("request");
                            var Url = "http://192.168.178.58:50000/track=gong.mp3";
                            var ansage2 = "Eine bestehende Wetterwarnung wurde aufgehoben." ;
                            !
                            ! on(Severity, function (obj) {
                            if (obj.newState.val !==0) {
                            ! var End = getState("dwd.0.warning.end"/Warning end/).val;
                            var Description = getState("dwd.0.warning.description"/Warning description/).val;

                            		var ansage = "Der Deutsche Wetterdienst meldet. " + Description + " . Die Warnung gilt bis " + End ;          
                            
                            		request(Url);
                            		Url = "http://192.168.178.58:50000/track=gong.mp3|tts=" + ansage ;
                            		request(Url);
                            

                            ! }

                            		if (obj.newState.val === 0) {
                            
                            		Url = "http://192.168.178.58:50000/tts=" + ansage2 ;
                            		request(Url);
                            	}
                            
                            });
                            
                            
                            Irgendwo muss hier noch ein "Knopf" sein. Die __"Ansage 2"__ wird richtig ausgegeben. Bei der __"Ansage"__ werde die Teile __"Description"__ sowie __"End"__ nämlich nicht angesagt obwohl sie als Datenpunkte vorhanden sind.
                            
                            Gruß
                            
                            Thomas
                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            843
                            Online

                            31.9k
                            Users

                            80.3k
                            Topics

                            1.3m
                            Posts

                            5
                            18
                            1033
                            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