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. Verschwinden von MQTT Geräten erkennen und melden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    932

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Verschwinden von MQTT Geräten erkennen und melden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
16 Beiträge 6 Kommentatoren 448 Aufrufe 3 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.
  • MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von MartinP
    #1

    Re: Servicemeldungen per Mail?

    Mein Problem ist, dass ich ein direkt in ioBroker über den integrierten client/broker eingebundenes MQTT-Gerät habe, was regelmäßig aus dem WLAN fliegt, und sich auch nicht mehr einbucht.

    Das Verschwinden sollte ioBroker erkennen und eine entsprechende Mail schicken.

    Würde als Grundlage die Skripte aus dem verlinkten Thread benutzen.

    Gibt es eine Methode, das Verschwinden von MQTT-Geräten so zu detektieren, dass ein Auslösen der Mail getriggert werden kann?

    Ich habe den Code des MQTT-Gerätes selber geschrieben, und müsste mir ggfs. dann einen Überwachungsdatenpunkt ausdenken ...

    z. B. einen vom MQTT-Gerät beschriebenen Datenpunkt, der die Uptime in Sekunden hochzählt. ioBroker prüft, und wenn die Uptime nicht mehr anwächst -> Alarmmail...

    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
    Linux pve 6.8.12-16-pve
    6 GByte RAM für den Container
    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
    Remote-Access über Wireguard der Fritzbox

    G Marc BergM 2 Antworten Letzte Antwort
    0
    • MartinPM MartinP

      Re: Servicemeldungen per Mail?

      Mein Problem ist, dass ich ein direkt in ioBroker über den integrierten client/broker eingebundenes MQTT-Gerät habe, was regelmäßig aus dem WLAN fliegt, und sich auch nicht mehr einbucht.

      Das Verschwinden sollte ioBroker erkennen und eine entsprechende Mail schicken.

      Würde als Grundlage die Skripte aus dem verlinkten Thread benutzen.

      Gibt es eine Methode, das Verschwinden von MQTT-Geräten so zu detektieren, dass ein Auslösen der Mail getriggert werden kann?

      Ich habe den Code des MQTT-Gerätes selber geschrieben, und müsste mir ggfs. dann einen Überwachungsdatenpunkt ausdenken ...

      z. B. einen vom MQTT-Gerät beschriebenen Datenpunkt, der die Uptime in Sekunden hochzählt. ioBroker prüft, und wenn die Uptime nicht mehr anwächst -> Alarmmail...

      G Offline
      G Offline
      guergen
      schrieb am zuletzt editiert von
      #2

      @martinp Frag das GErät doch nach "connected" oder "is online" ab und verarbeite das in IOB mittels eines Timers: Wenn der Client nicht mehr online ist muss die Zeit ablaufen und dann sendest Du Dir eine Nachricht

      MartinPM 1 Antwort Letzte Antwort
      0
      • G guergen

        @martinp Frag das GErät doch nach "connected" oder "is online" ab und verarbeite das in IOB mittels eines Timers: Wenn der Client nicht mehr online ist muss die Zeit ablaufen und dann sendest Du Dir eine Nachricht

        MartinPM Online
        MartinPM Online
        MartinP
        schrieb am zuletzt editiert von MartinP
        #3

        @guergen Falls es die Möglichkeit der Abfrage von "connected" bzw. "is online" gibt, wäre das die naheliegenste Lösung ...

        Das hier habe ich schon mal mit den Stichworten von Dir gefunden:
        https://stackoverflow.com/questions/36093078/mqtt-is-there-a-way-to-check-if-the-client-is-still-connected

        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
        Linux pve 6.8.12-16-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
        Remote-Access über Wireguard der Fritzbox

        1 Antwort Letzte Antwort
        0
        • MartinPM MartinP

          Re: Servicemeldungen per Mail?

          Mein Problem ist, dass ich ein direkt in ioBroker über den integrierten client/broker eingebundenes MQTT-Gerät habe, was regelmäßig aus dem WLAN fliegt, und sich auch nicht mehr einbucht.

          Das Verschwinden sollte ioBroker erkennen und eine entsprechende Mail schicken.

          Würde als Grundlage die Skripte aus dem verlinkten Thread benutzen.

          Gibt es eine Methode, das Verschwinden von MQTT-Geräten so zu detektieren, dass ein Auslösen der Mail getriggert werden kann?

          Ich habe den Code des MQTT-Gerätes selber geschrieben, und müsste mir ggfs. dann einen Überwachungsdatenpunkt ausdenken ...

          z. B. einen vom MQTT-Gerät beschriebenen Datenpunkt, der die Uptime in Sekunden hochzählt. ioBroker prüft, und wenn die Uptime nicht mehr anwächst -> Alarmmail...

          Marc BergM Offline
          Marc BergM Offline
          Marc Berg
          Most Active
          schrieb am zuletzt editiert von Marc Berg
          #4

          @martinp
          Ich verstehe nicht, warum du den Umweg über MQTT gehen willst. Wenn, wie du schreibst, das Gerät aus dem WLAN fliegt, wird es wohl auch nicht mehr per Ping erreichbar sein. Und dafür gibt es ja Adapter, die das erkennen und melden.

          Edit: Ansonsten gibt es für deinen Anwendungsfall das MQTT Feature "LWT" (Last will and testament). Das muss aber vom Broker und Client unterstützt werden. Dann wird beim unerwarteten Disconnect vom Broker eine Nachricht gesendet.

          NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

          Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

          Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

          1 Antwort Letzte Antwort
          0
          • T Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von ticaki
            #5

            Ich checke meine Datenpunkte auf Veränderung... Wenn die Temperatur meines Boilers sich nicht alle 45 Minuten aktualisiert, gibts ne Telegramnachricht. Wichtiger Sensor, der Ausfall der anderen ist zwar nervig, aber da muß ich wenigstens nicht kalt duschen. :)

            hm-rpc mit dem aktuellen Sentrybug bleibt "connected" obwohl keine Daten mehr reinkommen.

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            MartinPM 1 Antwort Letzte Antwort
            0
            • T ticaki

              Ich checke meine Datenpunkte auf Veränderung... Wenn die Temperatur meines Boilers sich nicht alle 45 Minuten aktualisiert, gibts ne Telegramnachricht. Wichtiger Sensor, der Ausfall der anderen ist zwar nervig, aber da muß ich wenigstens nicht kalt duschen. :)

              hm-rpc mit dem aktuellen Sentrybug bleibt "connected" obwohl keine Daten mehr reinkommen.

              MartinPM Online
              MartinPM Online
              MartinP
              schrieb am zuletzt editiert von MartinP
              #6

              @ticaki Danke für den Tipp.

              Habe den ersten Schritt getan. Es scheint leider so zu sein, dass man direkt am MQTT-Datenpunkt-Baum des Geräts keinen User-Datenpunkt erzeugen kann ( "+" ist ausgegraut)

              Habe den Punkt "ArbeitszimmerThermostatAlive" nun unter Userdata erzeugt ...

              Die Raumtemperatur wird, wenn alles funktioniert, alle 10 Sekunden in den entsprechenden MQTT-Datenpunkt geschrieben. Das untenstehende Blockly setzt "ArbeitszimmerThermostatAlive" auf false, wenn 30 Sekunden keine Aktualisierung erfolgt...

              aa244bf3-60bb-4840-8b11-e4a4c5676699-grafik.png

              Der Userdata Datenpunkt "ArbeitszimmerThermostatAlive" soll dann wiederum weitere Aktionen auslösen.

              Wechsel auf "false" -> Alarmierung (Telegram oder Mail)
              Wechsel auf "true" -> Je nach aktueller Uhrzeit Setzen der Solltemperatur auf Solltemperatur-Tag bzw -Nacht....

              Anmerkung: Ich muss wahrscheinlich dringend an der Benennung von Elementen arbeiten. Die Benennungen sind ggfs. so generisch, dass es schwierig werden könnte nach dem Muster meines Arbeitszimmer-Thermostats noch weitere Thermostaten zu bauen und in ioBroker zu integrieren ...

              Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
              Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
              Linux pve 6.8.12-16-pve
              6 GByte RAM für den Container
              Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
              Remote-Access über Wireguard der Fritzbox

              mickymM 1 Antwort Letzte Antwort
              0
              • MartinPM MartinP

                @ticaki Danke für den Tipp.

                Habe den ersten Schritt getan. Es scheint leider so zu sein, dass man direkt am MQTT-Datenpunkt-Baum des Geräts keinen User-Datenpunkt erzeugen kann ( "+" ist ausgegraut)

                Habe den Punkt "ArbeitszimmerThermostatAlive" nun unter Userdata erzeugt ...

                Die Raumtemperatur wird, wenn alles funktioniert, alle 10 Sekunden in den entsprechenden MQTT-Datenpunkt geschrieben. Das untenstehende Blockly setzt "ArbeitszimmerThermostatAlive" auf false, wenn 30 Sekunden keine Aktualisierung erfolgt...

                aa244bf3-60bb-4840-8b11-e4a4c5676699-grafik.png

                Der Userdata Datenpunkt "ArbeitszimmerThermostatAlive" soll dann wiederum weitere Aktionen auslösen.

                Wechsel auf "false" -> Alarmierung (Telegram oder Mail)
                Wechsel auf "true" -> Je nach aktueller Uhrzeit Setzen der Solltemperatur auf Solltemperatur-Tag bzw -Nacht....

                Anmerkung: Ich muss wahrscheinlich dringend an der Benennung von Elementen arbeiten. Die Benennungen sind ggfs. so generisch, dass es schwierig werden könnte nach dem Muster meines Arbeitszimmer-Thermostats noch weitere Thermostaten zu bauen und in ioBroker zu integrieren ...

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #7

                @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                Habe den ersten Schritt getan. Es scheint leider so zu sein, dass man direkt am MQTT-Datenpunkt-Baum des Geräts keinen User-Datenpunkt erzeugen kann ( "+" ist ausgegraut)

                Kann man schon, dann gehst Du so lange noch oben bis das + wieder auftaucht und gibst den Pfad von da mit einem Punkt an. Das ist leider so ein Mist vom Admin 5 - dass der immer meint bestimmen zu können, wo etwas erstellt werden darf und man mqtt von diesen Regeln nicht ausnimmt.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                MartinPM 1 Antwort Letzte Antwort
                1
                • mickymM mickym

                  @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                  Habe den ersten Schritt getan. Es scheint leider so zu sein, dass man direkt am MQTT-Datenpunkt-Baum des Geräts keinen User-Datenpunkt erzeugen kann ( "+" ist ausgegraut)

                  Kann man schon, dann gehst Du so lange noch oben bis das + wieder auftaucht und gibst den Pfad von da mit einem Punkt an. Das ist leider so ein Mist vom Admin 5 - dass der immer meint bestimmen zu können, wo etwas erstellt werden darf und man mqtt von diesen Regeln nicht ausnimmt.

                  MartinPM Online
                  MartinPM Online
                  MartinP
                  schrieb am zuletzt editiert von
                  #8

                  @mickym Habe da gerade mal ein wenig herumgeklickt: Alle Knoten inclusive dem MQTT-Knoten selber haben ein ausgegrautes "+".

                  Nur unter "0_userdata.0" und "alias.0" kann ich etwas anlegen...

                  "alias" klingt ja ggfs. recht vielversprechend - vielleicht mal etwas einlesen in die Philosopie dahinter ...

                  Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                  Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                  Linux pve 6.8.12-16-pve
                  6 GByte RAM für den Container
                  Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                  Remote-Access über Wireguard der Fritzbox

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • MartinPM MartinP

                    @mickym Habe da gerade mal ein wenig herumgeklickt: Alle Knoten inclusive dem MQTT-Knoten selber haben ein ausgegrautes "+".

                    Nur unter "0_userdata.0" und "alias.0" kann ich etwas anlegen...

                    "alias" klingt ja ggfs. recht vielversprechend - vielleicht mal etwas einlesen in die Philosopie dahinter ...

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @martinp Du musst den Expertenmodus anmachen.

                    8a8fed4c-ec9a-40b2-8012-8696d1d8723c-image.png

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    MartinPM 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @martinp Du musst den Expertenmodus anmachen.

                      8a8fed4c-ec9a-40b2-8012-8696d1d8723c-image.png

                      MartinPM Online
                      MartinPM Online
                      MartinP
                      schrieb am zuletzt editiert von
                      #10

                      @mickym Okay, der schwarze Indianer ist der Expertenmodus, wieder was gelernt ;-)

                      Dann kann ich sogar direkt im Thermostat-Knoten neue Datenpunkte erzeugen...

                      02ea3371-2ace-40ba-a4a6-2296120d6f5c-grafik.png

                      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                      Linux pve 6.8.12-16-pve
                      6 GByte RAM für den Container
                      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                      Remote-Access über Wireguard der Fritzbox

                      MartinPM Ro75R 2 Antworten Letzte Antwort
                      0
                      • MartinPM MartinP

                        @mickym Okay, der schwarze Indianer ist der Expertenmodus, wieder was gelernt ;-)

                        Dann kann ich sogar direkt im Thermostat-Knoten neue Datenpunkte erzeugen...

                        02ea3371-2ace-40ba-a4a6-2296120d6f5c-grafik.png

                        MartinPM Online
                        MartinPM Online
                        MartinP
                        schrieb am zuletzt editiert von
                        #11

                        Noch eine Frage, die mit dem Thema zu tun hat: Gibt es in Blockly so eine Art "Templates"?

                        Wenn ich das Blockly-Skript, was den "IsAlive" Zustand in den MQTT-Pfad eines Gerätes in einen angelegten Knoten unterhalb dieses Pfades schreiben will nicht durch COPY&Paste erzeugen möchte ...

                        Es gäbe z. B.
                        system.adapter.mqtt.0.thermostat
                        system.adapter.mqtt.0.thermostat_2
                        system.adapter.mqtt.0.thermostat_3
                        system.adapter.mqtt.0.thermostat_4

                        wenn jeweils die raumtemperatur für die timeout-zeit nicht aktualisiert wird, soll der darunterliegende IsAlive Knoten auf false gesetzt werden.

                        Man kann natürlich zuerst das Skript für ...thermostat basteln, und dann durch copy&paste des ganzes skripts kopien erstellen in denen man jeweils thermostat durch thermostat_2 etc. ersetzt, aber das heißt, man hat bei jeder Änderung vier Stellen, an denen man anfassen muss, und das ist mühselig und fehleranfällig ...

                        Wahrscheinlich ist aber Blockly dazu nicht vorgesehen, und man wird auf Lösungen per Javascript gehen müssen ...

                        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                        Linux pve 6.8.12-16-pve
                        6 GByte RAM für den Container
                        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                        Remote-Access über Wireguard der Fritzbox

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • MartinPM MartinP

                          @mickym Okay, der schwarze Indianer ist der Expertenmodus, wieder was gelernt ;-)

                          Dann kann ich sogar direkt im Thermostat-Knoten neue Datenpunkte erzeugen...

                          02ea3371-2ace-40ba-a4a6-2296120d6f5c-grafik.png

                          Ro75R Offline
                          Ro75R Offline
                          Ro75
                          schrieb am zuletzt editiert von
                          #12

                          @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                          Dann kann ich sogar direkt im Thermostat-Knoten neue Datenpunkte erzeugen...

                          Keine gute Idee. Diese Daten sind "vergänglich". Für eigene Datenpunkte inklusive Verzeichnisse bitte "0_userdata.0." verwenden.

                          Ro75.

                          SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                          mickymM 1 Antwort Letzte Antwort
                          0
                          • MartinPM MartinP

                            Noch eine Frage, die mit dem Thema zu tun hat: Gibt es in Blockly so eine Art "Templates"?

                            Wenn ich das Blockly-Skript, was den "IsAlive" Zustand in den MQTT-Pfad eines Gerätes in einen angelegten Knoten unterhalb dieses Pfades schreiben will nicht durch COPY&Paste erzeugen möchte ...

                            Es gäbe z. B.
                            system.adapter.mqtt.0.thermostat
                            system.adapter.mqtt.0.thermostat_2
                            system.adapter.mqtt.0.thermostat_3
                            system.adapter.mqtt.0.thermostat_4

                            wenn jeweils die raumtemperatur für die timeout-zeit nicht aktualisiert wird, soll der darunterliegende IsAlive Knoten auf false gesetzt werden.

                            Man kann natürlich zuerst das Skript für ...thermostat basteln, und dann durch copy&paste des ganzes skripts kopien erstellen in denen man jeweils thermostat durch thermostat_2 etc. ersetzt, aber das heißt, man hat bei jeder Änderung vier Stellen, an denen man anfassen muss, und das ist mühselig und fehleranfällig ...

                            Wahrscheinlich ist aber Blockly dazu nicht vorgesehen, und man wird auf Lösungen per Javascript gehen müssen ...

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von mickym
                            #13

                            @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                            Wenn ich das Blockly-Skript, was den "IsAlive" Zustand in den MQTT-Pfad eines Gerätes in einen angelegten Knoten unterhalb dieses Pfades schreiben will nicht durch COPY&Paste erzeugen möchte ...

                            Du kannst statt die Datenpunkte manuell anzulegen auch über das SendTo Puzzleteil an den Mqtt-Adapter die Werte publishen. Alle veröffentlichen topics werden dann automatisch als Datenpunkte angelegt.

                            7b4570d5-09d8-45d9-b39c-3a3c66753ad5-image.png

                            Statt fixer Werte kannst du natürlich auch Variablen verwenden etc.

                            <xml xmlns="https://developers.google.com/blockly/xml">
                             <block type="sendto_custom" id="ls8@a?b_FZd{/PwZ%,li" x="-537" y="38">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                               <field name="INSTANCE">mqtt.1</field>
                               <field name="COMMAND">sendMessage2Client</field>
                               <field name="LOG"></field>
                               <field name="WITH_STATEMENT">FALSE</field>
                               <value name="ARG0">
                                 <shadow type="text" id="$,O^*f*}($?[H8_(d*+U">
                                   <field name="TEXT">thermostat1/isAlive</field>
                                 </shadow>
                               </value>
                               <value name="ARG1">
                                 <shadow type="text" id="kYzE4%b}Px*fTaC#_m53">
                                   <field name="TEXT">Meine Nachricht</field>
                                 </shadow>
                                 <block type="logic_boolean" id="#^)Qo*Dc+?;*v.HB%8Q$">
                                   <field name="BOOL">TRUE</field>
                                 </block>
                               </value>
                             </block>
                            </xml>
                            

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            MartinPM 1 Antwort Letzte Antwort
                            0
                            • Ro75R Ro75

                              @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                              Dann kann ich sogar direkt im Thermostat-Knoten neue Datenpunkte erzeugen...

                              Keine gute Idee. Diese Daten sind "vergänglich". Für eigene Datenpunkte inklusive Verzeichnisse bitte "0_userdata.0." verwenden.

                              Ro75.

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von mickym
                              #14

                              @ro75 sagte in Verschwinden von MQTT Geräten erkennen und melden:

                              @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                              Dann kann ich sogar direkt im Thermostat-Knoten neue Datenpunkte erzeugen...

                              Keine gute Idee. Diese Daten sind "vergänglich". Für eigene Datenpunkte inklusive Verzeichnisse bitte "0_userdata.0." verwenden.

                              Ro75.

                              Na ja - im MQTT generell gebe ich Dir Recht, dass sobald alle Subscriber informiert werden sollten, die Daten wieder aufgeräumt werden sollten. Im MQTT-Adapter jedoch nicht - was sogar eigentlich ein Problem darstellt. Deswegen kommt der Adapter auch mit dem retained Flag nicht so klar und alle Daten bleiben eigentlich bis ULTIMO vorhanden, bis sie manuell gelöscht werden. Ansonsten ist ein aber ein MQTT-Broker bei Veröffentlichen von Daten mit retained Flag durchaus ein valider Datenspeicher - das ist aber eher allgemein zu sehen und ist nicht iobroker spezifisch.

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              1 Antwort Letzte Antwort
                              1
                              • mickymM mickym

                                @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                                Wenn ich das Blockly-Skript, was den "IsAlive" Zustand in den MQTT-Pfad eines Gerätes in einen angelegten Knoten unterhalb dieses Pfades schreiben will nicht durch COPY&Paste erzeugen möchte ...

                                Du kannst statt die Datenpunkte manuell anzulegen auch über das SendTo Puzzleteil an den Mqtt-Adapter die Werte publishen. Alle veröffentlichen topics werden dann automatisch als Datenpunkte angelegt.

                                7b4570d5-09d8-45d9-b39c-3a3c66753ad5-image.png

                                Statt fixer Werte kannst du natürlich auch Variablen verwenden etc.

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <block type="sendto_custom" id="ls8@a?b_FZd{/PwZ%,li" x="-537" y="38">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                                   <field name="INSTANCE">mqtt.1</field>
                                   <field name="COMMAND">sendMessage2Client</field>
                                   <field name="LOG"></field>
                                   <field name="WITH_STATEMENT">FALSE</field>
                                   <value name="ARG0">
                                     <shadow type="text" id="$,O^*f*}($?[H8_(d*+U">
                                       <field name="TEXT">thermostat1/isAlive</field>
                                     </shadow>
                                   </value>
                                   <value name="ARG1">
                                     <shadow type="text" id="kYzE4%b}Px*fTaC#_m53">
                                       <field name="TEXT">Meine Nachricht</field>
                                     </shadow>
                                     <block type="logic_boolean" id="#^)Qo*Dc+?;*v.HB%8Q$">
                                       <field name="BOOL">TRUE</field>
                                     </block>
                                   </value>
                                 </block>
                                </xml>
                                

                                MartinPM Online
                                MartinPM Online
                                MartinP
                                schrieb am zuletzt editiert von MartinP
                                #15

                                @mickym said in Verschwinden von MQTT Geräten erkennen und melden:

                                @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                                Wenn ich das Blockly-Skript, was den "IsAlive" Zustand in den MQTT-Pfad eines Gerätes in einen angelegten Knoten unterhalb dieses Pfades schreiben will nicht durch COPY&Paste erzeugen möchte ...

                                Du kannst statt die Datenpunkte manuell anzulegen auch über das SendTo Puzzleteil an den Mqtt-Adapter die Werte publishen. Alle veröffentlichen topics werden dann automatisch als Datenpunkte angelegt.

                                7b4570d5-09d8-45d9-b39c-3a3c66753ad5-image.png

                                Statt fixer Werte kannst du natürlich auch Variablen verwenden etc.

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <block type="sendto_custom" id="ls8@a?b_FZd{/PwZ%,li" x="-537" y="38">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                                   <field name="INSTANCE">mqtt.1</field>
                                   <field name="COMMAND">sendMessage2Client</field>
                                   <field name="LOG"></field>
                                   <field name="WITH_STATEMENT">FALSE</field>
                                   <value name="ARG0">
                                     <shadow type="text" id="$,O^*f*}($?[H8_(d*+U">
                                       <field name="TEXT">thermostat1/isAlive</field>
                                     </shadow>
                                   </value>
                                   <value name="ARG1">
                                     <shadow type="text" id="kYzE4%b}Px*fTaC#_m53">
                                       <field name="TEXT">Meine Nachricht</field>
                                     </shadow>
                                     <block type="logic_boolean" id="#^)Qo*Dc+?;*v.HB%8Q$">
                                       <field name="BOOL">TRUE</field>
                                     </block>
                                   </value>
                                 </block>
                                </xml>
                                

                                Ich meinte das etwas anders - wenn jetzt ein Thermostat dazu kommt, muss man das Blockly Skript aus Deinem Beispiel kopieren, und in der Kopie z. B. "Thermostat1" durch "Thermostat2" ersetzen...
                                Wenn man dann 6 Thermostate hat, und etwas in der Logik des Blockly Skriptes ändert, muss man immer daran denken, auch die entsprechenden Änderungen in den 5 Kopien nachzuziehen....

                                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                                Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                                Linux pve 6.8.12-16-pve
                                6 GByte RAM für den Container
                                Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                                Remote-Access über Wireguard der Fritzbox

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • MartinPM MartinP

                                  @mickym said in Verschwinden von MQTT Geräten erkennen und melden:

                                  @martinp sagte in Verschwinden von MQTT Geräten erkennen und melden:

                                  Wenn ich das Blockly-Skript, was den "IsAlive" Zustand in den MQTT-Pfad eines Gerätes in einen angelegten Knoten unterhalb dieses Pfades schreiben will nicht durch COPY&Paste erzeugen möchte ...

                                  Du kannst statt die Datenpunkte manuell anzulegen auch über das SendTo Puzzleteil an den Mqtt-Adapter die Werte publishen. Alle veröffentlichen topics werden dann automatisch als Datenpunkte angelegt.

                                  7b4570d5-09d8-45d9-b39c-3a3c66753ad5-image.png

                                  Statt fixer Werte kannst du natürlich auch Variablen verwenden etc.

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                   <block type="sendto_custom" id="ls8@a?b_FZd{/PwZ%,li" x="-537" y="38">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                                     <field name="INSTANCE">mqtt.1</field>
                                     <field name="COMMAND">sendMessage2Client</field>
                                     <field name="LOG"></field>
                                     <field name="WITH_STATEMENT">FALSE</field>
                                     <value name="ARG0">
                                       <shadow type="text" id="$,O^*f*}($?[H8_(d*+U">
                                         <field name="TEXT">thermostat1/isAlive</field>
                                       </shadow>
                                     </value>
                                     <value name="ARG1">
                                       <shadow type="text" id="kYzE4%b}Px*fTaC#_m53">
                                         <field name="TEXT">Meine Nachricht</field>
                                       </shadow>
                                       <block type="logic_boolean" id="#^)Qo*Dc+?;*v.HB%8Q$">
                                         <field name="BOOL">TRUE</field>
                                       </block>
                                     </value>
                                   </block>
                                  </xml>
                                  

                                  Ich meinte das etwas anders - wenn jetzt ein Thermostat dazu kommt, muss man das Blockly Skript aus Deinem Beispiel kopieren, und in der Kopie z. B. "Thermostat1" durch "Thermostat2" ersetzen...
                                  Wenn man dann 6 Thermostate hat, und etwas in der Logik des Blockly Skriptes ändert, muss man immer daran denken, auch die entsprechenden Änderungen in den 5 Kopien nachzuziehen....

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #16

                                  @martinp Nein das sagte ich doch, Du kannst Doch das ganze in eine Schleife einbinden und über ein Array durchiterieren.Oder Du triggerst direkt über den Thermostat oder abfragst. Wie gesagt welche Logik zum Abfragen du nimmst oder triggern ist Deine Sache.

                                  Aber so kannst Du einfach eine Liste von Thermostaten erstellen und alle topics erstellem_

                                  af2fba55-1906-4ff1-bcb6-33c41440783a-image.png

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                   <variables>
                                     <variable id="nu$N7|=f+vnO8RVm:cym">Liste_Thermostate</variable>
                                     <variable id="JW8gktT*}~bRUd6MfH#u">Thermostat</variable>
                                   </variables>
                                   <block type="variables_set" id="hK7EI~VB@!#$5jf,=)lr" x="-587" y="-112">
                                     <field name="VAR" id="nu$N7|=f+vnO8RVm:cym">Liste_Thermostate</field>
                                     <value name="VALUE">
                                       <block type="lists_create_with" id="apI:3%H0NG=t+k`}/0LA">
                                         <mutation items="3"></mutation>
                                         <value name="ADD0">
                                           <block type="text" id="p%1gC:]`|DHfy{KP7JQf">
                                             <field name="TEXT">thermostat_1</field>
                                           </block>
                                         </value>
                                         <value name="ADD1">
                                           <block type="text" id="pNnv)I]Eq3==EBw;hK}d">
                                             <field name="TEXT">thermostat_2</field>
                                           </block>
                                         </value>
                                         <value name="ADD2">
                                           <block type="text" id="H{[NPCBKq05V;rK-40,2">
                                             <field name="TEXT">thermostat_3</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="controls_forEach" id="g5T}i9pUy1C0p3vha+5z">
                                         <field name="VAR" id="JW8gktT*}~bRUd6MfH#u">Thermostat</field>
                                         <value name="LIST">
                                           <block type="variables_get" id="xbe)qBW[jl?dmaR.[:Ny">
                                             <field name="VAR" id="nu$N7|=f+vnO8RVm:cym">Liste_Thermostate</field>
                                           </block>
                                         </value>
                                         <statement name="DO">
                                           <block type="sendto_custom" id="ls8@a?b_FZd{/PwZ%,li">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                                             <field name="INSTANCE">mqtt.1</field>
                                             <field name="COMMAND">sendMessage2Client</field>
                                             <field name="LOG"></field>
                                             <field name="WITH_STATEMENT">FALSE</field>
                                             <value name="ARG0">
                                               <shadow type="text" id="$,O^*f*}($?[H8_(d*+U">
                                                 <field name="TEXT">thermostat1/isAlive</field>
                                               </shadow>
                                               <block type="text_join" id="O6E{W{#l(2VcnvqOe|Rl">
                                                 <mutation items="2"></mutation>
                                                 <value name="ADD0">
                                                   <block type="variables_get" id="AzpRo(og/GD94mdngxQF">
                                                     <field name="VAR" id="JW8gktT*}~bRUd6MfH#u">Thermostat</field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="text" id="VB)a`Lf$skQC8CWbgCS_">
                                                     <field name="TEXT">/isAlive</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="ARG1">
                                               <shadow type="text" id="kYzE4%b}Px*fTaC#_m53">
                                                 <field name="TEXT">Meine Nachricht</field>
                                               </shadow>
                                               <block type="logic_boolean" id="#^)Qo*Dc+?;*v.HB%8Q$">
                                                 <field name="BOOL">TRUE</field>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                  </xml>
                                  

                                  das sind aber Basics beim Puzzeln (Geht aber auch mit steuere oder aktualisiere von Datenpunkten). Wie gesagt das sind Basics, dass man identische Codeteile über Schleifen durchläuft. Und wer mich kennt, weiss, dass ich ein anderes Tool bevorzuge - das sogar direkt mit mqtt kommunizieren kann. ;)

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  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

                                  760

                                  Online

                                  32.6k

                                  Benutzer

                                  82.2k

                                  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