FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Wasserwerk33 am 07 August 2021, 15:37:42

Titel: Jalousie schaltet nicht immer im CMD 3
Beitrag von: Wasserwerk33 am 07 August 2021, 15:37:42
Hallo Leute,

ich weiß nicht wie ich es noch ändern kann, oder muss. Habe ein Problem mit meiner Jalousiensteuerung wenn die anderen werte nicht ausgelöst wird (CMD 1-2) dann wird 3 nur einmal ausgelöst. Habt ihr vielleicht einen Tip für mich wie ich dieses ändern kann? Meine Jalousie wird von einer Siemens Logo gesteuert. Die Hauptaufgabe übernimmt der PI und die Logo ist das Backup.


Internals:
   DEF        ([?7:00-18:00] and [LichtsensorOG:lux]> 700 and [LaCrosse_16:temperature:d] > 17 and [?myTwilight:azimuth] > 70 and [myTwilight:azimuth] < 269 and [?Wetter:weather] =~ "Nebel|heiter|klar|sonnig|wolkig" and [?Astro:ObsSeason] =~ "Frühling|Sommer|Herbst") (set Sonnenschutz_OG_runter trigger)

DOELSEIF

([?7:00-18:00] and [LichtsensorOG:lux]> 700 and [LaCrosse_16:temperature:d] > 25) (set Sonnenschutz_OG_runter trigger)

DOELSEIF

([?8:00-18:20] and ([LichtsensorOG:lux]< 20 or [?myTwilight:azimuth] > 270 or [?Wetter:weather] =~ "regen|stark bewölkt|Regenschauer|bewölkt|bedeckt")) (set Sonnenschutz_OG_hoch trigger)

DOELSEIF

([({twilight("myTwilight","ss","16:30","18:30")}-120+int(rand(600)))])
(set OG_ganz_runter trigger)
   FUUID      60788fbf-f33f-87a8-83d4-99553dcc5d5c6558
   MODEL      FHEM
   NAME       Jalousie_OG
   NOTIFYDEV  LaCrosse_16,LichtsensorOG,myTwilight,global
   NR         34
   NTFY_ORDER 50-Jalousie_OG
   STATE      initialized
   TYPE       DOIF
   VERSION    24434 2021-05-13 20:27:41
   READINGS:
     2021-08-07 15:33:43   Device          myTwilight
     2021-08-07 15:30:20   cmd             0
     2021-08-07 15:32:04   e_LaCrosse_16_temperature 22.1
     2021-08-07 15:33:43   e_myTwilight_azimuth 223.67
     2021-08-07 15:30:20   mode            enabled
     2021-08-07 15:30:20   state           initialized
     2021-08-07 15:30:20   timer_01_c01    08.08.2021 07:00:00
     2021-08-07 15:30:20   timer_02_c01    07.08.2021 18:00:00
     2021-08-07 15:30:20   timer_03_c02    08.08.2021 07:00:00
     2021-08-07 15:30:20   timer_04_c02    07.08.2021 18:00:00
     2021-08-07 15:30:20   timer_05_c03    08.08.2021 08:00:00
     2021-08-07 15:30:20   timer_06_c03    07.08.2021 18:20:00
     2021-08-07 15:30:20   timer_07_c04    07.08.2021 18:36:08
     2021-08-07 15:36:39   wait_timer      07.08.2021 15:46:39 cmd_3 Jalousie_OG
   Regex:
     accu:
     collect:
     cond:
       LaCrosse_16:
         0:
           temperature ^LaCrosse_16$:^temperature:
         1:
           temperature ^LaCrosse_16$:^temperature:
         2:
         3:
       LichtsensorOG:
         0:
           lux        ^LichtsensorOG$:^lux:
         1:
           lux        ^LichtsensorOG$:^lux:
         2:
           lux        ^LichtsensorOG$:^lux:
       myTwilight:
         0:
           azimuth    ^myTwilight$:^azimuth:
         1:
         2:
         3:
   attr:
     wait:
       0:
         120
       1:
         60
       2:
         600
       3:
         0
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'LichtsensorOG','lux')> 700 and ::ReadingValDoIf($hash,'LaCrosse_16','temperature','','d') > 17 and ::ReadingValDoIf($hash,'myTwilight','azimuth') > 70 and ::ReadingValDoIf($hash,'myTwilight','azimuth') < 269 and ::ReadingValDoIf($hash,'Wetter','weather') =~ "Nebel|heiter|klar|sonnig|wolkig" and ::ReadingValDoIf($hash,'Astro','ObsSeason') =~ "Frühling|Sommer|Herbst"
     1          ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'LichtsensorOG','lux')> 700 and ::ReadingValDoIf($hash,'LaCrosse_16','temperature','','d') > 25
     2          ::DOIF_time($hash,4,5,$wday,$hms) and (::ReadingValDoIf($hash,'LichtsensorOG','lux')< 20 or ::ReadingValDoIf($hash,'myTwilight','azimuth') > 270 or ::ReadingValDoIf($hash,'Wetter','weather') =~ "regen|stark bewölkt|Regenschauer|bewölkt|bedeckt")
     3          ::DOIF_time_once($hash,6,$wday)
   days:
   do:
     0:
       0          set Sonnenschutz_OG_runter trigger
     1:
       0          set Sonnenschutz_OG_runter trigger
     2:
       0          set Sonnenschutz_OG_hoch trigger
     3:
       0          set OG_ganz_runter trigger
     4:
   helper:
     DEVFILTER  ^global$|^LichtsensorOG$|^myTwilight$|^LaCrosse_16$
     NOTIFYDEV  global|LichtsensorOG|myTwilight|LaCrosse_16
     event      azimuth: 223.67,elevation: 46.18,twilight: 100,twilight_weather: 47,compasspoint: south-southwest
     globalinit 1
     last_timer 7
     sleepdevice Jalousie_OG
     sleepsubtimer 0
     sleeptimer 2
     timerdev   
     timerevent azimuth: 223.67,elevation: 46.18,twilight: 100,twilight_weather: 47,compasspoint: south-southwest
     timerevents
     timereventsState
     triggerDev
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
   intervalfunc:
   localtime:
     0          1628398800
     1          1628352000
     2          1628398800
     3          1628352000
     4          1628402400
     5          1628353200
     6          1628354168
   readings:
     all         LichtsensorOG:lux LaCrosse_16:temperature myTwilight:azimuth
   realtime:
     0          07:00:00
     1          18:00:00
     2          07:00:00
     3          18:00:00
     4          08:00:00
     5          18:20:00
     6          18:36:08
   time:
     0          7:00
     1          18:00:00
     2          7:00
     3          18:00:00
     4          8:00
     5          18:20:00
     6          ({twilight("myTwilight","ss","16:30","18:30")}-120+int(rand(600)))
   timeCond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
   timers:
     3           6
   trigger:
   triggertime:
     1628352000:
       localtime  1628352000
       hash:
     1628353200:
       localtime  1628353200
       hash:
     1628354168:
       localtime  1628354168
       hash:
     1628398800:
       localtime  1628398800
       hash:
     1628402400:
       localtime  1628402400
       hash:
   uiState:
   uiTable:
Attributes:
   room       Logo
   wait       120:60:600:0


Mit den anderen Unterstützungsprogrammen für die Jalousiensteuerung tu ich mich sau schwer und bekomme es nicht hin. Falls einer mir es zeigen kann würde ich es auch mit so einem Programm probieren.

Danke
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Otto123 am 07 August 2021, 17:05:21
Hi,

was genau meinst Du damit?
Zitatdann wird 3 nur einmal ausgelöst.
Das wäre übliches Verhalten von DOIF, Bedingung erfüllt cmd auslösen, Bedingung nochmal erfüllt: nichts tun.

Was genau erwartest Du für ein Verhalten?

Schau Dir die Beschreibung vom attr  do always an.

Gruß Otto
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Wasserwerk33 am 07 August 2021, 18:07:43
Ich würde gerne das sie cmd 4 jeden Abend auslöst und die anderen dann wenn es nötig ist. Die anderen funktionieren auch soweit nur das Abends funktioniert nicht wenn kein anderes Cmd vorher ausgelöst wurde sondern immer noch im cmd 4 steht vom Vorabend.
Mit do always löst der die anderen Bedingungen mehrfach aus. Und wenn ich das dann wieder mit einer Sperre versehe löst er mir das abends wieder nicht aus 😞
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Otto123 am 07 August 2021, 19:11:53
Das ist vielleicht der Fall wo man die leere ELSE am Ende braucht? :-\
DOELSE()
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Wasserwerk33 am 07 August 2021, 20:42:02
Ich probiere es mal damit
Danke für den tip
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: MadMax-FHEM am 07 August 2021, 22:34:01
Andere Frage, wenn du das DOIF auf disabled setzt: wie soll es dann wieder loslegen?

Also "irgendwas" muss doch das DOIF wieder enablen, sonst macht es doch nix mehr...


da bin ich mit einem anderen DOIF aus einem anderen Post durcheinander gekommen!

Gruß, Joachim
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Wasserwerk33 am 08 August 2021, 10:28:25
Ich hatte es auf disable gesetzt. Weil es nicht lief.
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: MadMax-FHEM am 08 August 2021, 10:54:17
Zitat von: Wasserwerk33 am 08 August 2021, 10:28:25
Ich hatte es auf disable gesetzt. Weil es nicht lief.

Hattest du nicht, zumindest war das disable, also set DOIF disable gestern noch im DOIF drin (wenn ich mich nicht total verschaut habe)...
...und auch im Text hattest du geschrieben, dass du das DOIF ja bei OFF disablen willst (und ja auch hast laut "Code" im DOIF)...


Ups, sorry!

Jaja, da bin ich mit einem anderen DOIF aus einem anderen Post durcheinander gekommen!

Gruß, Joachim
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Wasserwerk33 am 08 August 2021, 11:09:07
Also mein neuer Code sieht so aus.

Werde es damit heute abend mal Probieren. Den so wie es aussieht wird es heute Abend um 18:29:42 schalten.

Internals:
   DEF        ([?7:00-18:00] and [LichtsensorOG:lux]> 700 and [LaCrosse_16:temperature:d] > 17 and [?myTwilight:azimuth] > 70 and [myTwilight:azimuth] < 269 and [?Wetter:weather] =~ "Nebel|heiter|klar|sonnig|wolkig" and [?Astro:ObsSeason] =~ "Frühling|Sommer|Herbst") (set Sonnenschutz_OG_runter trigger)

DOELSEIF

([?7:00-18:00] and [LichtsensorOG:lux]> 700 and [LaCrosse_16:temperature:d] > 25) (set Sonnenschutz_OG_runter trigger)

DOELSEIF

([?8:00-18:20] and ([LichtsensorOG:lux]< 20 or [?myTwilight:azimuth] > 270 or [?Wetter:weather] =~ "regen|stark bewölkt|Regenschauer|bewölkt|bedeckt")) (set Sonnenschutz_OG_hoch trigger)

DOELSEIF

([({twilight("myTwilight","ss","16:30","18:30")}-120+int(rand(600)))])
(set OG_ganz_runter trigger)

DOELSE
()
   FUUID      60788fbf-f33f-87a8-83d4-99553dcc5d5c6558
   MODEL      FHEM
   NAME       Jalousie_OG
   NOTIFYDEV  LaCrosse_16,LichtsensorOG,myTwilight,global
   NR         34
   NTFY_ORDER 50-Jalousie_OG
   STATE      cmd_5
   TYPE       DOIF
   VERSION    24434 2021-05-13 20:27:41
   READINGS:
     2021-08-08 11:08:44   Device          myTwilight
     2021-08-07 20:42:50   cmd             5
     2021-08-07 20:42:50   cmd_event       Jalousie_OG
     2021-08-07 20:42:50   cmd_nr          5
     2021-08-08 11:04:43   e_LaCrosse_16_temperature 18.4
     2021-08-08 11:08:44   e_myTwilight_azimuth 128.34
     2021-08-07 20:42:46   mode            enabled
     2021-08-07 20:42:50   state           cmd_5
     2021-08-07 20:42:47   timer_01_c01    08.08.2021 07:00:00
     2021-08-07 20:42:47   timer_02_c01    08.08.2021 18:00:00
     2021-08-07 20:42:47   timer_03_c02    08.08.2021 07:00:00
     2021-08-07 20:42:47   timer_04_c02    08.08.2021 18:00:00
     2021-08-07 20:42:47   timer_05_c03    08.08.2021 08:00:00
     2021-08-07 20:42:47   timer_06_c03    08.08.2021 18:20:00
     2021-08-07 20:42:47   timer_07_c04    08.08.2021 18:29:42
   Regex:
     accu:
     collect:
     cond:
       LaCrosse_16:
         0:
           temperature ^LaCrosse_16$:^temperature:
         1:
           temperature ^LaCrosse_16$:^temperature:
         2:
         3:
       LichtsensorOG:
         0:
           lux        ^LichtsensorOG$:^lux:
         1:
           lux        ^LichtsensorOG$:^lux:
         2:
           lux        ^LichtsensorOG$:^lux:
       myTwilight:
         0:
           azimuth    ^myTwilight$:^azimuth:
         1:
         2:
         3:
   attr:
     cmdState:
     wait:
       0:
         120
       1:
         60
       2:
         600
       3:
         0
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'LichtsensorOG','lux')> 700 and ::ReadingValDoIf($hash,'LaCrosse_16','temperature','','d') > 17 and ::ReadingValDoIf($hash,'myTwilight','azimuth') > 70 and ::ReadingValDoIf($hash,'myTwilight','azimuth') < 269 and ::ReadingValDoIf($hash,'Wetter','weather') =~ "Nebel|heiter|klar|sonnig|wolkig" and ::ReadingValDoIf($hash,'Astro','ObsSeason') =~ "Frühling|Sommer|Herbst"
     1          ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'LichtsensorOG','lux')> 700 and ::ReadingValDoIf($hash,'LaCrosse_16','temperature','','d') > 25
     2          ::DOIF_time($hash,4,5,$wday,$hms) and (::ReadingValDoIf($hash,'LichtsensorOG','lux')< 20 or ::ReadingValDoIf($hash,'myTwilight','azimuth') > 270 or ::ReadingValDoIf($hash,'Wetter','weather') =~ "regen|stark bewölkt|Regenschauer|bewölkt|bedeckt")
     3          ::DOIF_time_once($hash,6,$wday)
   days:
   do:
     0:
       0          set Sonnenschutz_OG_runter trigger
     1:
       0          set Sonnenschutz_OG_runter trigger
     2:
       0          set Sonnenschutz_OG_hoch trigger
     3:
       0          set OG_ganz_runter trigger
     4:
       0         
   helper:
     DEVFILTER  ^global$|^LaCrosse_16$|^myTwilight$|^LichtsensorOG$
     NOTIFYDEV  global|LaCrosse_16|myTwilight|LichtsensorOG
     event      azimuth: 128.34,elevation: 42.89,twilight: 100,twilight_weather: 30,compasspoint: east-southeast
     globalinit 1
     last_timer 7
     sleeptimer -1
     timerdev   myTwilight
     timerevent azimuth: 128.34,elevation: 42.89,twilight: 100,twilight_weather: 30,compasspoint: east-southeast
     triggerDev myTwilight
     timerevents:
       azimuth: 128.34
       elevation: 42.89
       twilight: 100
       twilight_weather: 30
       compasspoint: east-southeast
     timereventsState:
       azimuth: 128.34
       elevation: 42.89
       twilight: 100
       twilight_weather: 30
       compasspoint: east-southeast
     triggerEvents:
       azimuth: 128.34
       elevation: 42.89
       twilight: 100
       twilight_weather: 30
       compasspoint: east-southeast
     triggerEventsState:
       azimuth: 128.34
       elevation: 42.89
       twilight: 100
       twilight_weather: 30
       compasspoint: east-southeast
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
   intervalfunc:
   intervaltimer:
   localtime:
     0          1628398800
     1          1628438400
     2          1628398800
     3          1628438400
     4          1628402400
     5          1628439600
     6          1628440182
   readings:
     all         LichtsensorOG:lux LaCrosse_16:temperature myTwilight:azimuth
   realtime:
     0          07:00:00
     1          18:00:00
     2          07:00:00
     3          18:00:00
     4          08:00:00
     5          18:20:00
     6          18:29:42
   time:
     0          7:00
     1          18:00:00
     2          7:00
     3          18:00:00
     4          8:00
     5          18:20:00
     6          ({twilight("myTwilight","ss","16:30","18:30")}-120+int(rand(600)))
   timeCond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
   timers:
     3           6
   trigger:
   triggertime:
     1628438400:
       localtime  1628438400
       hash:
     1628439600:
       localtime  1628439600
       hash:
     1628440182:
       localtime  1628440182
       hash:
   uiState:
   uiTable:
Attributes:
   room       Logo
   wait       120:60:600:0
Titel: Antw:Jalousie schaltete im Winter richtig nun schaltet sie mehrfach.
Beitrag von: Wasserwerk33 am 03 Juni 2022, 11:40:27
Hallo Leute,

So im Winter hat meine Doif super geschaltet mit

DOELSE
()


nur leider löst er nun dauerhaft aus, so das die Jalousien ganz runterfahren. Hat jemand vielleicht noch eine Idee wie es angehen kann ohne das sie dauerhaft schalten, oder halt eben bei schlechtem wetter garnicht fahren, also abends, weil sich der CMD nicht geändert hat?

Hatte auch schon die Temperatur mit Fragezeichen davor gesetzt dann schaltet sie garnicht mehr. Weil ich dann ja keinen Trigger punkt mehr richtig??

Danke für eure Hilfe
Titel: Antw:Jalousie schaltete im Winter richtig nun schaltet sie mehrfach.
Beitrag von: Damian am 04 Juni 2022, 17:52:21
Zitat von: Wasserwerk33 am 03 Juni 2022, 11:40:27
Hallo Leute,

So im Winter hat meine Doif super geschaltet mit

DOELSE
()


nur leider löst er nun dauerhaft aus, so das die Jalousien ganz runterfahren. Hat jemand vielleicht noch eine Idee wie es angehen kann ohne das sie dauerhaft schalten, oder halt eben bei schlechtem wetter garnicht fahren, also abends, weil sich der CMD nicht geändert hat?

Hatte auch schon die Temperatur mit Fragezeichen davor gesetzt dann schaltet sie garnicht mehr. Weil ich dann ja keinen Trigger punkt mehr richtig??

Danke für eure Hilfe

DOELSE () mit vielen Bedingung ist immer gefährlich, weil jeder Trigger der zu einer unwahren Bedingung führt DOELSE auslöst.
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Wasserwerk33 am 04 Juni 2022, 18:03:47
Deswegen habe ich es teilweise schon zur Probe zwischen weggenommen. Dann schaltet sie leider aber bei schlechtem Wetter nicht mehr abends.

Mmhh

Vielleicht noch eine Idee?

Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Per am 04 Juni 2022, 18:58:27
Statt dem DOELSE könntest du
DOELSIF ([06:00]) ()
nehmen. Damit hättest du einen festen Reset pro Tag, ohne dass die anderen Trigger falsch abbiegen.
Titel: Antw:Jalousie schaltet nicht immer im CMD 3
Beitrag von: Wasserwerk33 am 04 Juni 2022, 19:32:24
Danke

Das probiere ich mal aus.

Melde mich ob es besser klappt.