seltsames Verhalten mit HM-LC-BL1PBU-FM und DoIf

Begonnen von ms_steini, 28 August 2019, 06:34:13

Vorheriges Thema - Nächstes Thema

ms_steini

Hallo zusammen,

ich habe mittlerweile 17 HM-LC-BL1PBU-FM verbaut und bin auch super zufrieden damit.
Leider habe kürzlich ein Verhalten in Verbindung mit einem DoIf festgestellt welches mir überhaupt nicht gefällt.

HM-LC-BL1PBU-FM Schalter-Nutzung: Wippe runter, Rollo fährt runter, während dessen Wippe rauf, Rollo stoppt .... und anders herum funktioniert es auch.

Damit morgens und abends die Rollos mit Berücksichtigung der Helligkeit selbständig rauf und runter fahren habe ich ein Dummy und ein DoIf erstellt.

Dummy
defmod DUMMY_Rollo.Gruppe_2 dummy
attr DUMMY_Rollo.Gruppe_2 DbLogExclude .*
attr DUMMY_Rollo.Gruppe_2 alias Gruppe 2 Einstellungen
attr DUMMY_Rollo.Gruppe_2 group Rollos
attr DUMMY_Rollo.Gruppe_2 icon dmy
attr DUMMY_Rollo.Gruppe_2 readingList Bereich auf_WE auf_von auf_bis auf_brightness zu_von zu_bis zu_brightness Rollos
attr DUMMY_Rollo.Gruppe_2 room Logik
attr DUMMY_Rollo.Gruppe_2 setList Bereich auf_WE auf_von auf_bis auf_brightness zu_von zu_bis zu_brightness Rollos
attr DUMMY_Rollo.Gruppe_2 stateFormat Auf WE: auf_WE | Auf: auf_von - auf_bis | Zu: zu_von - zu_bis | Auf/Zu Lux: auf_brightness / zu_brightness | Bereich

setstate DUMMY_Rollo.Gruppe_2 Auf WE: 07:00 | Auf: 06:00 - 07:00 | Zu: 20:00 - 23:00 | Auf/Zu Lux: 0.5 / 0.5 | EG Rollos Alle
setstate DUMMY_Rollo.Gruppe_2 2018-10-08 20:38:41 Bereich EG Rollos Alle
setstate DUMMY_Rollo.Gruppe_2 2018-09-19 13:52:15 Rollos EG.Rollos
setstate DUMMY_Rollo.Gruppe_2 2018-10-08 19:39:19 auf_WE 07:00
setstate DUMMY_Rollo.Gruppe_2 2018-10-08 19:40:01 auf_bis 07:00
setstate DUMMY_Rollo.Gruppe_2 2018-09-17 14:31:50 auf_brightness 0.5
setstate DUMMY_Rollo.Gruppe_2 2018-09-17 14:31:50 auf_von 06:00
setstate DUMMY_Rollo.Gruppe_2 2018-10-08 18:36:43 state EG Rollos Alle
setstate DUMMY_Rollo.Gruppe_2 2018-10-08 19:48:34 zu_bis 23:00
setstate DUMMY_Rollo.Gruppe_2 2018-09-17 14:31:50 zu_brightness 0.5
setstate DUMMY_Rollo.Gruppe_2 2018-09-17 14:31:50 zu_von 20:00


DoIf
defmod DOIF_Rollo.Gruppe_2 DOIF ([Brightness_Sensor:brightness] <= [DUMMY_Rollo.Gruppe_2:zu_brightness] and [?[DUMMY_Rollo.Gruppe_2:zu_von]-[DUMMY_Rollo.Gruppe_2:zu_bis]] or [[DUMMY_Rollo.Gruppe_2:zu_bis]]) (set [DUMMY_Rollo.Gruppe_2:Rollos] zu)\
DOELSEIF ([[DUMMY_Rollo.Gruppe_2:auf_WE]|WE]) (set [DUMMY_Rollo.Gruppe_2:Rollos] auf)\
DOELSEIF ([Brightness_Sensor:brightness] >= [DUMMY_Rollo.Gruppe_2:auf_brightness] and [?[DUMMY_Rollo.Gruppe_2:auf_von]-[DUMMY_Rollo.Gruppe_2:auf_bis]|AT] or [[DUMMY_Rollo.Gruppe_2:auf_bis]|AT]) (set [DUMMY_Rollo.Gruppe_2:Rollos] auf)
attr DOIF_Rollo.Gruppe_2 DbLogExclude .*
attr DOIF_Rollo.Gruppe_2 alias Fahrzeiten Gruppe 2 ausführen
attr DOIF_Rollo.Gruppe_2 devStateIcon auf:fts_shutter_allup@#e56524 zu:fts_shutter_allup@green
attr DOIF_Rollo.Gruppe_2 eventMap cmd_1:zu cmd_2:auf cmd_3:auf
attr DOIF_Rollo.Gruppe_2 group Rollos
attr DOIF_Rollo.Gruppe_2 icon helper_doif
attr DOIF_Rollo.Gruppe_2 room Logik
attr DOIF_Rollo.Gruppe_2 weekdays So,Mo,Di,Mi,Do,Fr,Sa,WE,AT


