Rollladensteuerung sunset Anwesenheit

Begonnen von rizo, 12 Februar 2017, 10:51:37

Vorheriges Thema - Nächstes Thema

rizo

So ich nochmal.

(*{sunset(-1800,"16:00","22:30" and [Homestatus] eq "home") }) (set Rolladen_Fenster off) DOELSEIF (*{sunset(-1800,"16:00","22:30") } (set Rolladen_Fenster off))

bei dem Code sagt Fhem

2017.02.13 18:48:05 1: PERL WARNING: Useless use of a constant (-1800) in void context at (eval 103406) line 1.
2017.02.13 18:48:05 1: PERL WARNING: Useless use of a constant ("16:00") in void context at (eval 103406) line 1


und ich find den Fehler nicht. Jemand der mal kurz drüber schauen kann?

Damian

Zitat von: rizo am 13 Februar 2017, 18:52:17
So ich nochmal.

(*{sunset(-1800,"16:00","22:30" and [Homestatus] eq "home") }) (set Rolladen_Fenster off) DOELSEIF (*{sunset(-1800,"16:00","22:30") } (set Rolladen_Fenster off))

bei dem Code sagt Fhem

2017.02.13 18:48:05 1: PERL WARNING: Useless use of a constant (-1800) in void context at (eval 103406) line 1.
2017.02.13 18:48:05 1: PERL WARNING: Useless use of a constant ("16:00") in void context at (eval 103406) line 1


und ich find den Fehler nicht. Jemand der mal kurz drüber schauen kann?

([{sunset(-1800,"16:00","22:30"}] and [Homestatus] eq "home")

Zeitfunktionen werden beim DOIF in eckigen klammern angegeben, Stern gehört zur Syntax beim at und wird bei DOIF nicht benötigt, ansonsten hier nochmal genau lesen: https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rizo

#17
Zitat von: Damian am 13 Februar 2017, 19:21:03
([{sunset(-1800,"16:00","22:30"}] and [Homestatus] eq "home")

Zeitfunktionen werden beim DOIF in eckigen klammern angegeben, Stern gehört zur Syntax beim at und wird bei DOIF nicht benötigt, ansonsten hier nochmal genau lesen: https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung

wenn ich dein Beispiel übernehme kommt

the function "sunset(-1800,"16:00","22:30"" must return a timespec and not syntax error at (eval 127414) line 1, at EOF
.: {sunset(-1800,"16:00","22:30"}


Damian

Zitat von: rizo am 13 Februar 2017, 19:54:05
wenn ich dein Beispiel übernehme kommt

the function "sunset(-1800,"16:00","22:30"" must return a timespec and not syntax error at (eval 127414) line 1, at EOF
.: {sunset(-1800,"16:00","22:30"}

es fehlte noch die Klammer zu
[{sunset(-1800,"16:00","22:30")}]
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rizo

([{sunset(-1800,"16:00","22:30")}] and [Homestatus] eq "home") (set Rolladen_Fenster off) DOELSEIF ([{sunset (-1800,"16:00","22:30")}] (set Rolladen_Fenster off) )

so passt der Code ohne Fehlermeldung.

Dann mal schauen was morgen passiert. Danke danke

Damian

#20
Zitat von: rizo am 13 Februar 2017, 20:00:45
([{sunset(-1800,"16:00","22:30")}] and [Homestatus] eq "home") (set Rolladen_Fenster off) DOELSEIF ([{sunset (-1800,"16:00","22:30")}] (set Rolladen_Fenster off) )

so passt der Code ohne Fehlermeldung.

Dann mal schauen was morgen passiert. Danke danke

ja, allerdings macht die Definition mit zwei mal off keinen Sinn. Denn mit sunset wird getriggert und wenn Homestatus gleich "home" ist, dann set Rolladen_Fenster off ausgeführt, wenn Homestatus nicht gleich "home", dann wird der zweite Trigger im DOELSEIF ausgeführt und spätestens dann off ausgeführt. Man kann also sagen, es wird  bei sunset immer set Rolladen_Fenster off ausgeführt.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rizo

hm...ja aber wie sag ich dem doif denn das er nicht auf den Homestatus reagieren soll, also die Rolläden auf jedenfall unten bleiben wenn ich heim komme?

Damian

Zitat von: rizo am 13 Februar 2017, 20:25:22
hm...ja aber wie sag ich dem doif denn das er nicht auf den Homestatus reagieren soll, also die Rolläden auf jedenfall unten bleiben wenn ich heim komme?

Erst mal musst du mir sagen, was set Rolladen_Fenster off bei dir ist. Bei mir ist es Rollladen runterfahren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rizo

set Rolladen_Fenster off ist Rolladen Fenster runterfahren

Fixel2012

Wenn du nur willst, dass die Rolläden herunterfahren, wenn dein Anwesenehitsstatus home ist, sollte das so gehen.

([{sunset(-1800,"16:00","22:30")}] and [Homestatus] eq "home") (set Rolladen_Fenster off)
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

rizo

ne ich möchte gerne das wenn sunset die rolladen geschlossen hat, das diese eben nicht mehr durch anwesenheitsstatus geschaltet werden

Fixel2012

Zitat von: rizo am 14 Februar 2017, 13:12:55
ne ich möchte gerne das wenn sunset die rolladen geschlossen hat, das diese eben nicht mehr durch anwesenheitsstatus geschaltet werden

Durch welchen anwesenheitsstatus? Wie lautet das define dafür? Wenn es ein DOIF oder Notify ist kannst du es disablen.
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

rizo

Anwesenheitskontrolle:

define Gtag lan-bluetooth 7C:2F:80:C4:6A:50 127.0.0.1:5333 30 120

dann structure presence modul

define Anwesenheit structure presence Gtag

define Homestatuskontrolle structure room Homestatus

define Homestatuskontrolle_Doif DOIF ([Anwesenheit] eq "present") (set Homestatuskontrolle on,set Homestatus scene home) DOELSE (set Homestatuskontrolle off,set Homestatus scene away)

Homestatus ist mit Lightscene als scene home und away angelegt.