Weihnachtsbeleuchtung mit und ohne Anwesenheit

Begonnen von bierbuster, 27 November 2018, 13:41:26

Vorheriges Thema - Nächstes Thema

bierbuster

Hallo,

ich habe mehrere Weihnachtsbeleuchtungen bei mir zuhause an Fhem angebunden. Jetzt will ich, dass die Xmas-Beleuchtung morgens um 6 Uhr angeht und mit Sonnenaufgang (Wetter, über das Twilightobjekt) ausgehen sollen. Außerdem sollen alle ausgehen, sofern niemand zuahause ist. Alle bis auf eine Lampe :D. Das gleiche Abends mit Untergang bis 23:00 Uhr. Würden diese beiden DOIFs da gehen?

###1
( ([6:00]-[myTL:sr_weather] or [myTL:ss_weather]-[23:00]) and [Home.presence = present] )
(set Lampe3 on)
DOELSE
(set LampeImmerAn off)


###2
( ([6:00]-[myTL:sr_weather] or [myTL:ss_weather]-[23:00]) )
(set Lampen1und2 on)
DOELSE
(set Lampen1und2 off)

(Lampennamen sind gerade nur fiktiv.)

Wenn das passen sollte, wie sieht es denn aus, wenn ich erst nach Sonnenuntergang nach hause komme, geht dann das licht auch noch an (natürlich vor 23 Uhr)?


Ellert

Diese Syntax [myTL:ss_weather]-[23:00] solltest Du anhand der Befehlsreferenz zu DOIF überprüfen, s. Zeitintervall und indirekte Zeitangaben.

bierbuster

Meinst du eher:
[myTL:ss_weather]-[23:00:00]

Im Grunde ist hinter myTL:ss_weather ja auch nur eine Zeit (heute bei mir z.b. 15:51:33).

Zitat([[myTwilight:ss_weather]])

oder so:
( ([6:00]-[[myTL:sr_weather]] or [[myTL:ss_weather]]-[23:00:00]) ) (mit doppelten eckigen Klammern)

CoolTux

Das hier
and [Home.presence = present]

Sollte eigentlich nicht gehen. Wobei man bei DOIF mittlerweile alles mögliche eintragen kann was dann umgewandelt wird. Leider lernen die User so aber nicht wie Perl oder generell Bedingungen funktionieren. Aber egal
Eeigentlich
and [Home.presence eq 'present']
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

bierbuster

#4
ja... Perl Syntax kann ich noch nicht :D Will aber bemüht sein, es richtig zu machen.

Jetzt hat er mir aber nicht die Zeit aus ss_weather genommen, sondern eine Stunde früher. Was kann das sein? Sonst hat es wunderbar funktioniert.

ZitatDEF   
( ([6:00]-[myTL:sr_weather] or [myTL:ss_weather]-[23:00]) )
   (set gss_01100A on)
DOELSE
   (set gss_01100A off)
MODEL
FHEM
NAME
doif_Xmas_ever
NR
19118
NTFY_ORDER
50-doif_Xmas_ever
STATE
cmd_1
TYPE
DOIF
READINGS
Device
myTL
2018-11-27 16:05:18
cmd
1
2018-11-27 14:51:35
cmd_event
myTL
2018-11-27 14:51:35
cmd_nr
1
2018-11-27 14:51:35
e_myTL_sr_weather
08:23:21
2018-11-27 14:51:35
e_myTL_ss_weather
15:51:33
2018-11-27 14:51:35
mode
enabled
2018-11-27 13:52:48
state
cmd_1
2018-11-27 14:51:35
timer_01_c01
28.11.2018 06:00:00
2018-11-27 13:52:48
timer_02_c01
27.11.2018 23:00:00
2018-11-27 13:52:48
warning
condition c01: Argument "08:23:21" isn't numeric in subtraction (-)
2018-11-27 14:51:35

Die DOIF mit dem present hat leider noch nicht funktioniert. Ich kann es gerade auf present setzen, jedoch will es nicht laufen :D
Kann ich die Bedingungen nicht einzeln oben ausführen lassen und mir das Ergebnis zurückgeben lassen? In etwa so:

Oben folgendes ausführen: [Home.presence eq 'present'] -> ENTER -> dann wird mir bisher Unknown Command angezeigt, soll aber wenn irgendwie möglich das Ergebnis "12:34:56" ausgeben :)


EDIT: Okay das einfügen des Textes war für die Katz :D Bild lade ich gleich hoch.

Ein richtiger Syntax wäre doch auch dieser hier oder:
if ( ([6:00]-[myTL:sr_weather] or [myTL:ss_weather]-[23:00]) and [Home.presence eq 'present'] ) {
(set a:weihnachtsautomatik=ja on)
} DOELSE {
(set a:weihnachtsautomatik=ja off)
}

CoolTux

#5
Bitte Code oder Logausgaben oder eben auch ein list immer in Codetags. Das Rautezeichen beim Forumeditor

Ansonsten hilft immer die Commandref. Besonders bei DOIF

http://commandref.fhem.de/commandref_DE.html#DOIF

Ergo

[Home.presence] eq "present" )

Nicht einfach was hier steht als gegeben sehen sondern immer selbst noch schauen bitte. Bei Deiner eine Stunde weniger weiß ich leider auch nicht.
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

CoolTux

Deine Zeitangabe aus Twilight scheint er falsch zu verstehen. Er will da eine mathematische Berechnung mit machen.
Aber ich weiß das wir hier sowas schon mal hatten. Also flux die Suche bemühen.
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

CoolTux

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

CoolTux

So und jetzt mal alles in einem zusammenhang


(([[6:00]-[myTL:sr_weather]] or [[myTL:ss_weather]-[23:00]]) and [Home.presence] eq "present")
(set Lampe3 on)
DOELSE
(set LampeImmerAn off)
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

Damian

Zitat von: CoolTux am 27 November 2018, 16:39:49
So und jetzt mal alles in einem zusammenhang


(([[6:00]-[myTL:sr_weather]] or [[myTL:ss_weather]-[23:00]]) and [Home.presence] eq "present")
(set Lampe3 on)
DOELSE
(set LampeImmerAn off)


eher:

(([06:00-[myTL:sr_weather]] or [[myTL:ss_weather]-23:00]) and [Home.presence] eq "present")
(set Lampe3 on)
DOELSE
(set LampeImmerAn off)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

CoolTux

Zitat von: Damian am 27 November 2018, 18:33:53
eher:

(([06:00-[myTL:sr_weather]] or [[myTL:ss_weather]-23:00]) and [Home.presence] eq "present")
(set Lampe3 on)
DOELSE
(set LampeImmerAn off)


Danke Dir Damian.
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

bierbuster

Hallo,

vielen dank :)


([06:00-[myTL:sr_weather]] or [[myTL:ss_weather]-23:30])
(set gss_01100A on)
DOELSE
(set gss_01100A off)

Funktioniert. (Ist die "immeran in bestimmten Zeiten"; einfache Zeitschaltuhr mit sr und ss)

Was noch nicht so richtig funktioniert oder vielleicht auch nur ein Denkfehler ist, ist die gleiche Funktion, jedoch gekoppelt mit dem Haus-Status.

(([06:00-[myTL:sr_weather]] or [[myTL:ss_weather]-22:30]) and [Home.presence] eq "present")
(set a:weihnachtsautomatik=ja on)
DOELSE
(set a:weihnachtsautomatik=ja off)

Ich glaube, dass ich einen Denkfehler dabei habe. Dieses DOIF wird dann nur zu genau den bestimmten Zeiten ausgeführt und nicht während dieser Zeit oder?
D.h. wenn morgens um 6:00 Uhr das Licht normal angehen soll, muss zur gleichen Zeit Home.presence present sein oder?

Muss ich da vielleicht andersrum rangehen? Den Status Home.presence beobachten lassen und dann bei dem Status present nach den Zeiten gucken lassen?
Mein Ziel ist es ja, dass die Lampen 1und2 zur gleichen Zeit angeschaltet werden, wie auch die andere von oben. Nur halt auch in kombination mit dem Haus-Status. (Licht geht um 6 an, ich verschwinde um 6:05 Uhr und das Licht geht aus. Ich komme um 6:10 Uhr und das Licht geht wieder an. Wenn sr_weather erreicht ist, soll es jedoch ausbleiben.)

Habt ihr auch schon soetwas gelöst?