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
Funktioniert es in der Kommandozeile oder warum glaubst du, dass es ein DOIF Problem ist?
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
Wenn du manuell die gleiche Abfolge machst wie im DOIF und der Fehler tritt da auch auf, ist DOIF nicht die Ursache.
Manuell tritt der Fehler nicht auf, nur bei der automatischen Ausführung durch DOIF.
Dann schau ins Logging, welche Befehle in welcher Reihenfolge gesendet werden.
Und in welcher Reihenfolge das DOIF arbeitet.
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
Was passiert, wenn du den Aktor manuell auf 100% fährst? Also wirklich auf pct 100 und nicht auf down.
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 0
die Rollade heruntergefahren und mit
set GaesteWC.RO pct 100
die 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