Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. js- Abfrage von Status an Ausgängen per Telegram

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

js- Abfrage von Status an Ausgängen per Telegram

Geplant Angeheftet Gesperrt Verschoben JavaScript
38 Beiträge 3 Kommentatoren 1.5k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    maerzpa
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antworten Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #4

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

        1 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antworten Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #8

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

                F 1 Antwort Letzte Antwort
                0
                • M maerzpa

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

                  F Offline
                  F Offline
                  fastfoot
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #10

                    @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                    F 2 Antworten Letzte Antwort
                    0
                    • M maerzpa

                      @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                      F Offline
                      F Offline
                      fastfoot
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • M maerzpa

                        @fastfoot Stimmen da die Klammern? Ich bekomme eine Fehlermeldung

                        F Offline
                        F Offline
                        fastfoot
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          maerzpa
                          schrieb am zuletzt editiert von
                          #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 Antworten Letzte Antwort
                          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
                            schrieb am zuletzt editiert von fastfoot
                            #14

                            @maerzpa siehe nächsten Post

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

                            1 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                maerzpa
                                schrieb am zuletzt editiert von
                                #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 Antworten Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • F Offline
                                    F Offline
                                    fastfoot
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      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
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        0
                                        • M Offline
                                          M Offline
                                          maerzpa
                                          schrieb am zuletzt editiert von
                                          #21

                                          Hallo, Dankeschön. Auf die Art (ohne from) funktioniert es super. Mit dem from will es nicht mehr.

                                          Vielen Dank an @pix und an @fastfoot.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          744

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe