Hallo,
Wie der Betreff schon sagt, möchte ich meine Aussenlampen einschalten, aber nur wenns noch düßter ist. Bei meiner Zeile:
{ if((Value("Daemmerungsautomatik") eq "on") && ({sunrise(1200,"07:20","08:00")} gt "07:30:00")) { fhem ("set Aussenlampen on") } }
Ist aber ein Fehler drin. Kann mir einer auf die Sprünge helfen?
Danke!
moin,
sunrise addiert unter Umständen 24h bis zum nächsten Sonnenaufgang.
Versuche das mal mit sunrise_abs.
Einen offensichtlichen Fehler sehe ich nicht, was geht denn nicht?
Gruß Otto
Hallo Otto,
Danke fürs kümmern!
An anderer Stelle, ohne doppelte if-bedingung, macht sunrise was es soll. Hier aber lautet der Fehler:
2015.01.27 07:25:00 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 18717) line 1.
2015.01.27 07:25:00 3: eval: { if((Value("Daemmerungsautomatik") eq "on") && ({sunrise(1200,"07:20","08:00")} gt "07:30:00")) { fhem ("set Aussenlampen on") } }
Zitat von: tschennings am 28 Januar 2015, 18:00:53
Hallo Otto,
Danke fürs kümmern!
An anderer Stelle, ohne doppelte if-bedingung, macht sunrise was es soll. Hier aber lautet der Fehler:
2015.01.27 07:25:00 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 18717) line 1.
2015.01.27 07:25:00 3: eval: { if((Value("Daemmerungsautomatik") eq "on") && ({sunrise(1200,"07:20","08:00")} gt "07:30:00")) { fhem ("set Aussenlampen on") } }
Du befindest dich auf der Perlebene, da darfst du in einer if-Bedingung keine geschweiften Klammern bei Funktionen setzen, also
{ if((Value("Daemmerungsautomatik") eq "on") && (sunrise(1200,"07:20","08:00") gt "07:30:00")) { fhem ("set Aussenlampen on") }
Gruß
Damian
Das sind die Dinge die ich auch noch lerne :)
Gruß Otto
Ah!
Danke, kapiert! Werds gleich mal testen.
Hmmm...
Das wars wohl nicht!
PERL WARNING: Argument "07:30" isn't numeric in numeric gt (>) at (eval 45951) line 1.
2015.01.29 07:25:00 3: eval: { if((Value("Daemmerungsautomatik") eq "on") && (sunrise(1200,"07:20","08:00")) > "07:30") { fhem ("set Aussenlampen on") } }
2015.01.29 07:25:00 1: PERL WARNING: Argument "07:38:38" isn't numeric in numeric gt (>) at (eval 45951) line 1.
2015.01.29 07:25:00 3: eval: { if((Value("Daemmerungsautomatik") eq "on") && (sunrise(1200,"07:20","08:00")) > "07:30") { fhem ("set Aussenlampen on") } }
Ideen?
Sind die Uhrzeiten nicht mit gt vergleichbar?
Zitat von: tschennings am 29 Januar 2015, 18:42:42
Sind die Uhrzeiten nicht mit gt vergleichbar?
Doch! Schau nochmal! ;-)
Edit: Wobei ich's nicht für ne gute Idee halte Zeitstrings mit gt zu vergleichen. "00:01" gt "23:59" -> false! Im contrib-Verzeichnis gibt es eine 99_TimeUtils.pm, die eine Funktion TU_Get_Difference($t1, $t2) implementiert.
ok - jetzt hab ich wirklich gt getippt - mal sehen, ob s klappt.
habs ohne die funktion aus dem contrib-verzeichnis gelassen, ist ja ein kleines, überschaubares zeitintervall ohne mitternachtsüberschreitung hier
Danke erstmal!