Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Probleme mit JS Script nach JS-Adapter Update > 7.9.0

    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

    Probleme mit JS Script nach JS-Adapter Update > 7.9.0

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

      Ich würde eure Hilfe benötigen, da ich kaum Kenntnisse in JS habe. Ich habe ein Script welches Daten an Thingspeak sendet. Wenn ich den JS-Adapter auf die aktuellste Version update, bekomme ich folgende Fehlermeldungen:

      javascript.0
      	2024-04-13 10:24:30.361	error	at process.processTimers (node:internal/timers:512:7)
      javascript.0
      	2024-04-13 10:24:30.359	error	at listOnTimeout (node:internal/timers:569:17)
      javascript.0
      	2024-04-13 10:24:30.356	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3104:34)
      javascript.0
      	2024-04-13 10:24:30.354	error	at Object.DoThingSpeakRequest (script.js.Thingspeak_1:9:1)
      javascript.0
      	2024-04-13 10:24:30.336	error	Error in callback: ReferenceError: request is not defined
      

      Ich nutze aktuell die Verson 7.9.0 und diese macht keine Probleme. Das Skript ist wie folgt aufgebaut:

      function ExportToThingspeak(ChannelApiKey,Field,FieldValue,TimeOutSek)
      {
      var ChannelUrl = "https://api.thingspeak.com/update?api_key="+ChannelApiKey+"&"+Field+"="+FieldValue;
      setTimeout(DoThingSpeakRequest, TimeOutSek*1000, ChannelUrl);
      }
       
      function DoThingSpeakRequest(ChannelUrl)
      {
      request( { url: ChannelUrl, json: true }, function (error, response, body)
      {
      log('DoThingSpeakRequest - ChannelUrl: ' + ChannelUrl);
      } );
      }
      
      on({id: "deconz.0.Sensors.3.temperature", change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      ExportToThingspeak("XXX","field1",value.toString(),20);
      });
       
      on({id: "deconz.0.Sensors.4.humidity", change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      ExportToThingspeak("XXX","field2",value.toString(),40);
      });
       
      on({id: "deconz.0.Sensors.5.pressure", change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      ExportToThingspeak("XXX","field3",value.toString(),60);
      });
      
      on({id: "deconz.0.Sensors.3.battery", change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      ExportToThingspeak("XXX","field5",value.toString(),80);
      });
      
      on({id: "deconz.0.Sensors.2.lux", change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      ExportToThingspeak("XXX","field1",value.toString(),100);
      });
      
      on({id: "deconz.0.Sensors.2.battery", change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      ExportToThingspeak("XXX","field2",value.toString(),120);
      });
      

      Die XXX habe ich ersetzt. Das Skript funktioniert problemlos mit Version 7.9.0

      Könnt ihr mir da weiterhelfen?

      Vielen lieben Dank!

      paul53 mcm1957 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @zeron850 last edited by

        @zeron850 sagte: request is not defined

        In neuen JS-Versionen ist request nicht mehr vordefiniert und man benötigt zu Beginn

        const request = require('request');
        
        Thomas Braun Z haus-automatisierung 3 Replies Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @paul53 last edited by

          @paul53

          Wäre es nicht sinnvoll auf axios umzustellen, wenn möglich?

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

            @thomas-braun sagte: auf axios umzustellen, wenn möglich?

            Der Javascript-Adapter liefert in neuen Versionen die Funktion httpGet().

            1 Reply Last reply Reply Quote 0
            • mcm1957
              mcm1957 @zeron850 last edited by mcm1957

              @zeron850 said in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

              Ich würde eure Hilfe benötigen, da ich kaum Kenntnisse in JS habe. Ich habe ein Script welches Daten an Thingspeak sendet. Wenn ich den JS-Adapter auf die aktuellste Version update, bekomme ich folgende Fehlermeldungen:

              	2024-04-13 10:24:30.336	error	Error in callback: ReferenceError: request is not defined
              

              Du hast aber schon die Releasenotes angesehen und die BREAKING changes durchgesehen bevor du eine MAJOR Release installierst? ...

              Dort steht auch was du tun kannst wenn du request unbedingt weiter benutzen willst ...

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @mcm1957 last edited by

                @mcm57 sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                Du hast aber schon die Releasenotes angesehen und die BREAKING changes durchgesehen bevor du eine MAJOR Release installierst? ...

                ganz ehrlich!??

                wenn man einen ganzen Schwung via Konsole updated ist das gar nicht so einfach.
                zumal es sicher nicht jedem User geläufig ist, was das alles bedeutet.
                Insbesondere Usern, die nicht selber scripten können, sondern nur kopieren

                W mcm1957 2 Replies Last reply Reply Quote 1
                • W
                  Wildbill @Homoran last edited by Wildbill

                  @homoran Zumindest breaking changes sind bei mir da immer farblich oder fett markiert, wenn ich mich recht erinnere.
                  Aber wo sollte man den User denn (noch) auf etwaige Besonderheiten aufmerksam machen? Wer das nicht einmal in einem Fenster liest, welches beim Update zwangsweise aufpoppt, der wird wohl erst recht nicht auf eigene Faust vorher bei Guthub schauen, ob es was zu beachten gibt?!
                  Also ich für meinen Teil schaue im Normalfall vor jedem Update wirklich kurz bei Github nach. Ist ja nur ein Mausklick auf das Fragezeichen hinten dann „in neuem Tab öffnen“…

                  Gruss, Jürgen

                  EDIT: Gerade gelesen, Du redest von Updates via Konsole. Da bin ich gar nicht sicher, ob da die Changes auch so prominent dargestellt sind und man erst noch bestätigen muss. Wobei das Updaten per Konsole ja sicher kein unbedarfter User macht, der eigentlich gar nicht genau weiss, warum und was er da tut.

                  Homoran 1 Reply Last reply Reply Quote 1
                  • Homoran
                    Homoran Global Moderator Administrators @Wildbill last edited by Homoran

                    @wildbill sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                    Wer das nicht einmal in einem Fenster liest, welches beim Update zwangsweise aufpoppt,

                    @homoran sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                    via Konsole updated

                    da poppt nix!

                    Natürlich hast du grundsätzlich recht!
                    aber gar so einfach ist es für Ottilie Einfachuserin leider nicht.

                    AUCH EDIT!
                    bei einem Upgrade einer älteren Installation wird wohl auch ein Standarduser die Konsole nehmen, und sogar möglicherweise die Option all -y verwenden.

                    Wofür gibt es denn sonst JuhTjub 😁

                    mcm1957 1 Reply Last reply Reply Quote 0
                    • W
                      Wildbill last edited by

                      @homoran OK, wenn da per Konsole gar nix weiter kommt und das einfach durchrauscht ist das natürlich nicht so prickelnd. Vielleicht lässt sich in die Update-Routine was einbauen, dass man zumindest bei breaking changes eine Meldung bekommt, die man aktiv bestätigen muss?

                      Ich hab aber keine Ahnung, was da wie im Hintergrund läuft, wenn man per Konsole updated.

                      Gruss, Jürgen

                      Thomas Braun Homoran 2 Replies Last reply Reply Quote 0
                      • Thomas Braun
                        Thomas Braun Most Active @Wildbill last edited by

                        @wildbill

                        Nein, auch im Terminal steht in Großbuchstaben ein Hinweis auf einen Braking Change.
                        Bestätigen musst du das eh, wenn nicht -y als Option mitgegeben wurde.

                        1 Reply Last reply Reply Quote 3
                        • Homoran
                          Homoran Global Moderator Administrators @Wildbill last edited by

                          @wildbill Doch, die Meldung Breaking Change kam, aber bei großen Sprüngen bleibt eigentlich keine Zeit und Nuße nachzudenken.

                          Man will ja auf die neueste Version.

                          W Thomas Braun 2 Replies Last reply Reply Quote 0
                          • W
                            Wildbill @Homoran last edited by

                            @homoran Na zumindest ich nehme mir da für Updates schon die Zeit und schaue, was Sache ist. Ich möchte ja danach ein aktuelles, aber auch noch funktionsfähiges System. Wer es da eilig hat, der macht IMHO was falsch. Dann lieber das Update einen Tag verschieben, bis man die Zeit dazu hat.

                            Gruss, Jürgen

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @Wildbill last edited by

                              @wildbill sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                              bis man die Zeit dazu hat.

                              ....

                              1 Reply Last reply Reply Quote 0
                              • Thomas Braun
                                Thomas Braun Most Active @Homoran last edited by

                                @homoran sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                                aber bei großen Sprüngen

                                Ja, wenn du da alle Pakete und Module aus den letzten drei Jahren auf einmal einspielen musst, weil du das System nicht regelmäßig aktuell gehalten hast, dann kann man die ganzen Changes auch nicht mehr überblicken. Deswegen gilt ja auch statt 'Never touch a running system' die Weisheit: 'Keep your system running by constantly updating'.

                                Homoran 1 Reply Last reply Reply Quote 1
                                • Homoran
                                  Homoran Global Moderator Administrators @Thomas Braun last edited by

                                  @thomas-braun full d'accord!

                                  Aber genau diese Ntars User werden irgendwann in so eine Falle laufen.

                                  Dass man dann im Nachhinein nochmal die Versionshinweise suchen und lesen sollte ist für mich der erste Weg.
                                  Aber ich glaube nicht, dass jeder user im Voraus die Folgen der im popup genannten Dinge 100%ig erkennen kann.

                                  Thomas Braun 1 Reply Last reply Reply Quote 1
                                  • mcm1957
                                    mcm1957 @Homoran last edited by

                                    @homoran said in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                                    @mcm57 sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                                    Du hast aber schon die Releasenotes angesehen und die BREAKING changes durchgesehen bevor du eine MAJOR Release installierst? ...

                                    ganz ehrlich!??

                                    wenn man einen ganzen Schwung via Konsole updated ist das gar nicht so einfach.
                                    zumal es sicher nicht jedem User geläufig ist, was das alles bedeutet.
                                    Insbesondere Usern, die nicht selber scripten können, sondern nur kopieren

                                    Wenn wer auf der Console aktualisisert sollte er auch lesen. Wenn er das nicht kann / mag dann soll er dich bitte UI verwenden, da muss er das extra abklicken.

                                    Merh als MAJOR Release ist nicht möglich. Und außerdem sind wir heir sogar nich im TESTER / BETA Channel, also nix mit 0815 unerfahrener User ...

                                    1 Reply Last reply Reply Quote 2
                                    • Thomas Braun
                                      Thomas Braun Most Active @Homoran last edited by

                                      @homoran sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                                      Aber ich glaube nicht, dass jeder user im Voraus die Folgen der im popup genannten Dinge 100%ig erkennen kann.

                                      Nein, das glaube ich auch nicht.
                                      Aber was soll die Lösung sein? Gar keine ChangeLogs? Nur im GitHub?
                                      Fehlende Erfahrung kannst du ja nicht per PopUp ersetzen. Mit den PopUps und entsprechender Dokumentation kannst du nur bei der Vergrößerung des Erfahrungsschatzes helfen.

                                      1 Reply Last reply Reply Quote 1
                                      • mcm1957
                                        mcm1957 @Homoran last edited by

                                        @homoran said in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                                        möglicherweise die Option all -y verwenden.

                                        LOK, sollte ev besser Harakiri Mode on heißen 🙂

                                        EGAL
                                        Spätestens bei Problemen sollte man nach einem Update einen Blick in die einschlägigen Releasenotes werfen,. Das wär wohl nicht zuviel verlangt.

                                        1 Reply Last reply Reply Quote 1
                                        • mcm1957
                                          mcm1957 last edited by mcm1957

                                          Aber stellt euch schon mal auf den STABLE Update ein und bereitet eine Standardantwort mit Erläuterung vor 🙂

                                          Thomas Braun 1 Reply Last reply Reply Quote 0
                                          • Thomas Braun
                                            Thomas Braun Most Active @mcm1957 last edited by

                                            @mcm57 sagte in Probleme mit JS Script nach JS-Adapter Update > 7.9.0:

                                            Aber stellt euch schon mal auf den STABLE Update ein und bereitet eine Standardantwort mit Erläuterung vor

                                            Du meinst, ich soll einen Textbaustein anlegen?

                                            "RTFM!!111!!!!111"

                                            Na ich weiß nich...

                                            mcm1957 1 Reply Last reply Reply Quote 3
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            413
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            31
                                            1438
                                            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