Jetzt das seltsame Verhalten,
greift z.B. abends das DoIf und die Rollos fahren runter und ich während dessen auf die Wippe eines HM-LC-BL1PBU-FM nach oben drücke um das herunterfahren zu stoppen, stoppt auch das Rollo kurz und fährt dann aber SOFORT WIEDER HOCH.
Es sollte doch eigentlich NUR stoppen und nichts weiter tun.


Dieses Verhalten habe ich allerdings nur bei EINEM HM-LC-BL1PBU-FM ( EG.Rollo.Wohnzimmer.Terrassentuer ) festgestellt, alle anderen funktionieren normal.
Alle HM-LC-BL1PBU-FM sind gleich configuriert bis auf driveDown und driveUp

Hier noch die Gruppe der Rollos:
defmod EG.Rollos structure room EG.Rollo.Buero.Fenster EG.Rollo.Diele_1.Fenster EG.Rollo.Diele_2.Fenster EG.Rollo.G_WC.Fenster EG.Rollo.Esszimmer.Fenster EG.Rollo.Wohnzimmer.Fenster EG.Rollo.Esszimmer.Tuer EG.Rollo.Wohnzimmer.Terrassentuer EG.Rollo.Wohnzimmer.Terrassenfenster

Hat jemand eine Idee was zu tun ist?

VIELEN DANK





Otto123

#1
Hi,

vergleich doch mal die Register:
get EG.Rollo.Wohnzimmer.Terrassentuer regTable
mit den anderen.
damit Du auch die internen Tasten siehst musst Du vorher dies ausführen.
set EG.Rollo.Wohnzimmer.Terrassentuer regSet intKeyVisib visib

Ich meine was Du als "Fehler" beschreibst, ist nicht standard Verhalten.

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

ms_steini

Hallo Otto,

ja das hab ich natürlich schon gemacht, hatte mehrere regTable von HM-LC-BL1PBU-FM verglichen.
wie gesagt, die sind alle gleich bis auf driveDown und driveUp.

Otto123

Und wenn Du die mal postest?
get EG.Rollo.Wohnzimmer.Terrassentuer regTable
Vielleicht sehen ja ein paar Augen mehr etwas anderes?  ;)
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

ms_steini

#4
EG.Rollo.Wohnzimmer.Terrassentuer type:blindActuator -
list:peer register         :value
   0:      confBtnTime      :permanent
   0:      intKeyVisib      :visib
   0:      localResDis      :off
   0:      pairCentral      :0x071267
   1:      driveDown        :20 s
   1:      driveTurn        :0.5 s
   1:      driveUp          :22 s
   1:      refRunCounter    :0
   1:      sign             :off
   1:      statusInfoMinDly :2 s
   1:      statusInfoRandom :1 s
   1:      transmitTryMax   :6
                       self01                          self02                         
                       lg              sh              lg              sh             
ActionType             jmpToTarget     jmpToTarget     jmpToTarget     jmpToTarget     
BlJtDlyOff             refOff          refOff          dlyOn           dlyOn           
BlJtDlyOn              dlyOff          dlyOff          refOn           refOn           
BlJtOff                dlyOff          dlyOff          dlyOn           dlyOn           
BlJtOn                 dlyOff          dlyOff          dlyOn           dlyOn           
BlJtRampOff            rampOff         rampOff         off             off             
BlJtRampOn             on              on              rampOn          rampOn         
BlJtRefOff             rampOff         rampOff         off             off             
BlJtRefOn              on              on              rampOn          rampOn         
CtDlyOff               geLo            geLo            geLo            geLo           
CtDlyOn                geLo            geLo            geLo            geLo           
CtOff                  geLo            geLo            geLo            geLo           
CtOn                   geLo            geLo            geLo            geLo           
CtRampOff              geLo            geLo            geLo            geLo           
CtRampOn               geLo            geLo            geLo            geLo           
CtRefOff               geLo            geLo            geLo            geLo           
CtRefOn                geLo            geLo            geLo            geLo           
CtValHi                100             100             100             100             
CtValLo                50              50              50              50             
DriveMode              direct          direct          direct          direct         
MaxTimeF          [s]  0.4             unused          0.4             unused         
MultiExec              on              off             on              off             
OffDly            [s]  0               0               0               0               
OffLevel          [%]  0               0               0               0               
OffTime                unused          unused          unused          unused         
OffTimeMode            absolut         absolut         absolut         absolut         
OnDly             [s]  0               0               0               0               
OnLevel           [%]  100             100             100             100             
OnTime                 unused          unused          unused          unused         
OnTimeMode             absolut         absolut         absolut         absolut

Pfriemler

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Otto123

Hi,

ich finde keinen Unterschied  ::)
Gibt es irgendein Gerät was diesen Aktor über einen anderen Weg steuert? DOIF notify oder dergleichen?
Mal grep als cmdalias definiert und nach dem Aktor gesucht?

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

amenomade

Nur mal zum DOIF:

Was soll "set [DUMMY_Rollo.Gruppe_2:Rollos] auf" machen? Funktioniert das?
Wie werden die Rollos durch den DOIF gesteuert? Angenommen, dass das obere "set" funktionieren könnte, DUMMY_Rollo.Gruppe_2 ist ja nur ein dummy. Das Setzen eines dummys bewegt die Rollos nicht.
Zitat von: Otto123 am 28 August 2019, 21:21:35
Gibt es irgendein Gerät was diesen Aktor über einen anderen Weg steuert? DOIF notify oder dergleichen?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ms_steini

#8
@Otto, nein... für alle meine Rollos habe ich NUR die Dummy's und die DoIf's.
Betroffene Aktoren bzw. Sensoren sind nur die HM-LC-BL1PBU-FM Rolladenschalter und ein HM-SEN-LI-O Helligkeitssensor.

@amenomade
Ja das funktioniert.
Im Dummy "DUMMY_Rollo.Gruppe_2:Rollos" sind mit "setstate DUMMY_Rollo.Gruppe_2 Rollos EG.Rollos" eine Gruppe von Rollos definiert.
EG.Rollos = "defmod EG.Rollos structure room EG.Rollo.Buero.Fenster EG.Rollo.Diele_1.Fenster EG.Rollo.Diele_2.Fenster EG.Rollo.G_WC.Fenster EG.Rollo.Esszimmer.Fenster EG.Rollo.Wohnzimmer.Fenster EG.Rollo.Esszimmer.Tuer EG.Rollo.Wohnzimmer.Terrassentuer EG.Rollo.Wohnzimmer.Terrassenfenster"

(set [DUMMY_Rollo.Gruppe_2:Rollos] zu) ist in dem Fall gleichzusetzen mit
(set EG.Rollo.Buero.Fenster, EG.Rollo.Diele_1.Fenster, EG.Rollo.Diele_2.Fenster, EG.Rollo.G_WC.Fenster, EG.Rollo.Esszimmer.Fenster EG.Rollo.Wohnzimmer.Fenster, EG.Rollo.Esszimmer.Tuer, EG.Rollo.Wohnzimmer.Terrassentuer, EG.Rollo.Wohnzimmer.Terrassenfenster zu)
also alle Rollos im Erdgeschoss.

--------
so, ich habe jetzt alle Rollos einzelnd mal mit einem Test-DoIf getestet.. Sorry, meine Aussage war wohl nicht ganz richtig.
bei einem DoIf  "define TEST DOIF ([08:15])  (set EG.Rollos zu)" fahren alles Rollos runter, jedes Rollo fährt komplett wieder hoch wenn ich am Schalter die Wippe nach oben drücke (sollte eigentlich nur stoppen)
bei einem DoIf  "define TEST DOIF ([08:20])  (set EG.Rollos auf)" fahren alles Rollos rauf,  jedes Rollo stoppt die fahrt wenn ich am Schalter die Wippe nach unten drücke (also wie gewünscht)

Ich habe das jetzt bestimmt 4 oder 5 mal getestet um mir auch über das Verhalten ganz sicher zu sein.
Beim ZU Fahren stoppt die Fahrt nicht beim drücken der Wippe des Schalters, sondern die Rollos fahren sofort wieder komplett auf,
beim AUF Fahren stoppt die Fahrt beim drücken der Wippe des Schalters.
Wo macht Homematic da einen Unterschied ? 


Ich würde mal vermuten das es evtl. mit folgenden Einstellungen zu tun hat:
                       self01                          self02                         
                       lg              sh              lg              sh             
BlJtDlyOff             refOff          refOff          dlyOn           dlyOn           
BlJtDlyOn              dlyOff          dlyOff          refOn           refOn           
BlJtOff                dlyOff          dlyOff          dlyOn           dlyOn           
BlJtOn                 dlyOff          dlyOff          dlyOn           dlyOn           
BlJtRampOff            rampOff         rampOff         off             off             
BlJtRampOn             on              on              rampOn          rampOn         
BlJtRefOff             rampOff         rampOff         off             off             
BlJtRefOn              on              on              rampOn          rampOn

Pfriemler

bin wieder dabei  :) ... dass jetzt doch alle gleich reagieren, holt die Sache wieder aus der Mystik heraus.
Trotzdem: die Register sagen eigentlich dass etwas anderes passieren sollte. Aber ich brauche noch etwas mehr Zeit ... stay tuned
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

ms_steini

Achso, was evtl. noch WICHTIG wäre zu erwähnen ist, dass dieses Verhalten nur zutrifft wenn die Ralladenfahrten vom DoIf ausgelöst werden.
Wenn ich die Rollos NUR mit dem Schalter bediene funktionieren sie wie gewünscht.

Taste runter, Rollo fährt runter, Taste rauf, Rollo stoppt... und anders herum

amenomade

#11
Kannst Du bitte ein vollständiges "list" vom DOIF, vom dummy und von der structure posten? Das "list" vom DOIF bitte nachdem die Rollos falsch wieder hochgefahren sind.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ms_steini

@amenomade

würde dir auch ein list von einem Test-DoIf reichen ohne list vom Dummy und ohne list von der structure? Das verhalten ist das gleiche.

defmod TEST DOIF ([11:48]) (set  EG.Rollo.Buero.Fenster zu)

Ich müsste sonst zu viel in meinem DoIf ändern. Wie gesagt, das Verhalten ist bei nur diesem Test-DoIf das gleiche.

ms_steini

OK, jetzt ist mir folgendes aufgefallen, bei Auslösung vom DoIf "defmod TEST DOIF ([11:56])  (set  EG.Rollo.Buero.Fenster zu)" fährt das Rollo runter
und wenn ich anstatt der Wippe NACH OPEN die Wippe NACH UNTEN drücke stoppt das Rollo.

Da ist irgendetwas verdreht ?

amenomade

#14
Zitat von: ms_steini am 29 August 2019, 11:53:44
@amenomade

würde dir auch ein list von einem Test-DoIf reichen ohne list vom Dummy und ohne list von der structure? Das verhalten ist das gleiche.

defmod TEST DOIF ([11:48]) (set  EG.Rollo.Buero.Fenster zu)

Ich müsste sonst zu viel in meinem DoIf ändern. Wie gesagt, das Verhalten ist bei nur diesem Test-DoIf das gleiche.

Das ist kein "list"

"list TEST" im Kommandofeld von Fhem wäre ein "list"

Würde wahrscheinlich nicht reichen, da so ein DOIF wie TEST nur Zeit-getriggert ist. Aber gut, wie Du das Verhalten beschreibst, ist eher das Problem ja in den HM Registers
Wenn Du mit TEST testest, ist aber der andere DOIF disabled?

EDIT: schon mal hier geschaut? https://wiki.fhem.de/wiki/HM-LC-Bl1PBU-FM_Funk-Rollladenaktor_f%C3%BCr_Markenschalter#Tasterverhalten
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus