NEWS

Merkwürdiges Verhalten 1 Jahr laufender Skripte...



  • Liebe Freunde,

    Folgende Voraussetzungen:

    • ioBroker auf NUC unter Proxmox
    • Node.js v12.18.0, NPM 6.14.4
      -alles aktualisiert im latest Repo

    ich habe seit zwei Tagen das Problem, dass alle mein Rollladen-Skripte nicht mehr richtig arbeiten. Zwei Dinge habe ich erinnerlich geändert:

    1. Mit Erscheinen bin ich mit Node.js 12.17.0 auf 12.18.0
    2. Ich habe alle acht beteiligten Sonoff T2-kompatiblen Schalter von Tasmota 7.1.2 auf 8.3.1 angehoben.

    Leider kann ich im Moment den zeitlichen Zusammenhang zwischen dem Fehlverhalten der Skripte und den beiden Änderungen nicht genau nachhalten.

    Hier ist mal das Skript als Blockly, das ich dankenswerterweise aus dem Forum habe und für meine Bedürfnisse anpassen konnte.

    Und hier ist das Java-Skript, das mir angezeigt wird:

    Zu dem Skript gehören diese Variablen:
    a881b52c-723f-4c7f-a2f9-0bcbbc466006-image.png

    Das Skript ist mit Alexa verknüpft und ich kann z.B. sagen:

    • "Alexa, stell das Esszimmer-Rollo auf 100%".
    • In dem Fall wäre z.B. der DP "Ist-Position": 0%, somit offen. Der Befehl stellt die Variable "Soll-Position" auf 100%.
    • Das Skript soll dann den T2-Schalter für Rollladen schließen anschalten.
    • Das Rollo läuft "Laufzeit-runter": 320 Zehntelsekunden. Solange benötigt das Rollo zum kompletten Schließen.
    • Die Variable "Ist-Position" soll dabei von 0 auf 100% hochzählen, in Abhängigkeit von der Laufzeit. Also 0% ist offen, 100% komplett geschlossen.
    • Beim Erreichen der Soll-Position soll das Skript dann den Schalter des T2 ausmachen.
    • Alternativ kann ich den Schalter für Schließen betätigen und das Skript zählt entsprechend der Laufzeit die "Ist-Position".

    Bislang hat das seit fast einem Jahr problemlos mit 8 Rollos funktioniert. Jetzt auf einmal bleibt "Ist-Position" z.B. bei 84% oder bei 24% oder auch mal bei 100% stehen, während das Rollo weiter läuft und der Schalter dann nicht ausgeht. Es betrifft alle Rollos.
    Es passiert auch, dass das Rollo einfach abschaltet und bei 24% stehen bleibt. Dabei ist es egal ob es öffnen oder schließen soll. Die angezeigten Werte sind immer anders.

    Ich habe das Skript wegen des eigenartigen Verhaltens in einer weiteren Javaskript-Instanz noch einmal händisch eingegeben, um damit einen Fehler auszuschließen. Das Verhalten ist vollkommen gleich.

    Ich habe keine Idee mehr, was da los sein könnte. Könnte es tatsächlich an der neuen Tasmota liegen? Ich möchte kein Downgrade auf 7.1.2 machen, da ich die Schalter dazu auseinander nehmen müsste. Und dummerweise haben die Schalter keine Pins für Rx und Tx. Und ich glaube, ein OTA Downgrade funktioniert nicht...

    Kann mir jemand einen Hinweis geben? Eine Idee, wo ich noch schauen könnte. Bin fast soweit, den Broker neu zu installieren. Aber alles andere läuft eben normal.
    Kann mir jemand sagen wie ich feststellen kann, ob das Skript in irgendeine Schleife läuft, also vielleicht noch läuft während ich es neu starten will...

    Dankbar für jeden Hinweis!


  • Forum Testing Most Active

    @XxJooO
    ich bin gerade nur am Handy und kann Dein Blockly nicht importieren.
    Schau mal ob Deine stop timeout jeweils so heißen wie sie sollen.
    Beim js-adapter Update gab es damit ein "Problem"
    Also mal alle stop timeout und stop interval überprüfen.

    Edit: das hier meine ich, vielleicht auch Dein Problem ?

    https://forum.iobroker.net/post/437235

    https://github.com/ioBroker/ioBroker.javascript/issues/566



  • 1c0667a5-4de2-4710-b448-40bcf4df1320-image.png

    Grüß Dich und danke für den Hinweis. Der Ausschnitt aus dem Blockly zeigt, dass die stop-Befehle richtig gesetzt sind. Und ja, leider hatte ich dazu keinen Hinweis gelesen, aber den Fehler schon selber gefunden und korrigiert. Da stand "stop zyklische Ausführung Ist".

    Das hatte ich also schon erfolglos geändert...

    Die Links lese ich mir noch durch. Vielen Dank!



  • Ok, den Link auf github hatte ich interessanterweise auch gelesen. Hatte aber verpennt, meine Skripte danach zu durchsuchen. Und was mich wundert ist, dass die Skripte erst seit zwei Tagen streiken, das issue und die Lösung aber bereits 3 Wochen alt ist... Aber der Hinweis ist schon wichtig, muss tatsächlich noch andere Skripte prüfen...



  • @XxJooO
    Du steuerst "Fenster.oeffnen" und "Fenster.schliessen". Was hat es damit auf sich ?



  • Herrje, hatte ich vergessen. Es sind alias-DPs. Diese verlinken auf den Sonoff Power 1 und Sonoff Power 2 DP und schalten die T2 direkt.



  • Leute, mir raucht der Kopf und ich finde den Fehler nicht. Es wird auch immer undurchschaubarer. Z.B. damit, dass während das Skript gar nicht getriggert wurde und zeitlich schon abgelaufen ist, die Variable für die Ist-Position auf einmal weiter zählt. So als würde das Skript im Hintergrund noch weiter laufen. Deshalb auch meine Frage wie ich sehen kann, ob das Skript, obwohl zeitlich beendet, doch noch läuft...


  • Forum Testing Most Active

    @XxJooO sagte in Merkwürdiges Verhalten 1 Jahr laufender Skripte...:

    Deshalb auch meine Frage wie ich sehen kann, ob das Skript, obwohl zeitlich beendet, doch noch läuft...

    Das Script selbst läuft doch normalerweise immer.
    Du kannst das Script mit debug Bausteinen versehen, dann siehst Du was passiert.



  • Also, nach meinem Verständnis schläft das Skript, bis es getriggert wird. Hier soll eine Zeitlang ein Schalter an und dann wieder ausgeschaltet werden. Während der An-Phase soll ein DP gezählt werden. Ich erkenne aber, dass die Zeit des laufenden Skripts abgelaufen ist, nach z.B. 30 Sekunden später läuft plötzlich der DP weiter. Das darf er aber ja nur, während das Skript läuft, und dafür muss es getriggert werden. Wurde es aber nicht!!!



  • @XxJooO sagte:

    nach z.B. 30 Sekunden später läuft plötzlich der DP weiter.

    Dann wurde das Intervall wieder gestartet, was nur durch einen Trigger erfolgen kann oder das Intervall war durch Überlastung der CPU unterbrochen und läuft nun weiter. Logge mal alle Trigger-Ereignisse (debug output)



  • Kurze Hilfe, debug output wo aktivieren?
    Danke



  • @XxJooO sagte:

    debug output wo aktivieren?

    Blockly_temp.JPG



  • Ok, Kopf vor Stirn schlag und schäm...



  • Ok, es lebt... es arbeitet... es hat ein Bewusstsein entwickelt und will mich um den Verstand bringen...

    javascript.0	2020-06-14 13:55:28.832	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: false
    javascript.0	2020-06-14 13:55:28.778	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: true
    javascript.0	2020-06-14 13:54:53.836	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: false
    javascript.0	2020-06-14 13:54:53.788	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: true
    javascript.0	2020-06-14 13:54:45.809	info	(2413) script.js.Rolladen.Rollladen_Test2: hoch oder runter geändert: undefined
    javascript.0	2020-06-14 13:54:31.447	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 13:54:30.336	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 13:54:29.058	info	(2413) script.js.Rolladen.Rollladen_Test2: hoch oder runter geändert: undefined
    javascript.0	2020-06-14 13:54:29.008	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 13:54:25.059	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 13:54:25.008	info	(2413) script.js.Rolladen.Rollladen_Test2: hoch oder runter geändert: undefined
    javascript.0	2020-06-14 13:54:25.002	info	(2413) script.js.Rolladen.Rollladen_Test2: Soll-Position geändert: 100
    

    Um 13:54:25.002 wird der Soll Wert von 0 auf 100 gestellt, die Laufzeit müsste 32 Sekunden sein.
    Um 13:54:25.059 wird schliessen korrekt getriggert, aber bereits
    um 13:54:29.008, also nur nach 4 Sekunden auf false getriggert und das Rollo stoppt.
    Die nachfolgenden Trigger kommen, obwohl ich nichts aktiviert, sondern nur beobachtet habe...

    Unfassbar... ich bin am Ende



  • Laufen Reste im Hintergrund, die sich überlagern? Wie kann ich das sehen?



  • Und es triggert immer weiter...

    javascript.0	2020-06-14 14:02:13.382	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 14:02:08.996	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 14:01:16.749	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 14:01:10.957	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 14:00:28.820	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: false
    javascript.0	2020-06-14 14:00:28.720	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: true
    javascript.0	2020-06-14 13:59:34.504	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 13:59:33.567	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 13:58:09.669	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 13:58:06.511	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 13:55:28.832	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: false
    javascript.0	2020-06-14 13:55:28.778	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: true
    javascript.0	2020-06-14 13:54:53.836	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: false
    javascript.0	2020-06-14 13:54:53.788	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.oeffnen getriggert: true
    javascript.0	2020-06-14 13:54:45.809	info	(2413) script.js.Rolladen.Rollladen_Test2: hoch oder runter geändert: undefined
    javascript.0	2020-06-14 13:54:31.447	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 13:54:30.336	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 13:54:29.058	info	(2413) script.js.Rolladen.Rollladen_Test2: hoch oder runter geändert: undefined
    javascript.0	2020-06-14 13:54:29.008	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: false
    javascript.0	2020-06-14 13:54:25.059	info	(2413) script.js.Rolladen.Rollladen_Test2: Fenster vorne.schliessen getriggert: true
    javascript.0	2020-06-14 13:54:25.008	info	(2413) script.js.Rolladen.Rollladen_Test2: hoch oder runter geändert: undefined
    javascript.0	2020-06-14 13:54:25.002	info	(2413) script.js.Rolladen.Rollladen_Test2: Soll-Position geändert: 100
    


  • @XxJooO sagte:

    nur nach 4 Sekunden auf false getriggert und das Rollo stoppt.

    Da laufen mehrere Intervalle parallel. Starte mal die Instanz neu.

    @XxJooO sagte in Merkwürdiges Verhalten 1 Jahr laufender Skripte...:

    hoch oder runter geändert: undefined

    Weshalb undefined ? Welcher Wert wird geloggt ?



  • Ich glaube, es kommt von diesem debug

    257a86f6-1c20-42c6-8549-7ab5d93eaa76-image.png

    Was sollte "value" denn hier ausgeben?



  • Instanz und ioBroker habe ich unterwegs schon zigfach neu gestartet. Habe auch schon neue Instanzen angelegt und versucht, das in einer weiteren auszuführen. Immer gleiches Verhalten...



  • @XxJooO sagte:

    es kommt von diesem debug

    Dort gibt es die lokale Variable value nicht. Wenn zwei Datenpunkte triggern, sollte man im Debug den Namen und den Wert ausgeben.

    Blockly_temp.JPG

    Weshalb Trigger auf "wurde aktualisiert" ?


Log in to reply
 

Suggested Topics

2.2k
Online

32.4k
Users

39.0k
Topics

528.5k
Posts