Hallo zusammen,
ich bin ziemlich neu im Thema und somit ist das heute meine erste Frage ;)
Ich nutze FHEM auf einem PI zur Steuerung meiner Logo´s. Da ich nun alle Geräte in FHEM angelegt habe und im TabletUI eine vernünftige Oberfläche gebaut habe, möchte ich mich nun den Automatismen widmen.
Im ersten Schritt möchte ich mir eine Sonnenstandsautomatik für meine Rolladen bauen (Logik der Grundsteuerung ist in der Logo). Die Rolladen sollen Runterfahren, wenn die Automatik an ist (dummy Schalter), der Azimut sowie der Höhenwinkel der Sonne bestimmte Werte überschreiten, die maximale Temperatur des Tages einen Wert nicht übersteigt, etc...das sieht dann in FHEM so aus:
([EG_Z_AS_schalt:on] and
[Sonnenstand:azimuth] >82.00 and
[Sonnenstand:azimuth] <170.00 and
[Sonnenstand:elevation] > 20.00 and
[WetterNuernberg:fc0_tempMax] > 20
)
(set EG_E_R_ab trigger, set EG_K_R_ab trigger) DOELSEIF
([EG_Z_AS_schalt:on] and
[Sonnenstand:azimuth] > 170.01
)
(set EG_E_R_auf trigger, set EG_K_R_auf trigger)
Die Sonnendaten hole ich mir von Twilight, die Wetterdaten von Proplanta. Soweit ziehen sich die Werte auch. Wenn ich cmd1 oder cmd2 setze fahren die Rolladen auf bzw. ab.
Das DOIF ist im Status initialized. Wenn die Werte passen sollten tut sich aber nichts. Habe ich evtl den Schalter falsch eingebaut? Bräuchte ich Anführungszeichen beim ON (hat auch nichtgeklappt ;)). Passt der DOIF Status nicht? Muss ich sobald ich etwas ändere das DOIF irgendwie "aktivieren"?
Ich hoffe ihr könnt mir weiterhelfen. Danke für eure Rückmeldungen schon im Voraus :)
VG
Florian
Hallo Florian,
herzlich willkommen! :)
Ich bin da nicht der Profi. Beim Schalter liest du ja kein Reading aus, sondern den Status. Probier es mal so:
([EG_Z_AS_schalt] eq "on" and
[Sonnenstand:azimuth] >82.00 and
[Sonnenstand:azimuth] <170.00 and
[Sonnenstand:elevation] > 20.00 and
[WetterNuernberg:fc0_tempMax] > 20
)
(set EG_E_R_ab trigger, set EG_K_R_ab trigger) DOELSEIF
([EG_Z_AS_schalt] eq "on" and
[Sonnenstand:azimuth] > 170.01
)
(set EG_E_R_auf trigger, set EG_K_R_auf trigger)
Gruß
Hi Kabinett,
herzlichen Dank für Deine Antwort. nun funktioniert es wie es soll :) ....
Was bedeutet denn "eq" eigentlich? Im DOIF wird das nicht erklärt. Ist das etwas grundsätzliches von FHEM was ich noch nicht gelesen/gelernt habe?
Im DOIF howto findet sich dazu leider nix
Vg
Florian
eq -> equals -> ist gleich
ne -> not equal
usw.
Ist Perl und wird für Zeichenkettenvergleiche genommen...
Für numerische Werte:
==
!=
usw.
Siehe Vergleichsoperatoren...
Gruß, Joachim
Hi Joachim,
jetzt wird's heller ;) Danke dir.
Muss ich mal sehen wo ich dafür eine schöne Übersicht finde......
VG
Florian
Zitat von: FlorianSenne am 26 Juli 2020, 08:35:36
Muss ich mal sehen wo ich dafür eine schöne Übersicht finde......
Siehe https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg oder
https://wiki.fhem.de/wiki/DOIF/Automatisierung#Beschattungssteuerung_abh.C3.A4ngig_von_der_Zimmertemperatur_und_Sonneneinstrahlung_f.C3.BCr_mehrere_Szenarien_mit_Visualisierung
Hallo Damian,
auch dir vielen Dank....
VG
Florian
Zitat von: FlorianSenne am 26 Juli 2020, 08:35:36
Muss ich mal sehen wo ich dafür eine schöne Übersicht finde......
Hallo Florian,
schön das ich dir helfen konnte :)
Mir ging es ähnlich wie dir! Ich habe bis Dato hier im Forum/Wiki auch keine wirklich gute und für Nichtprogrammierer verständliche Erläuterung gefunden.
Es liegt wahrscheinlich daran, dass sehr viele mit Programmierkenntnissen, oder zumindest mit einer ähnlichen Vorbelastung, sich hier tummeln ;) und solche profanen Dinge voraussetzen.
Ich habe mir dann das entsprechende Wissen von hier geholt:
https://de.wikibooks.org/wiki/Perl-Programmierung:_Operatoren (https://de.wikibooks.org/wiki/Perl-Programmierung:_Operatoren)
Unter
https://de.wikibooks.org/wiki/Perl-Programmierung:_Operatoren#Stringvergleichende_Operatoren (https://de.wikibooks.org/wiki/Perl-Programmierung:_Operatoren#Stringvergleichende_Operatoren)
findest du die Erklärung zu deinem Problem.
Gruß