Jalousie schaltet nicht immer im CMD 3

Begonnen von Wasserwerk33, 07 August 2021, 15:37:42

Vorheriges Thema - Nächstes Thema

Wasserwerk33

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wasserwerk33

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 😞

Otto123

Das ist vielleicht der Fall wo man die leere ELSE am Ende braucht? :-\
DOELSE()
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wasserwerk33

Ich probiere es mal damit
Danke für den tip

MadMax-FHEM

#5
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
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)

Wasserwerk33

Ich hatte es auf disable gesetzt. Weil es nicht lief.

MadMax-FHEM

#7
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
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)

Wasserwerk33

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

Wasserwerk33

#9
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

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

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?


Per

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.

Wasserwerk33

Danke

Das probiere ich mal aus.

Melde mich ob es besser klappt.