PRESENCE Modul bei bestimmter Aktion nur einschalten

Begonnen von Cruiser79, 18 November 2014, 23:21:32

Vorheriges Thema - Nächstes Thema

Cruiser79

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.
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

Markus Bloch

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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Cruiser79

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.
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

Cruiser79

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?
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

Markus Bloch

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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Cruiser79

Hallo Markus,

perfekt, vielen Dank, dann warte ich auf morgen.
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

bmaehr

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.