Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Script holt falschen Wert vom Objekt

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Script holt falschen Wert vom Objekt

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
11 Beiträge 4 Kommentatoren 474 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Offline
    H Offline
    hmanfred
    schrieb am zuletzt editiert von hmanfred
    #1

    Ich habe Scripte laufen, die mich auf kritische Störungen aufmerksam machen. Dazu gehört selbstverständlich auch, dass der Homematic-Rega und der -RPC Adapter verbunden sind.

    Ich frage dazu den Wert "hm-rega.1.info.connection" bzw. "hm-rpc.n.info.connection" ab und reagiere entsprechend.

    Nach einen Neustart von ioBroker (Reboot nach nächtlichen Wartungsarbeiten) passiert es regelmäßig (häufig aber nicht immer), dass der Wert in den Objekten eindeutig auf "true" steht, das Script jedoch ein "false" verarbeitet.

    Gerade eben steht wieder so ein Fall an. Vorbereitend hatte ich im Laufe der Woche bereits je relevantem Datenpunkt ein einfaches Script und einen neuen Zieldatenpunkt angelegt:

    var schedule;
    
    schedule = schedule('* * * * *', function () {
      setState("javascript.0.Stoerung_Summe.REGA_Realwert"/*REGA_Realwert*/, getState("hm-rega.1.info.connection").val);
    });
    

    Das Script läuft definitiv jede Minute. Ich sehe auch in der Adminoberfläche am Objekt "javascript.0.Stoerung_Summe.REGA_Realwert", dass es beschieben wird. Es wird kurz grün und der Zeitstempel aktualisiert.

    Dennoch, der Wert im Adapter:
    Zwischenablage01.jpg

    ...und das Script schreibt:
    Zwischenablage02.jpg

    Das Problem ist (mindestens bis zum nächsten reboot) weg, sobald ich eine der beteiligten Instanzen (als Javascript oder HM-...) neu starte.

    Ich hatte dazu vor ca. 1,5 Jahren einen Issue auf GitHub dazu eröffnet. Ich war mit Unterstützung des Entwicklers nicht in der Lage, dem Problem auf die Spur zu kommen.

    Nach einer Neuinstallation wegen Umstieg auf eine VM (NUC mit Proxmox) war das Problem weg, ist aber inzwischen schleichend wieder aufgetaucht.

    Wie könnte ich der Ursache auf die Spur kommen?

    Versionen:
    JS-Controller 2.1.0
    Script Engine 4.3.3
    HM Rega 2.4.12
    HM RPC 1.11.0
    Node 10.16.0
    NPM 6.9.0

    BBTownB haselchenH 2 Antworten Letzte Antwort
    0
    • H hmanfred

      Ich habe Scripte laufen, die mich auf kritische Störungen aufmerksam machen. Dazu gehört selbstverständlich auch, dass der Homematic-Rega und der -RPC Adapter verbunden sind.

      Ich frage dazu den Wert "hm-rega.1.info.connection" bzw. "hm-rpc.n.info.connection" ab und reagiere entsprechend.

      Nach einen Neustart von ioBroker (Reboot nach nächtlichen Wartungsarbeiten) passiert es regelmäßig (häufig aber nicht immer), dass der Wert in den Objekten eindeutig auf "true" steht, das Script jedoch ein "false" verarbeitet.

      Gerade eben steht wieder so ein Fall an. Vorbereitend hatte ich im Laufe der Woche bereits je relevantem Datenpunkt ein einfaches Script und einen neuen Zieldatenpunkt angelegt:

      var schedule;
      
      schedule = schedule('* * * * *', function () {
        setState("javascript.0.Stoerung_Summe.REGA_Realwert"/*REGA_Realwert*/, getState("hm-rega.1.info.connection").val);
      });
      

      Das Script läuft definitiv jede Minute. Ich sehe auch in der Adminoberfläche am Objekt "javascript.0.Stoerung_Summe.REGA_Realwert", dass es beschieben wird. Es wird kurz grün und der Zeitstempel aktualisiert.

      Dennoch, der Wert im Adapter:
      Zwischenablage01.jpg

      ...und das Script schreibt:
      Zwischenablage02.jpg

      Das Problem ist (mindestens bis zum nächsten reboot) weg, sobald ich eine der beteiligten Instanzen (als Javascript oder HM-...) neu starte.

      Ich hatte dazu vor ca. 1,5 Jahren einen Issue auf GitHub dazu eröffnet. Ich war mit Unterstützung des Entwicklers nicht in der Lage, dem Problem auf die Spur zu kommen.

      Nach einer Neuinstallation wegen Umstieg auf eine VM (NUC mit Proxmox) war das Problem weg, ist aber inzwischen schleichend wieder aufgetaucht.

      Wie könnte ich der Ursache auf die Spur kommen?

      Versionen:
      JS-Controller 2.1.0
      Script Engine 4.3.3
      HM Rega 2.4.12
      HM RPC 1.11.0
      Node 10.16.0
      NPM 6.9.0

      BBTownB Offline
      BBTownB Offline
      BBTown
      schrieb am zuletzt editiert von
      #2

      @hmanfred
      Darf ich fragen, weshalb Du jede Minute nachschaust und weshalb Du nicht als Trigger das Ändern des Datenpunktes "connection" nimmst?

      ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

      H 1 Antwort Letzte Antwort
      0
      • BBTownB BBTown

        @hmanfred
        Darf ich fragen, weshalb Du jede Minute nachschaust und weshalb Du nicht als Trigger das Ändern des Datenpunktes "connection" nimmst?

        H Offline
        H Offline
        hmanfred
        schrieb am zuletzt editiert von
        #3

        @BBTown
        Das gepostete Script ist nur zum Testen eingerichtet.

        Im richtigen Leben werden von einem Script viele Datenpunkte abgefragt. Da es verschiedene Typen sind (Boolsch, Wertelisten, Zahl) kann man sie (zumindest in Blockly) nicht so einfach als Trigger verodern.
        Deshalb läuft dieses Script im 5-Minuten-Rhythmus und arbeitet alle Datenpunkte ab.

        Aber auch wenn ich nur diesen einen Datenpunkt als Trigger nehmen würde: wenn JS in meinem Beispiel den DP als false erkennt, obwohl er true ist - wie soll dann getriggert werden wenn er von (eigenlich nicht)false auf (wirklich(false) "wechselt"?

        Und zuletzt: das (nachgewiesene) Problem, dass JS einen falschen Wert verarbeitet bleibt und erschüttert ziemlich heftig mein Vertrauen in die Zuverlässigkeit solcher Abfragen.

        BBTownB 1 Antwort Letzte Antwort
        0
        • H hmanfred

          @BBTown
          Das gepostete Script ist nur zum Testen eingerichtet.

          Im richtigen Leben werden von einem Script viele Datenpunkte abgefragt. Da es verschiedene Typen sind (Boolsch, Wertelisten, Zahl) kann man sie (zumindest in Blockly) nicht so einfach als Trigger verodern.
          Deshalb läuft dieses Script im 5-Minuten-Rhythmus und arbeitet alle Datenpunkte ab.

          Aber auch wenn ich nur diesen einen Datenpunkt als Trigger nehmen würde: wenn JS in meinem Beispiel den DP als false erkennt, obwohl er true ist - wie soll dann getriggert werden wenn er von (eigenlich nicht)false auf (wirklich(false) "wechselt"?

          Und zuletzt: das (nachgewiesene) Problem, dass JS einen falschen Wert verarbeitet bleibt und erschüttert ziemlich heftig mein Vertrauen in die Zuverlässigkeit solcher Abfragen.

          BBTownB Offline
          BBTownB Offline
          BBTown
          schrieb am zuletzt editiert von BBTown
          #4

          @hmanfred sagte in Script holt falschen Wert vom Objekt:

          kann man sie (zumindest in Blockly) nicht so einfach als Trigger verodern.

          Hast Du dazu ein Beispiel?
          Ich hatte bisher keinen Datenpunkt der nicht als Trigger hätte herangezogen werden können.

          Wenn Du alle x-Minuten einfach ins blaue hinein Abfragen losschießt, und das ggf. auch noch zig mal, dann erzeugst Du einen Overhead, den Du durch gezieltes Triggern vermeidest.

          Die Frage ist nun, ob Du ersatzweise den Trigger "connection" anstelle eines minütlichen Pollings ausprobierst - und wenn es funktioniert, Du den Fehler anderweitig suchst, - oder ob Du den Tipp ignorierst und im "heftigen Misstrauen" verbleibst?!

          ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

          HomoranH 1 Antwort Letzte Antwort
          0
          • BBTownB BBTown

            @hmanfred sagte in Script holt falschen Wert vom Objekt:

            kann man sie (zumindest in Blockly) nicht so einfach als Trigger verodern.

            Hast Du dazu ein Beispiel?
            Ich hatte bisher keinen Datenpunkt der nicht als Trigger hätte herangezogen werden können.

            Wenn Du alle x-Minuten einfach ins blaue hinein Abfragen losschießt, und das ggf. auch noch zig mal, dann erzeugst Du einen Overhead, den Du durch gezieltes Triggern vermeidest.

            Die Frage ist nun, ob Du ersatzweise den Trigger "connection" anstelle eines minütlichen Pollings ausprobierst - und wenn es funktioniert, Du den Fehler anderweitig suchst, - oder ob Du den Tipp ignorierst und im "heftigen Misstrauen" verbleibst?!

            HomoranH Offline
            HomoranH Offline
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #5

            @BBTown sagte in Script holt falschen Wert vom Objekt:

            Ich hatte bisher keinen Datenpunkt der nicht als Trigger hätte herangezogen werden können.

            Aber bei 50 DPs wird es in Blockly schon zur Fingerakrobatik

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            H 1 Antwort Letzte Antwort
            0
            • H hmanfred

              Ich habe Scripte laufen, die mich auf kritische Störungen aufmerksam machen. Dazu gehört selbstverständlich auch, dass der Homematic-Rega und der -RPC Adapter verbunden sind.

              Ich frage dazu den Wert "hm-rega.1.info.connection" bzw. "hm-rpc.n.info.connection" ab und reagiere entsprechend.

              Nach einen Neustart von ioBroker (Reboot nach nächtlichen Wartungsarbeiten) passiert es regelmäßig (häufig aber nicht immer), dass der Wert in den Objekten eindeutig auf "true" steht, das Script jedoch ein "false" verarbeitet.

              Gerade eben steht wieder so ein Fall an. Vorbereitend hatte ich im Laufe der Woche bereits je relevantem Datenpunkt ein einfaches Script und einen neuen Zieldatenpunkt angelegt:

              var schedule;
              
              schedule = schedule('* * * * *', function () {
                setState("javascript.0.Stoerung_Summe.REGA_Realwert"/*REGA_Realwert*/, getState("hm-rega.1.info.connection").val);
              });
              

              Das Script läuft definitiv jede Minute. Ich sehe auch in der Adminoberfläche am Objekt "javascript.0.Stoerung_Summe.REGA_Realwert", dass es beschieben wird. Es wird kurz grün und der Zeitstempel aktualisiert.

              Dennoch, der Wert im Adapter:
              Zwischenablage01.jpg

              ...und das Script schreibt:
              Zwischenablage02.jpg

              Das Problem ist (mindestens bis zum nächsten reboot) weg, sobald ich eine der beteiligten Instanzen (als Javascript oder HM-...) neu starte.

              Ich hatte dazu vor ca. 1,5 Jahren einen Issue auf GitHub dazu eröffnet. Ich war mit Unterstützung des Entwicklers nicht in der Lage, dem Problem auf die Spur zu kommen.

              Nach einer Neuinstallation wegen Umstieg auf eine VM (NUC mit Proxmox) war das Problem weg, ist aber inzwischen schleichend wieder aufgetaucht.

              Wie könnte ich der Ursache auf die Spur kommen?

              Versionen:
              JS-Controller 2.1.0
              Script Engine 4.3.3
              HM Rega 2.4.12
              HM RPC 1.11.0
              Node 10.16.0
              NPM 6.9.0

              haselchenH Offline
              haselchenH Offline
              haselchen
              Most Active
              schrieb am zuletzt editiert von
              #6

              @hmanfred

              Letzte Änderung und Zeitstempel haben unterschiedliche Zeiten.
              Was ist um 1:34 und um 11:10 passiert?
              Mag vielleicht nichts miteinander zu tun haben, aber ist mir halt aufgefallen :)

              Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

              H 1 Antwort Letzte Antwort
              0
              • haselchenH haselchen

                @hmanfred

                Letzte Änderung und Zeitstempel haben unterschiedliche Zeiten.
                Was ist um 1:34 und um 11:10 passiert?
                Mag vielleicht nichts miteinander zu tun haben, aber ist mir halt aufgefallen :)

                H Offline
                H Offline
                hmanfred
                schrieb am zuletzt editiert von hmanfred
                #7

                @haselchen
                1:34 war die Wartung fertig und der Rechner wurde neu gestartet. Da das Test-Script ja ein Dauerläufer ist und der falsche Wert abgeholt wird, wechselte der Testdatenpunkt von true (so stand er ja vor dem Reboot) auf false.

                11:10 war der letze Lauf des Scripts vor dem Screenshot.

                1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @BBTown sagte in Script holt falschen Wert vom Objekt:

                  Ich hatte bisher keinen Datenpunkt der nicht als Trigger hätte herangezogen werden können.

                  Aber bei 50 DPs wird es in Blockly schon zur Fingerakrobatik

                  H Offline
                  H Offline
                  hmanfred
                  schrieb am zuletzt editiert von
                  #8

                  @Homoran sagte in Script holt falschen Wert vom Objekt:

                  @BBTown sagte in Script holt falschen Wert vom Objekt:

                  Ich hatte bisher keinen Datenpunkt der nicht als Trigger hätte herangezogen werden können.

                  Aber bei 50 DPs wird es in Blockly schon zur Fingerakrobatik

                  Richtig. Ich könnte sie zwar alle auf Aktualisierung oder Änderung verodern - ich frage sie ja im "Dann" explizit nochmal ab. Mit Cron alle 5 Minuten ist's halt einfacher zusammenzuklicken.

                  Aber nochmal: das ist ja nicht das Problem. :-(

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • H hmanfred

                    @Homoran sagte in Script holt falschen Wert vom Objekt:

                    @BBTown sagte in Script holt falschen Wert vom Objekt:

                    Ich hatte bisher keinen Datenpunkt der nicht als Trigger hätte herangezogen werden können.

                    Aber bei 50 DPs wird es in Blockly schon zur Fingerakrobatik

                    Richtig. Ich könnte sie zwar alle auf Aktualisierung oder Änderung verodern - ich frage sie ja im "Dann" explizit nochmal ab. Mit Cron alle 5 Minuten ist's halt einfacher zusammenzuklicken.

                    Aber nochmal: das ist ja nicht das Problem. :-(

                    HomoranH Offline
                    HomoranH Offline
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #9

                    @hmanfred sagte in Script holt falschen Wert vom Objekt:

                    das ist ja nicht das Problem.

                    Ist das so?

                    Wenn der Raspi vollkommen überlastet ist, kommen schon mal seltsame Dinge dabei raus

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    H 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @hmanfred sagte in Script holt falschen Wert vom Objekt:

                      das ist ja nicht das Problem.

                      Ist das so?

                      Wenn der Raspi vollkommen überlastet ist, kommen schon mal seltsame Dinge dabei raus

                      H Offline
                      H Offline
                      hmanfred
                      schrieb am zuletzt editiert von hmanfred
                      #10

                      @Homoran sagte in Script holt falschen Wert vom Objekt:

                      @hmanfred sagte in Script holt falschen Wert vom Objekt:

                      das ist ja nicht das Problem.

                      Ist das so?

                      Wenn der Raspi vollkommen überlastet ist, kommen schon mal seltsame Dinge dabei raus

                      @hmanfred sagte in Script holt falschen Wert vom Objekt:

                      Nach einer Neuinstallation wegen Umstieg auf eine VM (NUC mit Proxmox) war das Problem weg, ist aber inzwischen schleichend wieder aufgetaucht.

                      Aber auch ein überlasteter Raspi darf mal verschnaufen - und spätestens dann sollte der richtige Wert abgeholt werden. Das passiert aber erst wieder, wenn einer der beteiligten Adapter neu gestartet wird.

                      1 Antwort Letzte Antwort
                      0
                      • H Offline
                        H Offline
                        hmanfred
                        schrieb am zuletzt editiert von
                        #11

                        Ich muss diesen Thread noch mal hochziehen. Das Problem ist nicht gelöst.

                        Jetzt möchte ich mal meine Vermutung testen, dass es an der Startreihenfolge der Adapter liegt. Lässt sich die - und möglichst auch ein Delay zwischen den Starts - irgendwo einstellen?

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        299

                        Online

                        32.7k

                        Benutzer

                        82.4k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe