Keymatic bei Abwesenheit schließen

Begonnen von kasslerks, 12 August 2014, 01:59:25

Vorheriges Thema - Nächstes Thema

kasslerks

Hallo

Ich möchte das sich die Keymatic nach 30 min Abwesenheit automatisch verschließt.

hier mal mein Code define WohnungstuerVerriegeln at +*00:30:00 {fhem ("set FL.Tuerschloss lock") IF (Value("Daniel") eq "off" && "%" ne "unlocked")}

dort bekomme ich aber folgenden fehler im Logfile Unrecognized character \xE2; marked by <-- HERE after {fhem (<-- HERE near column 8 at (eval 75503) line 1.

desweitern wird dies jede halbestunde ausgeführt egal ob ich zuhause bin oder nicht.

Hatte es auch schon  mit einem notify versucht aber da bekomme ich dann den Fehler return value: Unknown command (sleep, try help.

hier einmal der Code
define WohnungstuerVeriegeln notify Daniel:off (sleep 300,set FL.Tuerschloss lock)

ich hoffe mir kann da jemand helfen

chris1284

#1
Zitat von: kasslerks am 12 August 2014, 01:59:25
desweitern wird dies jede halbestunde ausgeführt egal ob ich zuhause bin oder nicht.

das ist der Sinn des at den du mit  at +*00:30:00 definiert hast. du könntest den at disablen (attr WohnungstuerVerriegeln disabled 1)bei Anwesenheit (notify auf dein Daniel-Prsence) und
wenn "daniel" dann wieder abwesend ist den at wieder aktivieren (selbes oder extra notify auf dein Daniel-Prsence, attr WohnungstuerVerriegeln disabled 0).

der Syntaxfehler ist bestimmt das "%"

Hollo

Zitat von: kasslerks am 12 August 2014, 01:59:25
...Ich möchte das sich die Keymatic nach 30 min Abwesenheit automatisch verschließt.

hier mal mein Code define WohnungstuerVerriegeln at +*00:30:00 {fhem ("set FL.Tuerschloss lock") IF (Value("Daniel") eq "off" && "%" ne "unlocked")}...

Ich werfe hier mal als Idee "watchdog" ein. Sinngemäß:
define w_Abwesenheit watchdog Daniel:off 00:30:00 Daniel:.* set FL.Tuerschloss lock ;; trigger w_Abwesenheit .

FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

kasslerks

@chris1284

Ich dachte das würde dann nur aktiv werden wenn "Daniel off" ist. Was genau das "%"  soll kann ich auch nicht sagen habe das bei meintechblog gefunden und nur abgeändert. Aber auch wenn ich es weg lasse bleibt es bei dem fehler.

@Hollo

Die Variante mit dem watchdog hat gekappt. 

Ich danke euch beiden für die Hilfe

bastelwastel

Hallo!

Ich verwende eine etwas abgeänderte Watchdogvariante

"define tuerverriegeln watchdog Tuerueberwachung:closed 00:01:00 Tuerueberwachung:closed set Tuere lock ;; trigger tuerverriegeln ."

Ich habe einen Schalter an der Tür "Tuerueberwachung" und eben die Keymatic "Tuere". Funktioniert, aber halt auch, wenn die Türe noch offen ist. Was mache ich da falsch?

Hollo

Zitat von: bastelwastel am 21 August 2014, 09:26:45
...Funktioniert, aber halt auch, wenn die Türe noch offen ist. Was mache ich da falsch?
WAS funktioniert damit?
Ich verstehe den Sinn darin nicht...
wenn die Tür nach dem Schliessen nicht innerhalb 1 Minute erneut geschlossen wird, wird sie verriegelt !?
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Mitch

Erstmal grundsätzlich: als Anfänger sollte man sich erstmal einlesen und selber schlau machen!!

Ich bin auch Anfänger, aber die meisten meiner Fagen bekomme ich über die Doku (z.B. Commandref) oder Wiki beantwortet.


Dann zu Deinem konkreten Problem. Ich schreibe (überlege) mir immer erstmal in Worten, was ich machen will:

Wenn Daniel 30 Min. weg ist, dann soll die Tür verriegeln, wenn sie nicht schon verriegelt ist

dann suche ich mir den passenden Code dazu:

define TürZuAutomatik watchdog Daniel:off 00:30:00 Daniel:on  {if (ReadingsVal("FL.Tuerschloss", "state", "") ne "lock") {fhem "set FL.Tuerschloss lock" }}

Was macht diese genau?
Erst wird überprüft, ob Daniel off (also weg) ist, wenn dies zutrifft, startet ein Timer mit 30 Minuten. Ist Daniel inzwischen nicht wieder on (zurück), wird der nachfolgende Teil ausgeführt.
Dieser überprüft ertsmal, ob die Tür verrieglet ist, wenn nicht, dann wird der Verriegelbefehl gesendet.

Alle Angaben ohne Gewähr
FHEM im Proxmox Container

Mitch

Zitat von: bastelwastel am 21 August 2014, 09:26:45
Hallo!

Ich verwende eine etwas abgeänderte Watchdogvariante

"define tuerverriegeln watchdog Tuerueberwachung:closed 00:01:00 Tuerueberwachung:closed set Tuere lock ;; trigger tuerverriegeln ."

Ich habe einen Schalter an der Tür "Tuerueberwachung" und eben die Keymatic "Tuere". Funktioniert, aber halt auch, wenn die Türe noch offen ist. Was mache ich da falsch?

Zweite Regex müsste dann ja wohl open heißen und was macht der trigger auf den selben?

define tuerverriegeln watchdog Tuerueberwachung:closed 00:01:00 Tuerueberwachung:open set Tuere lock


FHEM im Proxmox Container

bastelwastel

Ich habe das Problem, daß die Türe auch dann verriegelt wird, wenn diese in der Zwischenzeit geöffnet wurde.

Die Zeile lautet inzwischen

define tuerverriegeln watchdog Tuerueberwachung:open 00:01:00 Tuerueberwachung:closed set Tuere lock ;; trigger tuerverriegeln .


Mitch

FHEM im Proxmox Container