Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script funktioniert auf ein mal nicht mehr

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script funktioniert auf ein mal nicht mehr

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @Dark Angel last edited by

      @dark-angel sagte: Event_Counter wird jeweils um 1 erhöht bei jedem betätigen des Schalters (Short, oder Longpush)

      Dann kann das Skript dieses Verhalten nicht verursachen, denn ohne zusätzlichen Trigger steuert es nichts.

      Dark Angel 1 Reply Last reply Reply Quote 0
      • Dark Angel
        Dark Angel @paul53 last edited by Dark Angel

        @paul53
        Wenn ich das Script deaktiviere, kann ich ganz normal das Licht ein und ausschalten.

        Habe vor jeden Schritt einen Debug Block hinzugefügt und bekomme folgende Meldungen in Protokol:
        Wenn ich das Licht einschalten möchte:

        javascript.0
        	2025-01-04 23:20:02.537	info	script.js.1.Work.Hoflicht_Haustuer: Timeout zurück setzen
        javascript.0
        	2025-01-04 23:20:02.537	info	script.js.1.Work.Hoflicht_Haustuer: setForeignState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, state={"val":false,"ack":false,"ts":1736029202537,"q":0,"from":"system.adapter.javascript.0","lc":1736029202537,"c":"script.js.1.Work.Hoflicht_Haustuer"})
        javascript.0
        	2025-01-04 23:20:02.537	info	script.js.1.Work.Hoflicht_Haustuer: Licht Ausschalten
        javascript.0
        	2025-01-04 23:20:02.536	info	script.js.1.Work.Hoflicht_Haustuer: getState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, timerId=undefined) => {"val":false,"ack":true,"ts":1736029183426,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1736029153237}
        

        Und folg. wenn, das Licht an ist und ausgeschaltet werden soll (gefolgt von einen Longpush, was ich wohl hätte weglassen sollen):

        javascript.0
        	2025-01-04 23:27:36.987	info	script.js.1.Work.Hoflicht_Haustuer: setForeignState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.longpush, state={"val":false,"ack":true,"ts":1736029656987,"q":0,"from":"system.adapter.javascript.0","lc":1736029656987,"c":"script.js.1.Work.Hoflicht_Haustuer"})
        javascript.0
        	2025-01-04 23:27:36.987	info	script.js.1.Work.Hoflicht_Haustuer: Longpush auf Falsch setzen
        javascript.0
        	2025-01-04 23:27:36.986	info	script.js.1.Work.Hoflicht_Haustuer: setForeignState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, state={"val":true,"ack":false,"ts":1736029656986,"q":0,"from":"system.adapter.javascript.0","lc":1736029656986,"c":"script.js.1.Work.Hoflicht_Haustuer"})
        javascript.0
        	2025-01-04 23:27:36.986	info	script.js.1.Work.Hoflicht_Haustuer: Licht dauerhaft Einschalten
        javascript.0
        	2025-01-04 23:27:36.986	info	script.js.1.Work.Hoflicht_Haustuer: getState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.longpush, timerId=undefined) => {"val":true,"ack":true,"ts":1736029656985,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1736029656985}
        javascript.0
        	2025-01-04 23:27:36.986	info	script.js.1.Work.Hoflicht_Haustuer: getState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, timerId=undefined) => {"val":true,"ack":true,"ts":1736029654823,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1736029654823}
        javascript.0
        	2025-01-04 23:27:34.698	info	script.js.1.Work.Hoflicht_Haustuer: setTimeout(ms=300000)
        javascript.0
        	2025-01-04 23:27:34.698	info	script.js.1.Work.Hoflicht_Haustuer: timeout 5 Min. starten
        javascript.0
        	2025-01-04 23:27:34.698	info	script.js.1.Work.Hoflicht_Haustuer: setForeignState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, state={"val":true,"ack":false,"ts":1736029654698,"q":0,"from":"system.adapter.javascript.0","lc":1736029654698,"c":"script.js.1.Work.Hoflicht_Haustuer"})
        javascript.0
        	2025-01-04 23:27:34.698	info	script.js.1.Work.Hoflicht_Haustuer: Longpush Falsch
        javascript.0
        	2025-01-04 23:27:34.698	info	script.js.1.Work.Hoflicht_Haustuer: getState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.longpush, timerId=undefined) => {"val":false,"ack":true,"ts":1736029654691,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1736021775717}
        javascript.0
        	2025-01-04 23:27:34.698	info	script.js.1.Work.Hoflicht_Haustuer: getState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, timerId=undefined) => {"val":true,"ack":true,"ts":1736029645021,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1736029614830}
        
        1 Reply Last reply Reply Quote 0
        • Dr. Bakterius
          Dr. Bakterius Most Active @Dark Angel last edited by Dr. Bakterius

          @dark-angel Versuche doch mal auf shelly.0.SHSW-25#40F520006202#1.Relay0.Input zu triggern. Da bekommst du gleich true bzw. false (also ein / aus) geliefert und musst nur noch den longpush auswerten.

          In deinem Log hast du den TP EventCount nicht mitgelogt. Vielleicht zählt der aus irgendeinem Grund jetzt doppelt.

          Dark Angel 1 Reply Last reply Reply Quote 0
          • Dark Angel
            Dark Angel @Dr. Bakterius last edited by Dark Angel

            @dr-bakterius
            Input quitiert so wie es aussieht nur, ob Relais ausgelöst wurde.
            Springt kurz auf true und dann gleich wieder auf false.

            Ich habe irgendwie das Gefühl, bis das Script so weit ist herauszufinden wie der Wert von Switch ist, wird dieser schon auf true gesetzt...

            Hab jetzt einen Debug direkt am Anfang des Scriptes (gleich nach der Auswertung, ob der Zähler verändert wurde) hinzugefügt und bekomme folgende Meldung, die mich zu der o.g. Annahme führt:

            2025-01-05 11:18:09.672 - info: javascript.0 (90982) script.js.1.Work.Hoflicht_Haustuer: getState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, timerId=undefined) => {"val":false,"ack":true,"ts":1736072271300,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1736071597275}
            2025-01-05 11:18:09.673 - info: javascript.0 (90982) script.js.1.Work.Hoflicht_Haustuer: true
            2025-01-05 11:18:09.673 - info: javascript.0 (90982) script.js.1.Work.Hoflicht_Haustuer: getState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, timerId=undefined) => {"val":false,"ack":true,"ts":1736072271300,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1736071597275}
            2025-01-05 11:18:09.673 - info: javascript.0 (90982) script.js.1.Work.Hoflicht_Haustuer: Licht Ausschalten
            2025-01-05 11:18:09.673 - info: javascript.0 (90982) script.js.1.Work.Hoflicht_Haustuer: setForeignState(id=shelly.0.SHSW-25#40F520006202#1.Relay0.Switch, state={"val":false,"ack":false,"ts":1736072289673,"q":0,"from":"system.adapter.javascript.0","lc":1736072289673,"c":"script.js.1.Work.Hoflicht_Haustuer"})
            2025-01-05 11:18:09.673 - info: javascript.0 (90982) script.js.1.Work.Hoflicht_Haustuer: Timeout zurück setzen
            
            Dr. Bakterius 1 Reply Last reply Reply Quote 0
            • Dark Angel
              Dark Angel last edited by

              Also, langsam habe ich die Vermutung, dass der Shelly selbst ein Problem hat.
              Wenn ich den Button Type auf "momentary" setze, funktioniert das Script fast richtig.
              Setze ich ihn auf "momentary_on _release", dann spinnt alles.

              "Fast richtig" bedeutet: Bei Longpush und beim Ausschalten gibt es eine kurze Wiederholung des Zustandes.
              Bei Longpush geht das Licht an, kurz aus und dann wieder an und bleibt dann dauerhaft an.
              Beim Ausschalten gehts kutz aus, dann wieder kurz an und dann wieder aus und bleibt auch aus.

              Ich vermute, der "Zusatz" on_release funktioniert bei dem Shelly nicht mehr und der sendet den Switch-Status schon beim drücken des Tasters und nicht erst beim loslassen.

              1 Reply Last reply Reply Quote 0
              • Dr. Bakterius
                Dr. Bakterius Most Active @Dark Angel last edited by

                @dark-angel sagte in Script funktioniert auf ein mal nicht mehr:

                Input quitiert so wie es aussieht nur, ob Relais ausgelöst wurde.

                Nein, Input ist der Taster / Schalter Eingang und Switch ist das Relais.

                Es könnte auch am Taster liegen. Möglicherweise prellt der?

                Dark Angel 1 Reply Last reply Reply Quote 0
                • Dark Angel
                  Dark Angel @Dr. Bakterius last edited by

                  @dr-bakterius :
                  Also, am Taster lag es auch nicht. Hab den getauscht, hat aber nichts gebracht.
                  Nun habe ich einen Shelly Plus 2PM und sehe jetzt was Du gemeint hast ("Input ist der Taster / Schalter Eingang und Switch ist das Relais.")
                  Das ist tatsächlich so, aber erst in der Gen.2 der Shellys. In der ersten Generation, zu der auch der Shelly 2.5 gehört ist es so wie ich es schon weiter oben beschrieben habe.
                  Der 2PM wird höchstwahrscheinlich aber auch nicht zum Einsatz kommen, da ich noch keine Möglichkeit finde, mein Vorhaben so umzusetzen, wie es bei dem 2.5 war.
                  Ich habe keinen Counter, den ich triggern kann, Die Input Meldungen sind so was von unübersichtlich...
                  Da muss ich wahrscheinlich erstmal drüber schlafen und mir was neues überlegen.
                  Die Logic bei der Gen.2 ist irgendwie ganz anders 😠

                  K Dr. Bakterius 2 Replies Last reply Reply Quote 0
                  • K
                    Kusi @Dark Angel last edited by Kusi

                    @dark-angel Ich nutze hierfür folgendes Blockly...
                    Bei mir sind es 4 Taster, welche vom Shelly beim Drücken erfasst werden. Das Relays bleibt bei mir immer eingeschaltet.

                    e7d829df-5e84-4c8b-9a9e-98cfd868cc2e-image.png

                    Dies ist der Datenpunkt, welcher Triggert:
                    shelly.0.SHSW-1#E098068CDD69#1.Relay0.Input

                    Das Shelly ist wie folgt konfiguriert (Shelly 1, 1. Generation):
                    c0be88aa-e21b-47de-9e1e-e987a0997b93-image.png

                    Verstehe ich richtig, dass du mit deinem Shelly nur den Taster/Schalter auswertest, analog bei mir?
                    Wenn ja, handelt es sich um einen Taster oder Schalter?

                    1 Reply Last reply Reply Quote 0
                    • Dr. Bakterius
                      Dr. Bakterius Most Active @Dark Angel last edited by Dr. Bakterius

                      @dark-angel sagte in Script funktioniert auf ein mal nicht mehr:

                      Das ist tatsächlich so, aber erst in der Gen.2 der Shellys.

                      Da ich nur Shelly 1 habe, weiß ich nicht wie das bei den anderen ist. Allerdings sind die 1er doch die ältesten. Daher wundert es mich, dass das bei den Shelly 2.5 anders sein soll.

                      Dark Angel 1 Reply Last reply Reply Quote 0
                      • Dark Angel
                        Dark Angel @Dr. Bakterius last edited by

                        @dr-bakterius
                        Ich habe "detached" mit Absicht nicht gewählt, denn das Licht sollte auch dann Ein-/Ausgeschaltet werden können, wenn keine Verbindung zu ioBroker bestehen sollte. Das "Problem" habe ich mit dem NS Panel von Sonoff im Wohnzimmer.
                        Solange keine Verbindung zu ioBroker besteht sitze ich völlig im dunkeln, wenn ich nicht vorher das Licht eingeschaltet hatte.
                        Als ich das damals eingerichtet hatte, war "momentary" praktisch DIE Einstellung, wenn man einen Taster verwendet.
                        momentary_on_release verhindert, dass ein toggle ausgelöst wird, bevor man den Taster loslässt. Bei mir unbedingt erforderlich um den Longpush auswerten zu können.

                        Bei dem Gen.2 Shellys (habe einen Shelly 1 Gen.2 und jetzt noch den Shelly 2PM Gen.2) gibt es keinen EventCount und kein Longpush, womit mein Script praktisch unbrauchbar geworden ist, solange man kein Gen.1 Gerät damit steuert/auswertet.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        792
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        5
                        15
                        497
                        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