[Gelöst] Ohne Script prüfen, ob Device existiert

Begonnen von eiten, 15 Januar 2018, 15:31:36

Vorheriges Thema - Nächstes Thema

eiten

Hallo zusammen,

gibts in FHEM ne Möglichkeit zu prüfen, ob ein Device existiert? Ich habe einen (experimentellen) Aussenklimasensor, der an einem ESP8266 hängt der meistens schläft und alle 5 Minuten die Temperatur, Luftfeuchtigkeit und Batteriespannung sendet. Da ich momentan die Batterie leerlaufen lassen will ich alarmiert werden, sobald der ESP 10 Minuten nichts mehr von sich hat hören lassen. Das geht wunderbar damit:
define aussensensorPruefen notify AussenKlima:temperature:.* {\
fhem("defmod aussenSensorWarnung at +00:10 teleBot message Der Aussensensor hat seit 10 Minuten keine Daten mehr gesendet. Bitte Batterie prüfen!");;\
fhem("attr aussenSensorWarnung room Klima");;\
}


Nun gibts manchmal den Fall, dass der ESP kein Netz bekommt und sich wieder schlafen legt, aber nach 15 Minuten wieder sendet. Da würde ich gerne hinterherreichen, dass nun wieder etwas eingetroffen ist. Dies wollte ich so machen, dass ich prüfe, ob aussenSensorWarnung existiert (dieser wird ja gelöscht, wenn er auslöst). Ich hab's mitdefine aussensensorPruefen notify AussenKlima:temperature:.* { if (!defined($defs("aussenSensorWarnung"))){... probiert, aber das geht nicht, da fhem $defs nicht kennt. Hat jemand eine Idee?

Danke und Gruss, Edi

KernSani

Es gibt das monitoring Modul (https://fhem.de/commandref.html#monitoring) das im Prinzip genau das macht, was du willst... ist aber vielleicht ein bisschen viel für deinen Zweck...

Ansonsten würde mir spontan einfallen die devspec2array Funktion zu nutzen...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

marvin78

Probiere es mal mit

$defs{"aussenSensorWarnung"}

herrmannj

für die Überwachung existiert "watchdog", genau für den beschriebenen Fall.  https://fhem.de/commandref_DE.html#watchdog
Zitat
Nun gibts manchmal den Fall, dass der ESP kein Netz bekommt und sich wieder schlafen legt, aber nach 15 Minuten wieder sendet. Da würde ich gerne hinterherreichen, dass nun wieder etwas eingetroffen ist. Dies wollte ich so machen, dass ich prüfe, ob aussenSensorWarnung existiert (dieser wird ja gelöscht, wenn er auslöst).
Kann man so machen. Man kann aber auch den Intervall auf zb 60min setzen, dann kannst Du sechs Nachrichten verpassen bevor der watchdog auslöst. Batterielaufzeit ist dann x minus 60 min. ...

eiten

Hallo zusammen,

herzlichen Dank, das mit $defs{"aussenSensorWarnung"} hat perfekt geklappt. Monitoring schaut mir ein wenig kompliziert aus, aber interessant. Da werde ich mich auf jeden Fall mal einarbeiten! Und den watchdog kannte ich auch noch nicht. Mal schauen, was sich damit anstellen lässt.

Schönen Abend zusammen,
Gruss, Edi

igami

Monitoring ist im Prinzip auch nur ein aufgebohrter, globaler watchdog für eine Gruppe von Geräten.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

KernSani

Können wir dann auf gelöst setzen, oder? (Subject des ersten Posts ändern und [Gelöst] vorne dran schreiben)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

eiten

Zitat von: KernSani am 15 Januar 2018, 19:41:27
Können wir dann auf gelöst setzen, oder? (Subject des ersten Posts ändern und [Gelöst] vorne dran schreiben)
Aber sicher. Und danke für die Anleitung. Ich habe nach nem Button gesucht  :o ::) :P

DeeSPe

Zitat von: eiten am 15 Januar 2018, 17:47:49
Hallo zusammen,

herzlichen Dank, das mit $defs{"aussenSensorWarnung"} hat perfekt geklappt. Monitoring schaut mir ein wenig kompliziert aus, aber interessant. Da werde ich mich auf jeden Fall mal einarbeiten! Und den watchdog kannte ich auch noch nicht. Mal schauen, was sich damit anstellen lässt.

Schönen Abend zusammen,
Gruss, Edi

Noch einfacher und "sicherer" geht es mit der Funktion:
IsDevice("aussenSensorWarnung")

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe