HmIP-BROLL-2 fährt nicht korrekt

Begonnen von matkoh, 03 April 2025, 09:48:05

Vorheriges Thema - Nächstes Thema

matkoh

Hallo,

ich steuere meine Rolladen-Aktoren über DOIFs. Unter anderem habe ich einen HmIP-BROLL-2 an einem kleinen Fenster im Gäste-WC, der automatisch über das DOIF nicht korrekt fährt. Die Rollade soll morgens hochgefahren werden. In FHEM wird auch hmstate = open und pct = 100 angezeigt. Tatsächlich ist die Rollade aber nicht komplett hochgefahren. Sie steht bei ca. 80 %. Einfacher Druck auf den Rolladenschalter oben bewirkt nichts. Längerer Druck fährt die Rollade stückweise höher. Open in FHEM funktioniert auch nicht (ist ja angeblich schon offen). Wird aber die Rollade herunter- und dann wieder hochgefahren, wird sie komplett geöffnet. Dabei ist es egal, ob das per Rolladenschalter, über das Gerät in FHEM oder das DOIF passiert.

Ich finde keine Ursache, warum das bei dieser Rollade passiert. Alle anderen Rolladen (allerdings mit den älteren HM-LC-Bl1PBU-FM bestückt) funktionieren reibungslos.
Ich habe bereits den HmIP-BROLL-2 auf Werkseinstellungen zurück gesetzt, aus FHEM gelöscht und neu eingebunden. Die Fahrzeiten habe ich neu ermittelt und eingetragen. Manuelle Fahrt (über Rolladenschalter oder piVCCU oder FHEM) funktionieren normal.

Hier die Details:

List des Geräts in FHEM:
Internals:
   .AttrList  IODev ccuaggregate:textField-long ccucalculate:textField-long ccuflags:multiple-strict,ackState,hideStdReadings,replaceStdReadings,noAutoSubstitute,noBoundsChecking,logCommand,noReadings,trace,simulate,showMasterReadings,showLinkReadings,showDeviceReadings ccureadingfilter:textField-long ccureadingformat:name,namelc,address,addresslc,datapoint,datapointlc ccureadingname:textField-long ccuSetOnChange ccuReadingPrefix devStateFlags ccuget:State,Value ccuscaleval ccuverify:0,1,2 disable:0,1 hmstatevals:textField-long statevals substexcl substitute:textField-long statechannel controlchannel stripnumber traceFilter event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading statedatapoint:select,0.ACTUAL_TEMPERATURE,0.ACTUAL_TEMPERATURE_STATUS,0.CONFIG_PENDING,0.DUTY_CYCLE,0.ERROR_CODE,0.ERROR_OVERHEAT,0.ERROR_OVERLOAD,0.INSTALL_TEST,0.OPERATING_VOLTAGE,0.OPERATING_VOLTAGE_STATUS,0.RSSI_DEVICE,0.RSSI_PEER,0.UNREACH,0.UPDATE_PENDING,1.PRESS_LONG,1.PRESS_LONG_RELEASE,1.PRESS_LONG_START,1.PRESS_SHORT,2.PRESS_LONG,2.PRESS_LONG_RELEASE,2.PRESS_LONG_START,2.PRESS_SHORT,3.ACTIVITY_STATE,3.LEVEL,3.LEVEL_STATUS,3.PROCESS,3.SECTION,3.SECTION_STATUS,3.SELF_CALIBRATION_RESULT,4.ACTIVITY_STATE,4.LEVEL,4.LEVEL_STATUS,4.PROCESS,4.SECTION,4.SECTION_STATUS,5.ACTIVITY_STATE,5.LEVEL,5.LEVEL_STATUS,5.PROCESS,5.SECTION,5.SECTION_STATUS,6.ACTIVITY_STATE,6.LEVEL,6.LEVEL_STATUS,6.PROCESS,6.SECTION,6.SECTION_STATUS,7.WEEK_PROGRAM_CHANNEL_LOCKS controldatapoint:select,0.INSTALL_TEST,3.SELF_CALIBRATION,4.LEVEL,4.STOP,5.LEVEL,5.STOP,6.LEVEL,6.STOP,7.COMBINED_PARAMETER,7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK,7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS
   DEF        0036A0C992084B  sd=3.LEVEL cd=4.LEVEL
   FUUID      67d2970d-f33f-dbcf-babc-6d3c39d6767375d8
   IODev      HMCCU1
   NAME       GaesteWC.RO
   NR         1391
   STATE      open
   TYPE       HMCCUDEV
   ccuaddr    0036A0C992084B
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    GaesteWC.RO
   ccurolectrl SHUTTER_VIRTUAL_RECEIVER
   ccurolestate SHUTTER_TRANSMITTER
   ccusubtype BROLL
   ccutype    HmIP-BROLL-2
   eventCount 4765
   firmware   1.10.16
   readonly   no
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2025-04-03 09:29:09   3.ACTIVITY_STATE STABLE
     2025-04-03 09:29:09   3.LEVEL         open
     2025-04-03 09:29:09   3.LEVEL_STATUS  NORMAL
     2025-04-03 09:29:09   3.PROCESS       STABLE
     2025-04-03 09:29:09   3.SECTION       
     2025-04-03 09:29:09   3.SECTION_STATUS UNKNOWN
     2025-03-13 19:47:52   3.SELF_CALIBRATION_RESULT true
     2025-04-03 09:29:09   4.ACTIVITY_STATE STABLE
     2025-04-03 09:29:09   4.LEVEL         open
     2025-04-03 09:29:09   4.LEVEL_STATUS  NORMAL
     2025-04-03 09:29:09   4.PROCESS       STABLE
     2025-04-03 09:29:09   4.SECTION       4
     2025-04-03 09:29:09   4.SECTION_STATUS NORMAL
     2025-04-03 09:29:09   5.ACTIVITY_STATE STABLE
     2025-04-03 09:29:09   5.LEVEL         closed
     2025-04-03 09:29:09   5.LEVEL_STATUS  NORMAL
     2025-04-03 09:29:09   5.PROCESS       STABLE
     2025-04-03 09:29:09   5.SECTION       0
     2025-04-03 09:29:09   5.SECTION_STATUS NORMAL
     2025-04-03 09:29:09   6.ACTIVITY_STATE STABLE
     2025-04-03 09:29:09   6.LEVEL         closed
     2025-04-03 09:29:09   6.LEVEL_STATUS  NORMAL
     2025-04-03 09:29:09   6.PROCESS       STABLE
     2025-04-03 09:29:09   6.SECTION       0
     2025-04-03 09:29:09   6.SECTION_STATUS NORMAL
     2025-04-03 09:29:09   7.WEEK_PROGRAM_CHANNEL_LOCKS 0
     2025-04-02 20:16:53   Beschattung     nein
     2025-04-03 09:29:09   activity        alive
     2025-04-03 09:29:09   control         open
     2025-04-03 09:29:09   devstate        ok
     2025-04-03 09:29:09   hmstate         open
     2025-04-03 09:29:09   level           open
     2025-04-03 09:29:09   pct             100
     2025-04-03 09:29:09   rssidevice      -77
     2025-04-03 06:53:18   rssipeer        -98
     2025-04-03 09:29:09   state           open
     2025-03-13 19:47:52   voltage         0.0
   hmccu:
     channels   8
     defCDP     4.LEVEL
     defSDP     3.LEVEL
     detect     0
     devspec    0036A0C992084B
     forcedev   0
     nodefaults 0
     role       0:MAINTENANCE,1:KEY_TRANSCEIVER,2:KEY_TRANSCEIVER,3:SHUTTER_TRANSMITTER,4:SHUTTER_VIRTUAL_RECEIVER,5:SHUTTER_VIRTUAL_RECEIVER,6:SHUTTER_VIRTUAL_RECEIVER,7:BLIND_WEEK_PROFILE
     setDefaults 0
     cmdlist:
       get       
       set        calibrate:START,STOP toggle:noArg close:noArg pct open:noArg stop:noArg down up oldLevel:noArg
     control:
       chn        4
       dpt        LEVEL
     dp:
       0.ACTUAL_TEMPERATURE:
         VALUES:
           NVAL       30.0
           ONVAL      29.0
           OSVAL      29.0
           OVAL       29.0
           SVAL       30.0
           VAL        30.0
       0.ACTUAL_TEMPERATURE_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       0.CONFIG_PENDING:
         VALUES:
           NVAL       0
           SVAL       false
           VAL        0
       0.DUTY_CYCLE:
         VALUES:
           NVAL       0
           SVAL       false
           VAL        0
       0.ERROR_CODE:
         VALUES:
           NVAL       0
           SVAL       0
           VAL        0
       0.ERROR_OVERHEAT:
         VALUES:
           NVAL       0
           SVAL       false
           VAL        0
       0.ERROR_OVERLOAD:
         VALUES:
           NVAL       0
           SVAL       false
           VAL        0
       0.INSTALL_TEST:
         VALUES:
           NVAL       1
           SVAL       true
           VAL        1
       0.OPERATING_VOLTAGE:
         VALUES:
           NVAL       0.000000
           SVAL       0.0
           VAL        0.000000
       0.OPERATING_VOLTAGE_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       0.RSSI_DEVICE:
         VALUES:
           NVAL       -77
           ONVAL      -78
           OSVAL      -78
           OVAL       -78
           SVAL       -77
           VAL        -77
       0.RSSI_PEER:
         VALUES:
           NVAL       -98
           ONVAL      -99
           OSVAL      -99
           OVAL       -99
           SVAL       -98
           VAL        -98
       0.UNREACH:
         VALUES:
           NVAL       0
           SVAL       alive
           VAL        0
       0.UPDATE_PENDING:
         VALUES:
           NVAL       0
           SVAL       false
           VAL        0
       3.ACTIVITY_STATE:
         VALUES:
           NVAL       3
           ONVAL      1
           OSVAL      UP
           OVAL       1
           SVAL       STABLE
           VAL        3
       3.LEVEL:
         VALUES:
           NVAL       100
           ONVAL      5
           OSVAL      5
           OVAL       0.05
           SVAL       open
           VAL        1.0
       3.LEVEL_STATUS:
         VALUES:
           NVAL       0
           ONVAL      1
           OSVAL      UNKNOWN
           OVAL       1
           SVAL       NORMAL
           VAL        0
       3.PROCESS:
         VALUES:
           NVAL       0
           ONVAL      1
           OSVAL      NOT_STABLE
           OVAL       1
           SVAL       STABLE
           VAL        0
       3.SECTION:
         VALUES:
           NVAL       
           SVAL       
           VAL       
       3.SECTION_STATUS:
         VALUES:
           NVAL       1
           SVAL       UNKNOWN
           VAL        1
       3.SELF_CALIBRATION_RESULT:
         VALUES:
           NVAL       1
           SVAL       true
           VAL        1
       4.ACTIVITY_STATE:
         VALUES:
           NVAL       3
           ONVAL      1
           OSVAL      UP
           OVAL       1
           SVAL       STABLE
           VAL        3
       4.LEVEL:
         VALUES:
           NVAL       100
           ONVAL      0
           OSVAL      closed
           OVAL       0.0
           SVAL       open
           VAL        1.0
       4.LEVEL_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       4.PROCESS:
         VALUES:
           NVAL       0
           ONVAL      1
           OSVAL      NOT_STABLE
           OVAL       1
           SVAL       STABLE
           VAL        0
       4.SECTION:
         VALUES:
           NVAL       4
           ONVAL      3
           OSVAL      3
           OVAL       3
           SVAL       4
           VAL        4
       4.SECTION_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       5.ACTIVITY_STATE:
         VALUES:
           NVAL       3
           SVAL       STABLE
           VAL        3
       5.LEVEL:
         VALUES:
           NVAL       0
           OVAL       0.000000
           SVAL       closed
           VAL        0.0
       5.LEVEL_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       5.PROCESS:
         VALUES:
           NVAL       0
           SVAL       STABLE
           VAL        0
       5.SECTION:
         VALUES:
           NVAL       0
           SVAL       0
           VAL        0
       5.SECTION_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       6.ACTIVITY_STATE:
         VALUES:
           NVAL       3
           SVAL       STABLE
           VAL        3
       6.LEVEL:
         VALUES:
           NVAL       0
           OVAL       0.000000
           SVAL       closed
           VAL        0.0
       6.LEVEL_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       6.PROCESS:
         VALUES:
           NVAL       0
           SVAL       STABLE
           VAL        0
       6.SECTION:
         VALUES:
           NVAL       0
           SVAL       0
           VAL        0
       6.SECTION_STATUS:
         VALUES:
           NVAL       0
           SVAL       NORMAL
           VAL        0
       7.WEEK_PROGRAM_CHANNEL_LOCKS:
         VALUES:
           NVAL       0
           SVAL       0
           VAL        0
     roleChannels:
       BLIND_WEEK_PROFILE 7,7
       KEY_TRANSCEIVER 1,2,1,2
       MAINTENANCE 0,0
       SHUTTER_TRANSMITTER 3,3
       SHUTTER_VIRTUAL_RECEIVER 4,5,6,4,5,6
     roleCmds:
       get:
       set:
         calibrate:
           channel    3
           ps         VALUES
           role       SHUTTER_TRANSMITTER
           rpc        0
           subcount   1
           syntax     V:SELF_CALIBRATION:#Mode
           usage      calibrate {STOP,START}
           subcmd:
             000:
               args       STOP,START
               dpt        SELF_CALIBRATION
               fnc       
               max        1
               min        0
               parname    Mode
               partype    1
               ps         VALUES
               scn        000
               type       ENUM
               unit       
               look:
                 START      1
                 STOP       0
         close:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:LEVEL:0
           usage      close
           subcmd:
             000:
               args       0
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        000
               type       FLOAT
               unit       100%
         down:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:LEVEL:?delta=-20
           usage      down [delta]
           subcmd:
             000:
               args       -20
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    delta
               partype    2
               ps         VALUES
               scn        000
               type       FLOAT
               unit       100%
         oldLevel:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:LEVEL:1.005
           usage      oldLevel
           subcmd:
             000:
               args       1.005
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        000
               type       FLOAT
               unit       100%
         open:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:LEVEL:100
           usage      open
           subcmd:
             000:
               args       100
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        000
               type       FLOAT
               unit       100%
         pct:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:LEVEL:?level
           usage      pct level
           subcmd:
             000:
               args       
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    level
               partype    2
               ps         VALUES
               scn        000
               type       FLOAT
               unit       100%
         stop:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:STOP:1
           usage      stop
           subcmd:
             000:
               args       1
               dpt        STOP
               fnc       
               max        1
               min        0
               parname    STOP
               partype    3
               ps         VALUES
               scn        000
               type       ACTION
               unit       
         toggle:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:LEVEL:0,100
           usage      toggle
           subcmd:
             000:
               args       0,100
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        000
               type       FLOAT
               unit       100%
         up:
           channel    4
           ps         VALUES
           role       SHUTTER_VIRTUAL_RECEIVER
           rpc        0
           subcount   1
           syntax     V:LEVEL:?delta=+20
           usage      up [delta]
           subcmd:
             000:
               args       +20
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    delta
               partype    2
               ps         VALUES
               scn        000
               type       FLOAT
               unit       100%
     state:
       chn        3
       dpt        LEVEL
Attributes:
   cmdIcon    open:fts_shutter_up stop:fts_shutter_manual close:fts_shutter_down
   room       Gäste-WC,Homematic
   substexcl  pct
   verbose    3
   webCmd     pct:open:close:stop
   widgetOverride pct:slider,0,10,100

Code des DOIF:
## 1
 ([du_Rollo_Modus] eq "FHEM" and [Ro_GaesteWC_fest] eq "nein" and ([{sunrise("CIVIL",1200,"[du_RolloZeit_hoch]")}|8] or [{sunrise("CIVIL",1200,"[du_RolloZeit_hoch_WoE]")}|7]))
  (set GaesteWC.RO.nachts.offen nein, set GaesteWC.RO pct 100)
## 2
 DOELSEIF ([du_Rollo_Modus] eq "FHEM" and [Ro_GaesteWC_fest] eq "nein" and [15:30 - 22:30] and ([Aussen.Bewegung:brightness] < 150 or [AufenthaltBett] eq "vorzeitig" or [AufenthaltBett] eq "ja" or [22:00]) and [GaesteWC.Fenster] eq "open" and [GaesteWC.RO:pct] ne 40)
  (setreading GaesteWC.RO Beschattung nein, set GaesteWC.RO.nachts.offen ja, set GaesteWC.RO pct 40)
## 3
 DOELSEIF ([du_Rollo_Modus] eq "FHEM" and [Ro_GaesteWC_fest] eq "nein" and [15:30 - 22:30] and ([Aussen.Bewegung:brightness] < 150 or [AufenthaltBett] eq "vorzeitig" or [AufenthaltBett] eq "ja" or [22:00]) and [GaesteWC.Fenster] eq "tilted" and [GaesteWC.RO:pct] ne 25)
  (setreading GaesteWC.RO Beschattung nein, set GaesteWC.RO.nachts.offen ja, set GaesteWC.RO pct 25)
## 4
 DOELSEIF ([du_Rollo_Modus] eq "FHEM" and [Ro_GaesteWC_fest] eq "nein" and [15:30 - 22:30] and ([Aussen.Bewegung:brightness] < 150 or [AufenthaltBett] eq "vorzeitig" or [AufenthaltBett] eq "ja" or [22:00]) and [GaesteWC.Fenster] eq "closed" and [GaesteWC.RO:pct] ne 0)
  (setreading GaesteWC.RO Beschattung nein, set GaesteWC.RO.nachts.offen nein, set GaesteWC.RO pct 0)

Hat jemand eine Idee, wo die Ursache liegt? Weitere Informationen liefere ich gerne bei Bedarf.

