Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Javascript-adapter ruft on ereignis doppelt auf

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Javascript-adapter ruft on ereignis doppelt auf

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

      @paul53 so funktioniert es.
      So ging es allerdings vorher nicht.
      Und der sinn von meiner abfrage war, dass ich den trigger erst auslöse, wenn der shellyadapter bestätigt hat.
      Hat sich da was geändert?

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

        @paul53 sagte in Javascript-adapter ruft on ereignis doppelt auf:

        und außerdem
        setStateDelayed(IdZisternenstellmotor,false, getState(verfahrzeitFrischwasserstellmotor).val * 1000); // ID stimmt?

        Warumsollte die nicht stimmen

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

          @ben1983 sagte: Warumsollte die nicht stimmen

          Wenn verfahrzeitFrischwasserstellmotor eine ID ist, fehlte bei Dir getState() um die ID.

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

            @paul53 Die Id ist nur die zu setzende.
            Das zu schreibende ist eine interne Variabel (Deshalb steht auch kein Id davor)
            Aber davon abgesehen funktioniert es ja, nur reagiert die on() Abfrage anders als auf dem windows system.

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

              @ben1983 sagte: ist eine interne Variabel

              Ein Objekt (wegen .val)?

              Ben1983 2 Replies Last reply Reply Quote 0
              • Ben1983
                Ben1983 @paul53 last edited by

                @paul53 Nein, weil ich das nicht nur da verwende.
                Ich lese es bei änderung ein und reagiere darauf indem ich es in den Arbeitsspeicher schreibe.
                So muss ich nicht überall getState aufrufen.

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

                  @paul53 Frage mich jetzt nur, warum er den aufruf doppelt absetzt?

                  paul53 2 Replies Last reply Reply Quote 0
                  • paul53
                    paul53 @Ben1983 last edited by

                    @ben1983 sagte: Frage mich jetzt nur, warum er den aufruf doppelt absetzt?

                    Welcher Adapter setzt den DP mit IdFrischwasserstellmotor?

                    1 Reply Last reply Reply Quote 0
                    • Ben1983
                      Ben1983 last edited by Ben1983

                      @paul53 Shelly…. Ist ein Adapter im beta

                      @haus-automatisierung
                      Kann das an dem Beta liegen?

                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @Ben1983 last edited by

                        @ben1983 sagte in Javascript-adapter ruft on ereignis doppelt auf:

                        Kann das an dem Beta liegen?

                        Dass irgendwas den (hier nicht genannten) Datenpunkt 2x schreibt? Wie soll ich darauf antworten 😉 Kenne dein System nicht und weiß nichtmal um welche Geräte es geht.

                        Was erwartest da für eine Antwort?

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

                          @ben1983
                          Um zu sehen, woher es kommt, bau mal in das Skript einen zweiten Trigger auf Aktualisierung ein, der es im Log zeigt:

                          on({id: IdFrischwasserstellmotor}, (dp) => {
                              log('Frischwasser: ' + dp.state.val + ', Ack: ' + dp.state.ack + ', From: ' + dp.state.from);
                          });
                          
                          Ben1983 1 Reply Last reply Reply Quote 0
                          • Ben1983
                            Ben1983 last edited by

                            @paul53 mache ich

                            1 Reply Last reply Reply Quote 0
                            • Ben1983
                              Ben1983 @haus-automatisierung last edited by Ben1983

                              @haus-automatisierung sorry.
                              Es wird ein Shelly 2.5 geschaltet.
                              Diesen schalte ich mit setstatedelayed.
                              Jeweils(val=true oder false) mit dem ack nicht angegeben, also false.
                              Die on Methode, welche ich auf ack=true Abfrage wird zwei mal mit val=true und ack=true aufgerufen. Aber frage ich auf lediglich die id ab, dann wird bei Änderung nur einmal mit ack = fAlse aufgerufen

                              Mein Gedanke war nun, dass irgendwie bei der Abfrage auf ack=true der Wert für ack nicht richtig übergeben wird.

                              haus-automatisierung 1 Reply Last reply Reply Quote 0
                              • haus-automatisierung
                                haus-automatisierung Developer Most Active @Ben1983 last edited by

                                @ben1983 sagte in Javascript-adapter ruft on ereignis doppelt auf:

                                Mein Gedanke war nun, dass irgendwie bei der Abfrage auf ack=true der Wert für ack nicht richtig übergeben wird.

                                Müsste ich in Ruhe testen, aber würde mich sehr wundern wenn das passiert. Die Versionen werden ja von tausenden Leuten schon genutzt. Das wäre sicherlich aufgefallen

                                1 Reply Last reply Reply Quote 0
                                • Ben1983
                                  Ben1983 last edited by

                                  @haus-automatisierung ja,
                                  Das hat ja auf meiner Windows Installation auch funktioniert.
                                  Jetzt bei der neuen auf Docker trat es auf.

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

                                    @paul53 @haus-automatisierung Das hier habe ich wie beschrieben eingefügt:

                                    on({id: IdFrischwasserstellmotor}, (dp) => {
                                        log('Frischwasser: ' + dp.state.val + ', Ack: ' + dp.state.ack + ', From: ' + dp.state.from);
                                    });
                                    

                                    Im Log steht dann:

                                    16:27:46.649	info	javascript.0 (32410) script.js.common.eventtest: Frischwasser: false, Ack: false, From: system.adapter.javascript.0
                                    16:27:46.652	info	javascript.0 (32410) script.js.common.eventtest: Frischwasser: false, Ack: true, From: system.adapter.shelly.0
                                    16:27:46.930	info	javascript.0 (32410) script.js.common.eventtest: Frischwasser: false, Ack: true, From: system.adapter.shelly.0
                                    

                                    also für michsieht es so aus, dassichim script auf false setze und der shelly adapter 2 x mit true zurück meldet.
                                    Oder?

                                    paul53 haus-automatisierung 2 Replies Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Ben1983 last edited by paul53

                                      @ben1983 sagte: im script auf false setze und der shelly adapter 2 x mit true zurück meldet. Oder?

                                      Ja, so sieht es aus: Im Abstand von ca. 300 ms wird val = false und ack = true gesendet.

                                      1 Reply Last reply Reply Quote 0
                                      • haus-automatisierung
                                        haus-automatisierung Developer Most Active @Ben1983 last edited by

                                        @ben1983 sagte in Javascript-adapter ruft on ereignis doppelt auf:

                                        also für michsieht es so aus, dassichim script auf false setze und der shelly adapter 2 x mit true zurück meldet.

                                        Ich würde das ja gerne nachvollziehen oder testen. Aber Du lieferst ja keine Infos 🙂

                                        • Shelly 2.5 in welchem Modus (Switch oder Shutter)
                                        • Welche Firmware-Version
                                        • Welcher Datenpunkt genau
                                        • Wie integriert (MQTT oder CoAP?), ...
                                        Ben1983 1 Reply Last reply Reply Quote 0
                                        • Ben1983
                                          Ben1983 @haus-automatisierung last edited by

                                          @haus-automatisierung wie es ausschaut sind es alle shellys (shelly 1,shelly2,shelly2.5) die ich im Einsatz habe.
                                          Alle über CoAP.
                                          Alle auf der neuesten Firmware: Datenpunkt "Relais0.switch" "Relais1".switch (Wobei ich andere jetzt nicht abfrage)
                                          Installiert ist die Beta:
                                          900e947e-9b9f-4683-9b73-401ff079d6cb-image.png

                                          haus-automatisierung 1 Reply Last reply Reply Quote 0
                                          • haus-automatisierung
                                            haus-automatisierung Developer Most Active @Ben1983 last edited by

                                            @ben1983 sagte in Javascript-adapter ruft on ereignis doppelt auf:

                                            Alle auf der neuesten Firmware: Datenpunkt "Relais0.switch" "Relais1".switch (Wobei ich andere jetzt nicht abfrage)

                                            Fehler gefunden. Problem war, dass die Änderung einmal bestätigt wurde, wenn der Wert geändert wurde und zum Gerät geschickt wird. Zusätzlich antwortet das Gerät dann aber direkt über CoAP oder MQTT direkt mit dem neuen Wert. Was wiederum zu einem Event mit ack geführt hat.

                                            Ist in 5.3.1 behoben.

                                            Ben1983 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            651
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            48
                                            1477
                                            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