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.

    1. 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
        }
    });
    
    1. 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
        }
    });
    
    1. Blocklyscript --> Ausgabe erscheint bei Telegramm

    18f891aa-5226-47bc-92b2-cb2dd081a2ab-image.png

    1. Blocklyscript --> Ausgabe erscheint bei Telegramm

    7938a020-4bc8-41f2-8489-bc06c191e9e8-image.png

    Die Scripte ohne Trigger steuere ich über text2command an

    z.B.
    aafde950-82b6-4b66-aaf4-3a3baf6e53fe-image.png

  • Forum Testing

    @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.

  • Forum Testing Most Active

    @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 😞

  • Developer

    @smarteshome2020

    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.

    Telegramm Menues

  • Developer

    @smarteshome2020

    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 haben 😞

    Auszug 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.

Suggested Topics

1.2k
Online

36.7k
Users

42.5k
Topics

588.1k
Posts