Hauptmenü

DOIF bei Autobeschattung

Begonnen von greenBelt, 16 Oktober 2017, 14:34:55

Vorheriges Thema - Nächstes Thema

Beta-User

Es sind doch überall Bedingungen definiert. Also benötigt man m.E. überall DOELSEIF.

Dann (Experten mögen mich bitte korrigieren): bei den <-Abfragen sollte mit dem kleinsten Wert begonnen werden, sonst springt das ständig hin und her zwischen den letzten paar Zweigen. Beginnt man mit dem kleinsten Wert, sind die anderen Bedingungen zwar auch wahr, aber alles, was "weiter rechts/unten" steht, wird nicht mehr ausgewertet, sobald eine vorrangige Bedingung wahr ist.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

amenomade

#16
Ja stimmt... sowas passiert, wenn man 2 oder 3 Dinge gleichzeitig macht! Ein DOELSE nimmt keine Bedingung. Die letzte ist auch ein DOELSEIF.

ZitatDann (Experten mögen mich bitte korrigieren): bei den <-Abfragen sollte mit dem kleinsten Wert begonnen werden, sonst springt das ständig hin und her zwischen den letzten paar Zweigen. Beginnt man mit dem kleinsten Wert, sind die anderen Bedingungen zwar auch wahr, aber alles, was "weiter rechts/unten" steht, wird nicht mehr ausgewertet, sobald eine vorrangige Bedingung wahr ist.
Das ist abhängig von den anderen Attribute des DOIFs. Aber grundsächlich eher wahr. Er wird aber nicht hin und her springen, sondern auf die erste bleiben, die wahr ist. Auch wenn es immer dunkler wird.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

greenBelt

#17
nee, er bleibt dabei
DOIF: expected DOELSEIF or DOELSE:

(([?10:00 - 17:00]) AND ([Lichtsensor:brightness] > 18000 )) (set Rollo 50)
                         DOELSEIF ([Lichtsensor:brightness] <=6100) (set Rollo 70)
     DOELSEIF ([Lichtsensor:brightness] < 5100) (set Rollo 30)
     DOELSEIF   ([Lichtsensor:brightness] < 4100) (set Rollo up)

Habe das auch schon alles durch. Irgendwie kommen wir hier  nicht weiter. Habe jetzt die zwei mittleren DOELSEIF raus
(([?10:00 - 17:00]) AND ([Lichtsensor:brightness] > 18000 )) (set Rollo 50)
     DOELSE   ([Lichtsensor:brightness] < 4100) (set Rollo up)

Ich warte grad bis der Trigger kommt um das Rollo hochzufahren. Im Reading ist der State noch initialized

automatisierer

also bei mir meckert er nicht...
vieleicht solltest du mal den ganzen Code posten und nicht nur das was hinter DOIF steht
desweiteren kenne ich  nur "and" und nicht "AND" hab aber keine Ahnung ob das was ausmacht...

Über den Sinn/Unsinn von Bedingungen und deren Reihenfolge hab ich mich mal noch gar nicht gekümmert... Geht hier auch scheinbar erst mal darum einem DOIF Grundsätze zu erklären...

amenomade

Ich stimme zu.
Und es wäre so wie so sicherer es so zu schreiben:

([?10:00 - 17:00] and [Lichtsensor:brightness] > 18000 ) (set Rollo 50)
DOELSEIF ([Lichtsensor:brightness] <= 6100 and [Lichtsensor:brightness] >= 5100) (set Rollo 70)
DOELSEIF ([Lichtsensor:brightness] < 5100 and [Lichtsensor:brightness] >= 4100) (set Rollo 30)
DOELSEIF ([Lichtsensor:brightness] < 4100) (set Rollo up)
DOELSE

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

greenBelt

also das DOIF hat er nun akzeptiert. AND darf man nicht schreiben. Das Reading schaut so aus:
Device
Lichtsensor
2017-10-16 16:21:06
cmd
0
2017-10-16 16:26:17
e_Lichtsensor_brightness
13.43
2017-10-16 16:21:06
state
initialized
2017-10-16 16:26:17
timer_01_c01
17.10.2017 10:00:00
2017-10-16 16:20:12
timer_02_c01
16.10.2017 17:00:00
2017-10-16 16:20:12
wait_timer
16.10.2017 16:31:06 cmd_2_1 Lichtsensor
2017-10-16 16:21:06


Und siehe da, es funktioniert!

SUPER DANKE !!!

Klasse Forum!!


automatisierer

Abwarten... oder, den Tag nicht vor dem Abend loben...
Ich bin gespannt ob dein DOIF schon genau das macht, was du von ihm erwartest...
Ich gehe davon aus, dass wir uns hier wieder sehen...

Beta-User

Zitat von: automatisierer am 16 Oktober 2017, 16:35:29
Abwarten... oder, den Tag nicht vor dem Abend loben...
Ich bin gespannt ob dein DOIF schon genau das macht, was du von ihm erwartest...
Ich gehe davon aus, dass wir uns hier wieder sehen...
;D
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

greenBelt

bin auch gespannt. Jedenfalls weiß ich jetzt (in etwa) was ich falsch gemacht habe!

Sollte sich das DOIF nicht wie erwartet das Rollo hochfahren funke ich hier noch einmal durch.


Beta-User

Zitat von: greenBelt am 16 Oktober 2017, 16:39:43
Sollte sich das DOIF nicht wie erwartet das Rollo hochfahren funke ich hier noch einmal durch.
Bitte dann aber gleich mit korrekter Lösung des Problems, sollte auch ohne unsere Hilfe klappen...

Und wenn es dann paßt, bitte den Thread als [gelöst] markieren (Anleitung: siehe Signatur).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

greenBelt

also bisher läuft es gut! Das Rollo fährt wie gewünscht Stück für Stück hoch.

anbei noch der komplette Code au s der CFG
define Autobeschattung DOIF ([?10:00 - 17:00] and [Lichtsensor:brightness] > 18000 ) (set Rollo 50)\
        DOELSEIF ([Lichtsensor:brightness] <= 6100 and [Lichtsensor:brightness] >= 5100) (set Rollo 70)\
        DOELSEIF ([Lichtsensor:brightness] < 5100 and [Lichtsensor:brightness] >= 4100) (set Rollo 30)\
        DOELSEIF ([Lichtsensor:brightness] < 4100) (set Rollo up)\
        DOELSE\
                                                \
\

attr Autobeschattung do always
attr Autobeschattung icon fts_blade_arc_close_100
attr Autobeschattung room Wohnzimmer
attr Autobeschattung wait 420:600


Perfekt! Es läuft so wie es soll!

Fall gelöst