FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Knurb am 03 August 2016, 08:14:00

Titel: Notify über STATE auslösen
Beitrag von: Knurb am 03 August 2016, 08:14:00
Hallo zusammen,

eine kurze Frage. Ist es möglich ein Notify über die Änderung von STATE (nicht state als Reading) eines Devices auszulösen? Hintergrund ist, das mein Arduino (Firmata + OWX)als OneWire Busmaster alle paar Tage nicht erreichbar ist und ein Reset des Arduinos das Problem löst.

Wenn alles funktioniert hat mein OWX Device den STATE "Active" sonst "disconnected". Das Reading state bleibt in beiden Fällen "defined". Per Notify würde ich jetzt gerne eine Reset des Arduinos triggern, wenn sich der STATE von "Active" auf "disconnected" ändert. Ist dies möglich?

Danke,

Knurb
Titel: Antw:Notify über STATE auslösen
Beitrag von: justme1968 am 03 August 2016, 08:52:36
nein. internals erzeugen keine events.

du kannst per at regelmäßig nachschauen und dann gegebenfalls resetten.

oder besseren busmaster kaufen :)

gruss
  andre
Titel: Antw:Notify über STATE auslösen
Beitrag von: CoolTux am 03 August 2016, 09:05:31
Würde auch ein userReading mit InternalValue gehen?
Titel: Antw:Notify über STATE auslösen
Beitrag von: Benni am 03 August 2016, 09:06:58
Zitat von: CoolTux am 03 August 2016, 09:05:31
Würde auch ein userReading mit InternalValue gehen?

Das dürfte auch nicht funktionieren, da ein Internal ja kein Event auslöst, kann auch das UserReading nicht aktualisieren.
Titel: Antw:Notify über STATE auslösen
Beitrag von: CoolTux am 03 August 2016, 09:20:38
Mist hast Recht. Ich danke Dir für den Denkanstoß.
Titel: Antw:Notify über STATE auslösen
Beitrag von: Ellert am 03 August 2016, 18:57:49
Zitat von: Knurb am 03 August 2016, 08:14:00
Hallo zusammen,

eine kurze Frage. Ist es möglich ein Notify über die Änderung von STATE (nicht state als Reading) eines Devices auszulösen? Hintergrund ist, das mein Arduino (Firmata + OWX)als OneWire Busmaster alle paar Tage nicht erreichbar ist und ein Reset des Arduinos das Problem löst.

Wenn alles funktioniert hat mein OWX Device den STATE "Active" sonst "disconnected". Das Reading state bleibt in beiden Fällen "defined". Per Notify würde ich jetzt gerne eine Reset des Arduinos triggern, wenn sich der STATE von "Active" auf "disconnected" ändert. Ist dies möglich?

Danke,

Knurb

Mit einem notify funktioniert es nicht, aber mit DOIF. Das Internal wird jedesmal abgefragt, wenn das Gerät ein Event erzeugt.
http://fhem.de/commandref_DE.html#DOIF
Etwa so:
([<Gerätename>:&STATE] eq "disconnected") (set $DEVICE reset)
ungetestet, Syntax ergänzen
Titel: Antw:Notify über STATE auslösen
Beitrag von: justme1968 am 03 August 2016, 18:59:54
ZitatDas Internal wird jedesmal abgefragt, wenn das Gerät ein Event erzeugt.
was ja dann auch nicht mehr geht wenn das ding nichts mehr empfängt und es deshalb auch kein anderes event gibt...

gruss
  andre
Titel: Antw:Notify über STATE auslösen
Beitrag von: Ellert am 03 August 2016, 19:27:46
Zitat von: justme1968 am 03 August 2016, 18:59:54
was ja dann auch nicht mehr geht wenn das ding nichts mehr empfängt und es deshalb auch kein anderes event gibt...

gruss
  andre
Ja, da ist was dran.

Dann geht es vielleicht so:
(["<Gerätename>"]) (set $DEVICE reset)

Attribute
wait <Etwas mehr als die maximale Zeit zwischen den Geräteereignissen>
do resetwait


Solange es rechtzeitig ein Event gibt wird der Wait-Timer zurück gesetzt, andernfalls wird der Befehl ausgeführt.
Titel: Antw:Notify über STATE auslösen
Beitrag von: justme1968 am 03 August 2016, 19:28:35
oder wie oben vorgeschlagen ein einfaches altmodisches at :)
Titel: Antw:Notify über STATE auslösen
Beitrag von: Ellert am 03 August 2016, 19:32:55
Das wäre dann kein DOIF ;)
Titel: Antw:Notify über STATE auslösen
Beitrag von: justme1968 am 03 August 2016, 19:33:40
eben :)
Titel: Antw:Notify über STATE auslösen
Beitrag von: Ellert am 03 August 2016, 19:37:51
Das Neue verdient auch eine Chance. :)
Titel: Antw:Notify über STATE auslösen
Beitrag von: Knurb am 03 August 2016, 21:45:31
Vielen Dank für die Infos,

Habe mir schon gedacht, dass das nicht so einfach geht.
Aber über einem WD sollte das doch auch klappen. Die Sensoren werden ja alle x Minuten abgefragt, wenn dann kein Wert eintrudelt löst der WD aus.

Knurb
Titel: Antw:Notify über STATE auslösen
Beitrag von: Knurb am 05 August 2016, 08:20:25
So, als kleines Update.

Mit einem WD klappt die Sache in meinem Fall prima. Wenn der Bus nicht mindestens jede Minute einmal einen Wert vom Sensor "T_Sensor1" (Abfrageintervall 30 Sekunden) bekommt, dann wird der Arduino über den RPI mittels Relais resettet.


T_Sensor1:.* 00:01:00 T_Sensor1:.* set Arduino_reset on-for-timer 2


Danke an alle.

Knurb