[gelöst] DOIF für Sonnenstandsautomatik schaltet nicht

Begonnen von FlorianSenne, 25 Juli 2020, 09:05:04

Vorheriges Thema - Nächstes Thema

FlorianSenne

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

kabanett

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ß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

FlorianSenne

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

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

FlorianSenne

Hi Joachim,

jetzt wird's heller ;) Danke dir.

Muss ich mal sehen wo ich dafür eine schöne Übersicht finde......

VG
Florian


FlorianSenne


kabanett

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

Unter
https://de.wikibooks.org/wiki/Perl-Programmierung:_Operatoren#Stringvergleichende_Operatoren
findest du die Erklärung zu deinem Problem.

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren