Spezielle Frage zum Triggern notify/watchdog

Begonnen von RitterSport, 26 Mai 2015, 23:08:27

Vorheriges Thema - Nächstes Thema

RitterSport

Eine etwas ungewöhnliche Fragestellung:

Ein 1-Wire Device wird kontinuierlich abgefragt, und folgende dummy/notify/watchdog Kombination geht NICHT:

define TestSensor01 OWDevice 28.FC1674060000 1
attr TestSensor01 IODev Haus34OWServer
attr TestSensor01 model DS18B20
attr TestSensor01 nonblocking 1

define TestSensor01Watchdog watchdog TestSensor01:temperature:.* 00:00:02 SAME { fhem ("set TestDummy OFFEN") ;; fhem("setstate TestSensor01Watchdog defined")}

define TestSensor01Anwesenheit notify TestSensor01:temperature:.* { fhem ("set TestDummy ZU")}

define TestDummy dummy
attr TestDummy setList OFFEN ZU


Das oben geht im Zusammenspiel mit LaCrosse Sensoren sehr gut.Wenn der Sensor außer Reichweite ist (da Auto weg), kann ich das mit FHEM mitbekommen.
Das Problem hier ist, das wenn ich den Sensor "mechanisch" per Reed abklemme, aber immer noch ein kontinuierliche Event und somit ein Reading erzeugt wird.

Angeklemmt:temperature    23.795  2015-05-26 22:59:28
Abgeklemmt:temperature                2015-05-26 22:59:38

Im Eventmonitor sieht es abgeklemmt so aus:
...
2015-05-26 23:01:32 dummy TestDummy ZU
2015-05-26 23:01:32 OWDevice TestSensor01 temperature:
2015-05-26 23:01:33 dummy TestDummy ZU
2015-05-26 23:01:33 OWDevice TestSensor01 temperature:
2015-05-26 23:01:34 dummy TestDummy ZU
...

Auf was kann ich den Regexp stellen ? Auf "keine Zahl" gibt es nicht, was könnte man dort konstruieren?
DS2401 gehen in der Kombination mit den genutzten .pm Dateien nicht.

Vielen Dank für Ideen....

rudolfkoenig

Vlt. auf TestSensor01:temperature:..* pruefen?
Verstehe das Problem nicht wirklich, kannst du bitte erzaehlen, was nach welcher Eventfolge passieren soll?

Phill

#2
ZitatAuf "keine Zahl" gibt es nicht
echt nicht? Vielleicht so? Habs nicht getestet.

TestSensor01:temperature:.[^0-9].*
Kein 0-9 als erstes Zeichen
oder
TestSensor01:temperature:.$
Zeilenende
Mit dem Punkt jeweils hinter dem Doppelpunkt bin ich mir nicht sicher!

Aber so ganz schnallen was du meinst tu ich auch nicht.

@rudolfkoenig
ZitatVlt. auf TestSensor01:temperature:..* pruefen?
Das war wohl etwas früh heute morgen?  ;)
.* oder ..* macht doch keinen Unterschied.

Gruß
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

igami

Zitat von: Phill am 27 Mai 2015, 08:29:18
.* oder ..* macht doch keinen Unterschied.
. prüft auf genau ein beliebiges Zeichen .* auf nichts bis alles, bei .* ist ein leerer String möglich bei ..* muss mindestens ein Zeichen im String stehen.
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

RitterSport

#4
Ich möchte die DS18 als Kontakt missbrauchen.
Wenn sie eine Temperatur senden, dann einen Dummy schalten oder was auch immer.
Wenn sie keine Temperatur mehr senden nach 2 sek. , dann eben was auslösen etc.

Sobald ich das attr. event-on-change-reading verwende, funktioniert es nicht, da die Temperaur oft genug gleich bleibtt
Allerdings gibt es auch ein Event, wenn die DS18 nicht am Bus sind und zwar ein Event mit leerem String. Dabei löst das Notify mit .* dennoch aus.
Jetzt suche ich die Syntax um das zu verhindern.

Bei ..* löst das Notify dennoch aus, ein .[0-9].* hilft hier aber schonmal.
Nur der Watchdog löst dabei nicht aus.

rudolfkoenig

Vermutlich gibt es nach temperature: immer ein Leerzeichen, der Regexp, der leere Werte nicht erfassen soll muesste dann TestSensor01:temperature:...* sein. Leere Werte kann man mit TestSensor01:temperature:. einfangen, da die Pruefung in notify/watchdog implizit ^ und $ hinzufuegt.

RitterSport

Perfekt! Danke an die Hilfe.

Notify mitTestSensor01:temperature:.[0-9].* verhindert das dauerhafte Auslösen, solange ich nicht -Grade im Haus bekomme.

Der Watchdog brauchteTestSensor01:temperature:...* 00:00:02 SAME