Vielen Dank im voraus

Matthias

Per

Funktioniert es in der Kommandozeile oder warum glaubst du, dass es ein DOIF Problem ist?

matkoh

Es tritt eben nur auf, nachdem das DOIF die Bedingung 1 ausgeführt hat. Jede manuelle Ausführung funktioniert normal. Wenn die Rollade morgens nicht komplett hochgefahren ist und ich führe aus
set D_Rollo_Automatik_GaesteWC cmd_4
set D_Rollo_Automatik_GaesteWC cmd_1
dann ist die Rollade komplett hochgefahren.

Ich habe allerdings auch keine Erklärung, warum die automatische Ausführung der Bedingung 1 nicht korrekt funktioniert, die manuelle Ausführung der gleichen Bedingung aber schon. Es kann durchaus sein, dass die Ursache des Problems nicht im DOIF selber liegt. Ich habe aber auch keine Idee, wo ich sonst suchen soll.

Matthias

Per

Wenn du manuell die gleiche Abfolge machst wie im DOIF und der Fehler tritt da auch auf, ist DOIF nicht die Ursache.

matkoh

Manuell tritt der Fehler nicht auf, nur bei der automatischen Ausführung durch DOIF.

Per

Dann schau ins Logging, welche Befehle in welcher Reihenfolge gesendet werden.
Und in welcher Reihenfolge das DOIF arbeitet.

matkoh

Hier das Log von gestern Abend und heute morgen:
2025-04-05_20:22:41 D_Rollo_Automatik_GaesteWC cmd_nr: 3
2025-04-05_20:22:41 D_Rollo_Automatik_GaesteWC cmd: 3
2025-04-05_20:22:41 D_Rollo_Automatik_GaesteWC cmd_event: Aussen.Bewegung
2025-04-05_20:22:41 D_Rollo_Automatik_GaesteWC cmd_3
2025-04-05_21:38:47 D_Rollo_Automatik_GaesteWC cmd_nr: 4
2025-04-05_21:38:47 D_Rollo_Automatik_GaesteWC cmd: 4
2025-04-05_21:38:47 D_Rollo_Automatik_GaesteWC cmd_event: GaesteWC.Fenster
2025-04-05_21:38:47 D_Rollo_Automatik_GaesteWC cmd_4
2025-04-06_08:30:01 D_Rollo_Automatik_GaesteWC cmd_nr: 1
2025-04-06_08:30:01 D_Rollo_Automatik_GaesteWC cmd: 1
2025-04-06_08:30:01 D_Rollo_Automatik_GaesteWC cmd_event: timer_2
2025-04-06_08:30:01 D_Rollo_Automatik_GaesteWC cmd_1

Sieht für mich normal aus, so wie beabsichtigt.
Um 20:22 Uhr cmd_3 (Rollade auf 25 %), weil das Fenster gekippt ist. Rollade ist auf Lücke, sieht gut aus.
Um 21:38 Uhr cmd_4 (Rollade auf 0 %), weil das Fenster geschlossen wurde. Rollade ist komplett geschlossen, sieht gut aus.
Um 8:30 Uhr cmd_1, (Rollade auf 100 %), weil Zeitpunkt für die Öffnung erreicht. Rollade ist nicht komplett geöffnet, wie immer beim morgendlichen Öffnen.

Matthias

Christoph Morrison

Was passiert, wenn du den Aktor manuell auf 100% fährst? Also wirklich auf pct 100 und nicht auf down.

matkoh

Für mich ein unerwartetes Ergebnis:

Ausgangssituation ist die nicht komplett hochgefahrene Rollade, die aber mit Level = 100 in FHEM angezeigt wird.
Dann mit
set GaesteWC.RO pct 0die Rollade heruntergefahren und mit
set GaesteWC.RO pct 100die Rollade wieder hochgefahren.

Tatsächlich ist die Rollade nach dieser Aktion nicht komplett hochgefahren. Ich habe weitere Versuche gestartet, auch mit dem Schalter selber.

Dabei habe ich festgestellt, dass der Rolladenmotor scheinbar ein Problem hat. Beim Hochfahren stockt nach kurzer Zeit der Motor und blockiert dann.

Es scheint also kein Problem mit DOIF oder dem Rolladen-Aktor zu sein, sondern ein Defekt des Motors.

Danke für Eure Hilfe. Ich werden den Monteur kontaktieren.

Matthias