FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Cruiser79 am 18 November 2014, 23:21:32

Titel: PRESENCE Modul bei bestimmter Aktion nur einschalten
Beitrag von: Cruiser79 am 18 November 2014, 23:21:32
Ich habe einen Router/Drucker Kombi an eine Funksteckdose geschaltet. Wenn ich diese einschalte, fährt der Router hoch und verbindet sich mit dem WLAN, sodass der Drucker dann bereit ist. Die Abfrage, ob der Router schon online ist und somit druckbereit, habe ich mit einem PRESENCE Modul gemacht. Dieses "sucht" aber nun natürlich rund um die Uhr, was unnötig ist. Wie kann ich aber ein
define Drucker PRESENCE function {RemoteFritzBoxWeb("Printer")} 60 120
attr Drucker event-on-change-reading state
attr Drucker group Anwesendsteuerung
attr Drucker room Anwesendheit

quasi an- und ausschalten und auf mein
define Zimmer_Drucker FHEMduino_PT2262 xxxxx
attr Zimmer_Drucker IODev FHEMduino_USB
attr Zimmer_Drucker room Steckdosen

auf den state reagieren?
Habe im Forum im Zusammenhang mit PRESENCE bis jetzt immer nur die anderen Richtung gefunden: Wenn Anwesend, mache etwas.
Titel: Antw:PRESENCE Modul bei bestimmter Aktion nur einschalten
Beitrag von: Markus Bloch am 19 November 2014, 00:31:21
mit folgenden notifys
define Drucker_an notify Zimmer_Drucker:on attr Drucker disable 0
define Drucker_aus notify Zimmer_Drucker:off attr Drucker disable 1


Diese schalten das disable Attribut jeweils an bzw. aus.

Gruß
Markus
Titel: Antw:PRESENCE Modul bei bestimmter Aktion nur einschalten
Beitrag von: Cruiser79 am 20 November 2014, 13:42:53
Auf dem PRESENCE Modul habe ich natürlich vergessen nach entsprechenden Attributen zu suchen. Danke dafür, Markus, es klappt.
Sogar jetzt zu gut, so dass, wenn die Steckdose aus geht, die Anwesendheitserkennung nicht mehr arbeitet und den Drucker auf "offline" setzt. Da muss ich wohl noch eine Verzögerung einbauen. Habe so etwas in der Art irgendwo im Forum schon mal gesehen gehabt. Werde mich mal auf die Suche begeben.
Titel: Antw:PRESENCE Modul bei bestimmter Aktion nur einschalten
Beitrag von: Cruiser79 am 06 Januar 2015, 21:47:58
Die Verzögerung des Ausschaltens meiner PRESENCE Funktion habe ich hinbekommen.
define Drucker PRESENCE function {RemoteFritzBoxWeb("Printer")} 10 10
attr Drucker disable 1
attr Drucker event-on-change-reading state
attr Drucker group Anwesendsteuerung
attr Drucker room Anwesendheit

define Drucker_an notify Zimmer_Drucker:on attr Drucker disable 0
define Drucker_aus watchdog Zimmer_Drucker:off 00:15 Zimmer_Drucker:on attr Drucker disable 1
attr Drucker_aus regexp1WontReactivate 1
attr Drucker_aus room Anwesendheit

Leider habe ich nun das nächste Problem: Wenn das define "Drucker" disabled ist, wird der State ebenfalls "disabled". Das ist insofern unschön, da dadurch der eigentlich letzte State gelöscht wird. Kann ich dieses Probem irgendwie umgehen, so das ich immer meinen letzten State noch vorrätig habe?
Titel: Antw:PRESENCE Modul bei bestimmter Aktion nur einschalten
Beitrag von: Markus Bloch am 09 Januar 2015, 17:17:16
Hallo Cruiser79,

ab morgen gibt es via update eine neue Version, wo ein zusätzliches Reading "presence" geschrieben wird. Dieses enthält den aktuell bekannten Anwesenheitsstatus des Gerätes. Dieses Reading kann nur "absent" oder "present" enthalten.

Wenn du also deine Definition disabled hast, kannst du aus diesem Reading den letzten Status ermitteln.

Viele Grüße

Markus
Titel: Antw:PRESENCE Modul bei bestimmter Aktion nur einschalten
Beitrag von: Cruiser79 am 09 Januar 2015, 17:43:32
Hallo Markus,

perfekt, vielen Dank, dann warte ich auf morgen.
Titel: Antw:PRESENCE Modul bei bestimmter Aktion nur einschalten
Beitrag von: bmaehr am 04 April 2015, 17:27:57
Ich habe die Implementierung noch etwas erweitert (und dadurch hoffentlich nicht die ursprüngliche Anforderung gestört): Das presence Feld wird nur gesetzt, wenn es sich tatsächlich ändert. Dann sieht man am Änderungszeitpunkt wann sich der Status tatsächlich geändert hat.