Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. js- Abfrage von Status an Ausgängen per Telegram

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    266

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

js- Abfrage von Status an Ausgängen per Telegram

js- Abfrage von Status an Ausgängen per Telegram

Scheduled Pinned Locked Moved JavaScript
38 Posts 3 Posters 1.5k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    maerzpa
    wrote on last edited by
    #1

    Hallo, vielleicht kann mir einer von euch helfen. Ich steuere meine Lampen über Telegram (WAGO) an. Steuern klappt gut soweit. Nur der Status zum Ausgang innerhalb der if-Schleife, wird immer falsch angezeigt.

    else if (befehl === "%WC_Licht") {
            setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
            sendTo('telegram', {
            user: benutzer,
            text: 'Licht WC:                                               ' + getvalue('modbus.0.coils.573_WC_Licht').val,
        });
    }
    

    Vielen Dank vorab.

    1 Reply Last reply
    0
    • M Offline
      M Offline
      maerzpa
      wrote on last edited by
      #2

      Sorry nun der richtige Ausschnitt.

      else if (befehl === "%WC_Licht") {
              setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
              sendTo('telegram', {
              user: benutzer,
              text: 'Licht WC:                                               ' + getState('modbus.0.coils.573_WC_Licht').val,
          });
      }
      
      F 1 Reply Last reply
      0
      • M maerzpa

        Sorry nun der richtige Ausschnitt.

        else if (befehl === "%WC_Licht") {
                setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                sendTo('telegram', {
                user: benutzer,
                text: 'Licht WC:                                               ' + getState('modbus.0.coils.573_WC_Licht').val,
            });
        }
        
        F Offline
        F Offline
        fastfoot
        wrote on last edited by
        #3

        @maerzpa probiere es mit callback

        else if (befehl === "%WC_Licht") {
            setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
            getState('modbus.0.coils.573_WC_Licht', (err, state) => {
                sendTo('telegram', {
                    user: benutzer,
                    text: 'Licht WC:                                               ' + state.val
                });
            })
        }
        

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        M 2 Replies Last reply
        0
        • F fastfoot

          @maerzpa probiere es mit callback

          else if (befehl === "%WC_Licht") {
              setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
              getState('modbus.0.coils.573_WC_Licht', (err, state) => {
                  sendTo('telegram', {
                      user: benutzer,
                      text: 'Licht WC:                                               ' + state.val
                  });
              })
          }
          
          M Offline
          M Offline
          maerzpa
          wrote on last edited by
          #4

          @fastfoot Vielen Dank, ich werde es heute abend testen.

          1 Reply Last reply
          0
          • F fastfoot

            @maerzpa probiere es mit callback

            else if (befehl === "%WC_Licht") {
                setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                getState('modbus.0.coils.573_WC_Licht', (err, state) => {
                    sendTo('telegram', {
                        user: benutzer,
                        text: 'Licht WC:                                               ' + state.val
                    });
                })
            }
            
            M Offline
            M Offline
            maerzpa
            wrote on last edited by
            #5

            @fastfoot Ich habe es eben probiert. Führt leider zum selben Ergebnis. Das interessante ist:
            Wenn ich die Abfrage in einer weiteren else Schleife mache, dann geht es. Vielleicht zu wenig Zeit zwischen der Ansteuerung und der Abfrage des Ausgangs?

            F 2 Replies Last reply
            0
            • M maerzpa

              @fastfoot Ich habe es eben probiert. Führt leider zum selben Ergebnis. Das interessante ist:
              Wenn ich die Abfrage in einer weiteren else Schleife mache, dann geht es. Vielleicht zu wenig Zeit zwischen der Ansteuerung und der Abfrage des Ausgangs?

              F Offline
              F Offline
              fastfoot
              wrote on last edited by
              #6

              @maerzpa sagte in js- Abfrage von Status an Ausgängen per Telegram:

              @fastfoot Ich habe es eben probiert. Führt leider zum selben Ergebnis. Das interessante ist:
              Wenn ich die Abfrage in einer weiteren else Schleife mache, dann geht es. Vielleicht zu wenig Zeit zwischen der Ansteuerung und der Abfrage des Ausgangs?

              Wahrscheinlich müsste das setState() auch mit callback erfolgen und die restlichen Zeilen da mit rein. Da ist aber @paul53 wohl kompetenter und hat vlt. was Einfacheres auf Lager, callback im callback müsste zwar funktionieren, aber irgendwie denke ich das geht besser, ohne es aber zu wissen 🙂

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              1 Reply Last reply
              0
              • M maerzpa

                @fastfoot Ich habe es eben probiert. Führt leider zum selben Ergebnis. Das interessante ist:
                Wenn ich die Abfrage in einer weiteren else Schleife mache, dann geht es. Vielleicht zu wenig Zeit zwischen der Ansteuerung und der Abfrage des Ausgangs?

                F Offline
                F Offline
                fastfoot
                wrote on last edited by
                #7

                @maerzpa so sollte es gehen, bis wer was Eleganteres hat

                else if (befehl === "%WC_Licht") {
                    setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true, () => {
                        getState('modbus.0.coils.573_WC_Licht', (err, state) => {
                            sendTo('telegram', {
                                user: benutzer,
                                text: 'Licht WC:                                               ' + state.val
                            });
                        })
                    });
                }
                

                iobroker läuft unter Docker auf QNAP TS-451+
                SkriptRecovery: https://forum.iobroker.net/post/930558

                M 1 Reply Last reply
                0
                • F fastfoot

                  @maerzpa so sollte es gehen, bis wer was Eleganteres hat

                  else if (befehl === "%WC_Licht") {
                      setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true, () => {
                          getState('modbus.0.coils.573_WC_Licht', (err, state) => {
                              sendTo('telegram', {
                                  user: benutzer,
                                  text: 'Licht WC:                                               ' + state.val
                              });
                          })
                      });
                  }
                  
                  M Offline
                  M Offline
                  maerzpa
                  wrote on last edited by
                  #8

                  @fastfoot Habe es eben probiert. Immernoch selbes Ergebnis. Lampe an, zeigt aber Status false.

                  F 1 Reply Last reply
                  0
                  • M maerzpa

                    @fastfoot Habe es eben probiert. Immernoch selbes Ergebnis. Lampe an, zeigt aber Status false.

                    F Offline
                    F Offline
                    fastfoot
                    wrote on last edited by fastfoot
                    #9

                    @maerzpa dann fällt mir nur noch das hier ein

                    else if (befehl === "%WC_Licht") {
                        setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                    }
                    on({id:"modbus.0.coils.12356_WC_VisuTaster_Licht_fhem", change:"ne"}, function(obj) {
                        sendTo('telegram', {
                            user: benutzer,
                            text: 'Licht WC:                                               ' + obj.state.val
                        });
                    })
                    

                    iobroker läuft unter Docker auf QNAP TS-451+
                    SkriptRecovery: https://forum.iobroker.net/post/930558

                    M 1 Reply Last reply
                    0
                    • F fastfoot

                      @maerzpa dann fällt mir nur noch das hier ein

                      else if (befehl === "%WC_Licht") {
                          setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                      }
                      on({id:"modbus.0.coils.12356_WC_VisuTaster_Licht_fhem", change:"ne"}, function(obj) {
                          sendTo('telegram', {
                              user: benutzer,
                              text: 'Licht WC:                                               ' + obj.state.val
                          });
                      })
                      
                      M Offline
                      M Offline
                      maerzpa
                      wrote on last edited by
                      #10

                      @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                      F 2 Replies Last reply
                      0
                      • M maerzpa

                        @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                        F Offline
                        F Offline
                        fastfoot
                        wrote on last edited by
                        #11

                        @maerzpa sagte in js- Abfrage von Status an Ausgängen per Telegram:

                        @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                        sollten stimmen, du hast ja nur ein Fragment gepostet

                        iobroker läuft unter Docker auf QNAP TS-451+
                        SkriptRecovery: https://forum.iobroker.net/post/930558

                        1 Reply Last reply
                        0
                        • M maerzpa

                          @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                          F Offline
                          F Offline
                          fastfoot
                          wrote on last edited by
                          #12

                          @maerzpa sagte in js- Abfrage von Status an Ausgängen per Telegram:

                          @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                          änder "change": in change:

                          iobroker läuft unter Docker auf QNAP TS-451+
                          SkriptRecovery: https://forum.iobroker.net/post/930558

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            maerzpa
                            wrote on last edited by
                            #13

                            ich habe eine Schleife in der ich Anweisungen von Telegram abfrage:
                            on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                            var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
                            var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
                            var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
                            var idSayIt = "sayit.0.tts.text";

                             if (befehl.search(/(?=.*(\bmenu\b)).+/ig) != -1) {
                                sendTo('telegram', {
                                    user: benutzer,
                                    text: 'Wähle das Gewerk',
                                    reply_markup: {
                                        inline_keyboard: [
                                            [{ text: 'Einstellungen', callback_data: '%Einstellungen'}, { text: 'Fenster+Türe', callback_data: '%Fenster+Türe'}, { text: 'Licht', callback_data: '%Licht'}],
                                            [{ text: 'Steckdosen', callback_data: '%Steckdosen'}, { text: 'Beregnung', callback_data: '%Beregnung'}, { text: 'Kameras', callback_data: '%Kameras'}],
                                        ]
                                     }
                                });
                            }
                            

                            else if (befehl === "%WC_Licht") {
                            setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                            on({id:"modbus.0.coils.12356_WC_VisuTaster_Licht_fhem", "change":"ne"}, function(obj) {
                            sendTo('telegram', {
                            user: benutzer,
                            text: 'Licht WC: ' + obj.state.val
                            });
                            })
                            }

                            Wenn ich die Klammern so setzte wie oben in der Else Schleife--> bekomme ich den richtigen Status per Telegram gesendet. Allerdings mehrmals. Immer wieder ein vielfaches bei erneutem Wechsel des Statuses (EIN/AUS).

                            F 2 Replies Last reply
                            0
                            • M maerzpa

                              ich habe eine Schleife in der ich Anweisungen von Telegram abfrage:
                              on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                              var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
                              var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
                              var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
                              var idSayIt = "sayit.0.tts.text";

                               if (befehl.search(/(?=.*(\bmenu\b)).+/ig) != -1) {
                                  sendTo('telegram', {
                                      user: benutzer,
                                      text: 'Wähle das Gewerk',
                                      reply_markup: {
                                          inline_keyboard: [
                                              [{ text: 'Einstellungen', callback_data: '%Einstellungen'}, { text: 'Fenster+Türe', callback_data: '%Fenster+Türe'}, { text: 'Licht', callback_data: '%Licht'}],
                                              [{ text: 'Steckdosen', callback_data: '%Steckdosen'}, { text: 'Beregnung', callback_data: '%Beregnung'}, { text: 'Kameras', callback_data: '%Kameras'}],
                                          ]
                                       }
                                  });
                              }
                              

                              else if (befehl === "%WC_Licht") {
                              setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                              on({id:"modbus.0.coils.12356_WC_VisuTaster_Licht_fhem", "change":"ne"}, function(obj) {
                              sendTo('telegram', {
                              user: benutzer,
                              text: 'Licht WC: ' + obj.state.val
                              });
                              })
                              }

                              Wenn ich die Klammern so setzte wie oben in der Else Schleife--> bekomme ich den richtigen Status per Telegram gesendet. Allerdings mehrmals. Immer wieder ein vielfaches bei erneutem Wechsel des Statuses (EIN/AUS).

                              F Offline
                              F Offline
                              fastfoot
                              wrote on last edited by fastfoot
                              #14

                              @maerzpa siehe nächsten Post

                              iobroker läuft unter Docker auf QNAP TS-451+
                              SkriptRecovery: https://forum.iobroker.net/post/930558

                              1 Reply Last reply
                              0
                              • M maerzpa

                                ich habe eine Schleife in der ich Anweisungen von Telegram abfrage:
                                on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
                                var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
                                var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
                                var idSayIt = "sayit.0.tts.text";

                                 if (befehl.search(/(?=.*(\bmenu\b)).+/ig) != -1) {
                                    sendTo('telegram', {
                                        user: benutzer,
                                        text: 'Wähle das Gewerk',
                                        reply_markup: {
                                            inline_keyboard: [
                                                [{ text: 'Einstellungen', callback_data: '%Einstellungen'}, { text: 'Fenster+Türe', callback_data: '%Fenster+Türe'}, { text: 'Licht', callback_data: '%Licht'}],
                                                [{ text: 'Steckdosen', callback_data: '%Steckdosen'}, { text: 'Beregnung', callback_data: '%Beregnung'}, { text: 'Kameras', callback_data: '%Kameras'}],
                                            ]
                                         }
                                    });
                                }
                                

                                else if (befehl === "%WC_Licht") {
                                setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                                on({id:"modbus.0.coils.12356_WC_VisuTaster_Licht_fhem", "change":"ne"}, function(obj) {
                                sendTo('telegram', {
                                user: benutzer,
                                text: 'Licht WC: ' + obj.state.val
                                });
                                })
                                }

                                Wenn ich die Klammern so setzte wie oben in der Else Schleife--> bekomme ich den richtigen Status per Telegram gesendet. Allerdings mehrmals. Immer wieder ein vielfaches bei erneutem Wechsel des Statuses (EIN/AUS).

                                F Offline
                                F Offline
                                fastfoot
                                wrote on last edited by
                                #15

                                @maerzpa Du hast den Trigger nicht rausgenommen, ich hatte nur auf die Klammern geachtet. So sollte es jetzt funktionieren

                                var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
                                var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
                                var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
                                var idSayIt = "sayit.0.tts.text";
                                
                                on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                
                                    if (befehl.search(/(?=.*(\bmenu\b)).+/ig) != -1) {
                                        sendTo('telegram', {
                                            user: benutzer,
                                            text: 'Wähle das Gewerk',
                                            reply_markup: {
                                                inline_keyboard: [
                                                    [{ text: 'Einstellungen', callback_data: '%Einstellungen'}, { text: 'Fenster+Türe', callback_data: '%Fenster+Türe'}, { text: 'Licht', callback_data: '%Licht'}],
                                                    [{ text: 'Steckdosen', callback_data: '%Steckdosen'}, { text: 'Beregnung', callback_data: '%Beregnung'}, { text: 'Kameras', callback_data: '%Kameras'}],
                                                ]
                                                }
                                        });
                                    } else if (befehl === "%WC_Licht") {
                                        setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                                    }
                                })
                                
                                on({id:"modbus.0.coils.12356_WC_VisuTaster_Licht_fhem", "change":"ne"}, function(obj) {
                                    sendTo('telegram', {
                                    user: benutzer,
                                    text: 'Licht WC: ' + obj.state.val
                                    });
                                })
                                

                                iobroker läuft unter Docker auf QNAP TS-451+
                                SkriptRecovery: https://forum.iobroker.net/post/930558

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  maerzpa
                                  wrote on last edited by
                                  #16

                                  @fastfoot sagte in js- Abfrage von Status an Ausgängen per Telegram:

                                  modbus.0.coils.573_WC_Licht

                                  Danke erstmal für die Mühe und Geduld. So bekomme ich die richtige Meldung. Doch leider bekomme ich auch wenn ich vor Ort Taster drücke (ohne Telegramm Button), eine Meldung per Telegramm.
                                  Sorry das ich nerve.

                                  F P 2 Replies Last reply
                                  0
                                  • M maerzpa

                                    @fastfoot sagte in js- Abfrage von Status an Ausgängen per Telegram:

                                    modbus.0.coils.573_WC_Licht

                                    Danke erstmal für die Mühe und Geduld. So bekomme ich die richtige Meldung. Doch leider bekomme ich auch wenn ich vor Ort Taster drücke (ohne Telegramm Button), eine Meldung per Telegramm.
                                    Sorry das ich nerve.

                                    F Offline
                                    F Offline
                                    fastfoot
                                    wrote on last edited by
                                    #17

                                    @maerzpa nee, nervt nicht 🙂 Ich überlege mir bis morgen etwas...

                                    iobroker läuft unter Docker auf QNAP TS-451+
                                    SkriptRecovery: https://forum.iobroker.net/post/930558

                                    1 Reply Last reply
                                    0
                                    • F Offline
                                      F Offline
                                      fastfoot
                                      wrote on last edited by
                                      #18

                                      @maerzpa so, ein neuer Versuch, noch ein paar Fehler beseitigt, die ich aber selbst eingebaut hatte

                                      var benutzer,
                                          menu_cmd = false;
                                      
                                      on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
                                          var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
                                          var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
                                          var idSayIt = "sayit.0.tts.text";
                                      
                                          benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
                                      
                                          if (befehl.search(/(?=.*(\bmenu\b)).+/ig) != -1) {
                                              sendTo('telegram', {
                                                  user: benutzer,
                                                  text: 'Wähle das Gewerk',
                                                  reply_markup: {
                                                      inline_keyboard: [
                                                          [{ text: 'Einstellungen', callback_data: '%Einstellungen'}, { text: 'Fenster+Türe', callback_data: '%Fenster+Türe'}, { text: 'Licht', callback_data: '%Licht'}],
                                                          [{ text: 'Steckdosen', callback_data: '%Steckdosen'}, { text: 'Beregnung', callback_data: '%Beregnung'}, { text: 'Kameras', callback_data: '%Kameras'}],
                                                      ]
                                                      }
                                              });
                                          } else if (befehl === "%WC_Licht") {
                                              setState("modbus.0.coils.12356_WC_VisuTaster_Licht_fhem",true);
                                              menu_cmd=true;
                                          }
                                      })
                                      
                                      on({id:"modbus.0.coils.573_WC_Licht", change:"ne"}, function(obj) {
                                          if(menu_cmd) {
                                              menu_cmd=false;
                                              sendTo('telegram', {
                                                  user: benutzer,
                                                  text: 'Licht WC: ' + obj.state.val
                                              });
                                          }
                                      })```

                                      iobroker läuft unter Docker auf QNAP TS-451+
                                      SkriptRecovery: https://forum.iobroker.net/post/930558

                                      1 Reply Last reply
                                      0
                                      • M maerzpa

                                        @fastfoot sagte in js- Abfrage von Status an Ausgängen per Telegram:

                                        modbus.0.coils.573_WC_Licht

                                        Danke erstmal für die Mühe und Geduld. So bekomme ich die richtige Meldung. Doch leider bekomme ich auch wenn ich vor Ort Taster drücke (ohne Telegramm Button), eine Meldung per Telegramm.
                                        Sorry das ich nerve.

                                        P Offline
                                        P Offline
                                        pix
                                        wrote on last edited by
                                        #19

                                        Hallo!

                                        Für genau diesen Fall gibt es die EIgenschaft from in der Subscription on(). Guck mal hier: https://www.iobroker.net/#de/documentation/basics/states.md

                                        Da kannst du neben zum Beispiel dem Wert, den der Datenpunkt haben soll (hier soll er sich ändern, daher change: "ne") auch angeben, von wo aus er geändert wurde.

                                        In diesem Falle wird die Änderung ja vom Javascript-Adapter gemacht, ich nehme an, von Instanz 0.

                                        on({
                                            id:"modbus.0.coils.573_WC_Licht", 
                                            change:"ne",
                                            from: "javascript.0"
                                        }, function(obj) {
                                            sendTo('telegram', {
                                                    user: benutzer,
                                                    text: 'Licht WC: ' + obj.state.val
                                             });
                                        });
                                        

                                        @fastfoot Sehr gute Idee, eine Variable zu verwenden. Das kann aber bei vielen Tastern schnell unübersichtlich werden.

                                        Gruß
                                        Pix

                                        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                        F 1 Reply Last reply
                                        0
                                        • P pix

                                          Hallo!

                                          Für genau diesen Fall gibt es die EIgenschaft from in der Subscription on(). Guck mal hier: https://www.iobroker.net/#de/documentation/basics/states.md

                                          Da kannst du neben zum Beispiel dem Wert, den der Datenpunkt haben soll (hier soll er sich ändern, daher change: "ne") auch angeben, von wo aus er geändert wurde.

                                          In diesem Falle wird die Änderung ja vom Javascript-Adapter gemacht, ich nehme an, von Instanz 0.

                                          on({
                                              id:"modbus.0.coils.573_WC_Licht", 
                                              change:"ne",
                                              from: "javascript.0"
                                          }, function(obj) {
                                              sendTo('telegram', {
                                                      user: benutzer,
                                                      text: 'Licht WC: ' + obj.state.val
                                               });
                                          });
                                          

                                          @fastfoot Sehr gute Idee, eine Variable zu verwenden. Das kann aber bei vielen Tastern schnell unübersichtlich werden.

                                          Gruß
                                          Pix

                                          F Offline
                                          F Offline
                                          fastfoot
                                          wrote on last edited by
                                          #20

                                          @pix sagte in js- Abfrage von Status an Ausgängen per Telegram:

                                          @fastfoot Sehr gute Idee, eine Variable zu verwenden. Das kann aber bei vielen Tastern schnell unübersichtlich werden.

                                          ich dachte dabei an diese eine Variable, die allerdings bei jedem setState() gesetzt würde. Das sollte im Ein-Mann-Betrieb kein Problem sein, sollte aber die Frau gleichzeitig das Licht im Wohnzimmer schalten(durch Telegram), funktioniert das nicht mehr. Allerdings gibt es dann auch Probleme mit dem benutzer, denke ich

                                          Was das from: angeht, Danke für den Tipp! Allerdings sagt mir mein Bauchgefühl, dass ein Adapter auf den Taster reagiert und dann entsprechend das Licht schaltet, da wäre dann beim manuellen Drücken kein Unterschied, der Trigger würde immer vom Adapter gefeuert.

                                          Bin gespannt, was @maerzpa sagt, das from: wäre schon viel cooler

                                          iobroker läuft unter Docker auf QNAP TS-451+
                                          SkriptRecovery: https://forum.iobroker.net/post/930558

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          151

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe