NEWS
Scripte ohne Trigger seit Update auf JS 3.2 Probleme
-
Hallo, ich bekomme seit (vermutlich) dem Update auf js-controller 3.2 immer wieder Meldungen über Telegramm gesendet und finde den Auslöser einfach nicht. Ob es jetzt direkt mit dem Update auf js-controler 3.2 zu tun hat kann ich nicht sagen. Die Meldungen kommen alle 3h20 Minuten und die Reihenfolge setzt sich aus mehreren scripten die keinen "Trigger" haben zusammen. Die Scripte verwende ich eigentlich nur um sie über text2command anzusteuern bzw. um eine vernünftige Ausgabe zu erzeugen oder um ein Telegramm "Menü" zu erhalten.
- Menü Telegram (JS): --> text 'Willkommen in der Übersicht, wähle eine Aktion:' erscheint bei Telegramm
sendTo('telegram.0', { text: 'Willkommen in der Übersicht, wähle eine Aktion:', reply_markup: { keyboard: [ ['Übersicht', 'Daniel'], ['Daniel L1 EIN', 'Daniel L1 AUS'], ['Daniel L2 EIN', 'Daniel L2 AUS'], ['Blitz', 'Sonoff','Netamo','Temperatur'], ['Anwesend','Dieselpreis'], ['Müll','Müllnext','Abholbereit'] ], resize_keyboard: true, one_time_keyboard: true } });
- Menü Telegram (JS): --> text: 'Bitte wähle eine Aktion', --> erscheint bei Telegramm
sendTo('telegram.0', { text: 'Bitte wähle eine Aktion', reply_markup: { keyboard: [ ['Daniel','', 'Übersicht'], ['Daniel L1 EIN', 'Daniel L1 AUS','Watt1'], ['Daniel L2 EIN', 'Daniel L2 AUS','Watt2'], ['PC-Online','PC-Offline','Netamo'] ], resize_keyboard: true, one_time_keyboard: true } });
- Blocklyscript --> Ausgabe erscheint bei Telegramm
- Blocklyscript --> Ausgabe erscheint bei Telegramm
Die Scripte ohne Trigger steuere ich über text2command an
z.B.
-
@smarteshome2020 Das Problem erledigt sich wenn du als Auslöser einen eigenen Datenpunkt verwendest.
Scripte ohne Trigger werden immer ausgeführt wenn z. B. der Javascript-Adapter neu startet. Die Verwendung von Scripten ohne Trigger ist nie zu empfehlen. -
@smarteshome2020 ich lese da Höchstadt, Höchstadt/Aisch ? oder ist da ein anderes gemeint?
Wo schon erwähnt, Script mit einem Trigger verwenden, bleibt allerdings noch die Frage, was startet bei dir alle 3St 20min neu? -
@crunchip , ja. Da wo es die guten Karpfen gibt
Und ja, ich frage mich auch was eigentlich da los ist. Heute waren es kein 3h20min. Hatte jeweils um 00:32, 08:25 und 15:02 Meldungsflut -
Wirf doch mal einen genaueren Blick in das Log File um diese Zeiten. Irgendetwas muss da stehen ueber das du heraus bekommen kannst warum der js adapter neu gestartet wurde.
A.
-
@htrecksler Danke. hast du eine Idee wie ich bei dem JS Skript einen Trigger davor baue?
Ich habe es wie im Link erklärt implementiert und das lief bisher eigentlich ganz gut. -
Das was da in dem Link erklärt wird nutzt Datenpunkte die eigentlich nur für interne Zwecke gedacht sind (die "scriptenabled" Datenpunkte)
Was du tun musst:
- Pro Skript einen Datenpunkt unter 0_userdata.0 anlegen, Typ boolean
- im jeweiligen Skript das "sendTo" klammern:
on ({id:"0_userdata.0.your.state.name.here", change: "gt"}, function(obj) { sendTo('telegram.0', { text: 'Bitte wähle eine Aktion', reply_markup: { keyboard: [ ['Daniel','', 'Übersicht'], ['Daniel L1 EIN', 'Daniel L1 AUS','Watt1'], ['Daniel L2 EIN', 'Daniel L2 AUS','Watt2'], ['PC-Online','PC-Offline','Netamo'] ], resize_keyboard: true, one_time_keyboard: true } }); setState("0_userdata.0.your.state.name.here", false); });
Das setState dient dazu den DP zurück zu setzen so das du dein Skript auch mehrfach triggern kannst.
-
@asgothian , Danke, das werde ich gleich testen. Auf deinen anderen Hinweis hin habe ich mal das Logfile runter geladen und jetzt sehe ich sehr viele Meldung die auf ein DB Problem hindeuten in dessen Folge sehr viele Adapter neu starten.
Da scheine ich wohl ein größeres Problem zu habenAuszug aus dem Log:
2021-02-23 08:23:37.809 - error: text2command.0 (9616) States database error: read ECONNRESET 2021-02-23 08:23:37.673 - info: javascript.0 (8858) Stop script script.js.common.Wassersensor 2021-02-23 08:23:37.703 - info: javascript.0 (8858) Stop script script.js.common.DS213-Adapter-STOP 2021-02-23 08:23:37.771 - info: javascript.0 (8858) Stop script script.js.common.Anwesend 2021-02-23 08:23:37.779 - info: web.0 (9488) terminated http server on port 8082 2021-02-23 08:23:37.832 - info: info.0 (8788) cleaned everything up... 2021-02-23 08:23:37.779 - error: backitup.0 (8675) States database error: write ECONNRESET 2021-02-23 08:23:37.895 - error: iot.0 (8817) Error by device connection: "This socket has been ended by the other party" 2021-02-23 08:23:37.896 - info: iot.0 (8817) Connection changed: disconnect 2021-02-23 08:23:37.897 - info: iot.0 (8817) Connection lost 2021-02-23 08:23:37.537 - error: admin.0 (8605) States database error: write ECONNRESET 2021-02-23 08:23:37.647 - error: yahka.0 (9602) States database error: write EPIPE 2021-02-23 08:23:42.585 - error: alexa2.0 (8623) Objects database error: connect ECONNREFUSED 127.0.0.1:9001 2021-02-23 08:23:42.598 - warn: hs100.0 (27802) get state error: Connection is closed. 2021-02-23 08:23:42.610 - warn: trashschedule.0 (9631) get state error: Connection is closed. 2021-02-23 08:23:42.611 - warn: whatsapp-cmb.0 (9662) get state error: Connection is closed. 2021-02-23 08:23:42.601 - warn: hs100.0 (27802) get state error: DB closed 2021-02-23 08:23:42.607 - warn: hs100.0 (27802) get state error: DB closed 2021-02-23 08:23:42.609 - warn: hs100.0 (27802) get state error: DB closed
-
Das zweite Problem ist seit Hardwareaustausch auf Raspberry 4B mit 4GB erledigt.