Erledigt!!! Kurze Hilfe zur Rollladensteuerung

Begonnen von seule3008, 11 März 2017, 19:45:13

Vorheriges Thema - Nächstes Thema

seule3008

Hallo an Alle

ich habe ein DOIF zur Steuerung meiner Terassentürrolllade geschrieben welches auch funktionierte. Das Rollo soll, wenn die Tür offen ist nicht herunter fahren sondern nur, wenn die Tür zu oder gekippt ist. Das tat sie am Anfang auch aber jetzt nicht mehr und ich finde den Fehler nicht. Kann von euch mal einer drüber gucken und mir helfen?

([({twilight("TC_TWILIGHT","sr_civil","06:00","9:00")} - 90 + rand(180))]) ((set RolloWzTuer Hoch), set RolloWzTuerKipp1 1)
DOELSEIF ([({twilight("TC_TWILIGHT","ss_civil","19:37","22:00")} - 90 + rand(180))] and [GriffWzTuer:state] eq "closed" || "tilted") ((set RolloWzTuer Runter), set RolloWzTuerKipp1 0)


Wenn die Tür offen ist soll Fhem einfach garnichts machen. Der Zustand "open" taucht auch in dem DOIF nirgends auf die Rolllade schließt aber dennoch.

Danke schonmal..

Grüße

Christian

Damian

Zitat von: seule3008 am 11 März 2017, 19:45:13
Hallo an Alle

ich habe ein DOIF zur Steuerung meiner Terassentürrolllade geschrieben welches auch funktionierte. Das Rollo soll, wenn die Tür offen ist nicht herunter fahren sondern nur, wenn die Tür zu oder gekippt ist. Das tat sie am Anfang auch aber jetzt nicht mehr und ich finde den Fehler nicht. Kann von euch mal einer drüber gucken und mir helfen?

([({twilight("TC_TWILIGHT","sr_civil","06:00","9:00")} - 90 + rand(180))]) ((set RolloWzTuer Hoch), set RolloWzTuerKipp1 1)
DOELSEIF ([({twilight("TC_TWILIGHT","ss_civil","19:37","22:00")} - 90 + rand(180))] and [GriffWzTuer:state] eq "closed" || "tilted") ((set RolloWzTuer Runter), set RolloWzTuerKipp1 0)


Wenn die Tür offen ist soll Fhem einfach garnichts machen. Der Zustand "open" taucht auch in dem DOIF nirgends auf die Rolllade schließt aber dennoch.

Danke schonmal..

Grüße

Christian

falsche Syntax.

Besser:

([({twilight("TC_TWILIGHT","sr_civil","06:00","9:00")} - 90 + rand(180))])
  (set RolloWzTuer Hoch, set RolloWzTuerKipp1 1)
DOELSEIF ([({twilight("TC_TWILIGHT","ss_civil","19:37","22:00")} - 90 + rand(180))]
          and ([GriffWzTuer:state] eq "closed" or [GriffWzTuer:state] eq "tilted"))
  (set RolloWzTuer Runter, set RolloWzTuerKipp1 0)

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

seule3008

Vielen Dank

Dachte das || auch oder heißt.


Damian

Zitat von: seule3008 am 11 März 2017, 20:01:35
Vielen Dank

Dachte das || auch oder heißt.

das stimmt, aber auch:

[GriffWzTuer:state] eq "closed" or "tilted"

würde nicht funktionieren.

var = a or b

funktioniert in keiner Programmiersprache, wie du es meinst.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

seule3008

Okay also immer komplett ausführen. Vielen Dank.

Damian

Zitat von: seule3008 am 11 März 2017, 20:14:29
Okay also immer komplett ausführen. Vielen Dank.

Wenn du mal reguläre Ausdrücke studiert hast, dann kannst du auch angeben:

[GriffWzTuer:state] =~ "closed|tilted"
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

seule3008

Ich hab eigentlich keine Ahnung von Programmiersprache. Habe mir das nur zusammen gegooled. Ich muss mal nach einem leicht verständlichen Handbuch für perl suchen, wo solche Sachen erklärt sind.

Damian

Zitat von: seule3008 am 11 März 2017, 20:33:01
Ich hab eigentlich keine Ahnung von Programmiersprache. Habe mir das nur zusammen gegooled. Ich muss mal nach einem leicht verständlichen Handbuch für perl suchen, wo solche Sachen erklärt sind.

ja, reguläre Ausdrücke sind eine Wissenschaft für sich ;)

Hier kannst du anfangen: https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF