Notify über STATE auslösen

Begonnen von Knurb, 03 August 2016, 08:14:00

Vorheriges Thema - Nächstes Thema

Knurb

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

justme1968

nein. internals erzeugen keine events.

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

oder besseren busmaster kaufen :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

Würde auch ein userReading mit InternalValue gehen?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Benni

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.

CoolTux

Mist hast Recht. Ich danke Dir für den Denkanstoß.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Ellert

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

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Ellert

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.

justme1968

oder wie oben vorgeschlagen ein einfaches altmodisches at :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Ellert


justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Ellert

Das Neue verdient auch eine Chance. :)

Knurb

#12
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

Knurb

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