Hi,
dumme Frage, aber ich komme trotzdem gerade nicht weiter...
Das funktioniert:
Funktion: Wenn Brightness über 100 wird die percentage2 auf 100 gesetzt und somit die Markise ausgefahren.
Internals:
CFGFN
COMMAND {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100) {fhem("set WG_Steuerung percentage2 100")} }
DEF +*00:30:00 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100) {fhem("set WG_Steuerung percentage2 100")} }
NAME Markise_runter_bei_Sonne
NR 691
NTM 13:27:57
PERIODIC yes
RELATIVE yes
REP -1
STATE Next: 13:27:57
TIMESPEC 00:30:00
TRIGGERTIME 1527938877.67079
TRIGGERTIME_FMT 2018-06-02 13:27:57
TYPE at
READINGS:
2018-06-02 12:57:57 state Next: 13:27:57
Attributes:
DbLogExclude .*
room 0.03_Wintergarten
Nun möchte ich aber dass das percentage2 nur auf 100 gesetzt wird wenn percentage 2 gerade <100 ist.
Das funktioniert nicht (syntax Error):
Zitat+*00:30:00 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100) {{if(ReadingsVal('WG_Steuerung', 'percentage2', 0) < 100) fhem("set WG_Steuerung percentage2 100")} } }
Würde mich über einen Tipp dazu freuen.
{fhem("set WG_Steuerung:FILTER=percentage2<100 percentage2 100")} }
Danke, das funktioniert.
Denke ich werde mir mal doif genauer ansehen ob ich damit auch zyklisch alle 30 Minuten dieses Thema testen kann.
Bei etwas Langeweile würde ich mal vergleichen was besser für mich geeignet ist. Denke das wäre eher mein Niveau...
(und ich könnte leichter weitere Bedingungen hinzufügen wie die Außentemperatur muss größer 20 Grad sein, ...)
Danke dass es schon mal funktioniert!
Zitat von: Ranseyer am 02 Juni 2018, 14:03:41
Danke, das funktioniert.
Denke ich werde mir mal doif genauer ansehen ob ich damit auch zyklisch alle 30 Minuten dieses Thema testen kann.
Bei etwas Langeweile würde ich mal vergleichen was besser für mich geeignet ist. Denke das wäre eher mein Niveau...
(und ich könnte leichter weitere Bedingungen hinzufügen wie die Außentemperatur muss größer 20 Grad sein, ...)
Danke dass es schon mal funktioniert!
hast du dir mal MSwitch angeschaut ?
Zitat(und ich könnte leichter weitere Bedingungen hinzufügen wie die Außentemperatur muss größer 20 Grad sein, ...)
Könnte genau das richtige sein .
gruss Byte09
Danke MSwitch hab ich mir angeschaut und kann mir vorstellen (es vermutlich für anderes als die Markise) einzusetzen. Ich antworte dazu mal im MSwitch-Thread den ich sicher gleich finde.
Warum nicht über ein simples "and" im "at"?
+*00:30:00 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100 and ReadingsVal('WG_Steuerung', 'percentage2', 0) < 100) fhem("set WG_Steuerung percentage2 100")}}
Kann man ebenfalls ausweiten. Bei Verwendung eines "or" (was genauso funktioniert) bitte Klammersetzung beachten.
Aber eigentlich sollte es auch so ähnlich gehen, wie du das hattest (für den Fall, dass da oder woanders mal noch ein "else" dazukommen soll):+*00:30:00 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100) {if(ReadingsVal('WG_Steuerung', 'percentage2', 0) < 100) fhem("set WG_Steuerung percentage2 100")}}
ZitatWarum nicht über ein simples "and" im "at"?
+*00:30:00 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100 and ReadingsVal('WG_Steuerung', 'percentage2', 0) < 100) fhem("set WG_Steuerung percentage2 100")}}
Das gefällt mir bisher am besten (lesbar und einfach)
:
+*00:30:00 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100) {if(ReadingsVal('WG_Steuerung', 'percentage2', 0) < 100) fhem("set WG_Steuerung percentage2 100")}}
[/quote]
Leider nicht:
Zitatsyntax error at (eval 29211) line 1, near ") fhem "
Danke!
Das ober geht auchg nicht:
Ich hab mal ne Klammer weggelassen und somit nur noch einen statt zwei Fehler:
+*00:30:00 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100 and ReadingsVal('WG_Steuerung', 'percentage2', 0) < 100) fhem("set WG_Steuerung percentage2 100")}
Trotzdem noch:
Zitatsyntax error at (eval 29345) line 1, near ") fhem"
Obwohl für mich die Klammern passen...
Habe eben mal folgendes in meinem FHEM definiert, da hatte wohl noch eine Klammer an der richtigen Stelle gefehlt (zur Umklammerung des auszuführenden Codeblocks nach dem if):
define test at +00:01 {if(ReadingsVal('WG_Steuerung', 'brightness', 0) > 100 and ReadingsVal('WG_Steuerung', 'percentage2', 0) < 100) {fhem("set WG_Steuerung percentage2 100")}}
Kam jedenfalls keine Fehlermeldung, aber ich habe kein passendes WG_Steuerung-Device, um das abschließend testen zu können...
...das ist zwar scheinbar einfach, aber...
Danke.