Statusüberprüfung der Device die über MQTT kommunizieren mit rückmeldung

Begonnen von Gear, 29 Mai 2018, 20:42:16

Vorheriges Thema - Nächstes Thema

Gear

Guten Abend Zusammen,

ich hoffe der Titel verwirrt nicht, hab lange überlegt, wie ich ihn nennen soll.
Also ich habe ein MQTT_Device in dem ich den Status der bekannten Geräte abfrage.

Internals:
   IODev      mqtt
   NAME       MQTT.Devices.ConnectState
   NR         80
   STATE      ID001: online<br>ID002: online<br>ID003: offline<br>ID007: online<br>ID008: offline<br>ID009: offline<br>ID010: StateID010<br>
   TYPE       MQTT_DEVICE
   READINGS:
     2018-05-29 17:58:37   StateID001      online
     2018-05-29 18:17:34   StateID002      online
     2018-05-29 17:58:37   StateID003      Connection Lost
     2018-05-29 17:58:37   StateID007      online
     2018-05-29 17:58:37   StateID008      offline
     2018-05-29 20:28:52   StateID009      Connection Lost
     2018-05-29 20:28:52   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     /SH/W/BU/Deckenlicht/tele/LWT
     /SH/W/WZ/Schalter/tele/LWT
     /HA-MCU-ID003/status/LWT
     /SH/W/WZ/Couchtischlampe/tele/LWT
     /SH/W/SZ/Schalter/tele/LWT
     /HA-MCU-ID009/status/LWT
     /HA-MCU-ID010/status/LWT
   subscribeExpr:
     ^\/SH\/W\/BU\/Deckenlicht\/tele\/LWT$
     ^\/SH\/W\/WZ\/Schalter\/tele\/LWT$
     ^\/HA-MCU-ID003\/status\/LWT$
     ^\/SH\/W\/WZ\/Couchtischlampe\/tele\/LWT$
     ^\/SH\/W\/SZ\/Schalter\/tele\/LWT$
     ^\/HA-MCU-ID009\/status\/LWT$
     ^\/HA-MCU-ID010\/status\/LWT$
   subscribeQos:
     /HA-MCU-ID003/status/LWT 0
     /HA-MCU-ID009/status/LWT 0
     /HA-MCU-ID010/status/LWT 0
     /SH/W/BU/Deckenlicht/tele/LWT 0
     /SH/W/SZ/Schalter/tele/LWT 0
     /SH/W/WZ/Couchtischlampe/tele/LWT 0
     /SH/W/WZ/Schalter/tele/LWT 0
   subscribeReadings:
     /HA-MCU-ID003/status/LWT:
       cmd       
       name       StateID003
     /HA-MCU-ID009/status/LWT:
       cmd       
       name       StateID009
     /HA-MCU-ID010/status/LWT:
       cmd       
       name       StateID010
     /SH/W/BU/Deckenlicht/tele/LWT:
       cmd       
       name       StateID001
     /SH/W/SZ/Schalter/tele/LWT:
       cmd       
       name       StateID008
     /SH/W/WZ/Couchtischlampe/tele/LWT:
       cmd       
       name       StateID007
     /SH/W/WZ/Schalter/tele/LWT:
       cmd       
       name       StateID002
Attributes:
   DbLogExclude .*
   IODev      mqtt
   eventMap   /Connection Lost:offline/Connected:online/
   room       15 Devices
   stateFormat ID001: StateID001<br>ID002: StateID002<br>ID003: StateID003<br>ID007: StateID007<br>ID008: StateID008<br>ID009: StateID009<br>ID010: StateID010<br>
   subscribeReading_StateID001 /SH/W/BU/Deckenlicht/tele/LWT
   subscribeReading_StateID002 /SH/W/WZ/Schalter/tele/LWT
   subscribeReading_StateID003 /HA-MCU-ID003/status/LWT
   subscribeReading_StateID007 /SH/W/WZ/Couchtischlampe/tele/LWT
   subscribeReading_StateID008 /SH/W/SZ/Schalter/tele/LWT
   subscribeReading_StateID009 /HA-MCU-ID009/status/LWT
   subscribeReading_StateID010 /HA-MCU-ID010/status/LWT


Das funktioniert nun wunderbar, jedoch würde ich nicht gerne "offline" drin stehen haben sondern, z.B. "offline seit (Datum & Uhrzeit des letzten Readings)".
Ich weiß, dass ich via "ReadingsTimestamp()" das Datum aus dem Readings bekomme, jedoch wird diese List immer länger werden und ich weiß nicht wie ich das am besten machen kann.

Ich hoffe es kann mir jemand helfen!
Danke und beste Grüße
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <