Hallo zusammen,
ich habe meine alte FHEM Installation auf neue Hardware umgezogen.
Geräte von alter fhem.cfg auf die neue Installation übertragen, aber leider funktioniert das DOIF nicht mehr.
Das Anschalten der LEDs funktioniert zuverlässig, aber das Ausschalten meistens nicht.
So sieht das List für das DOIF aus:
Internals:
DEF ([EG_BWM_BAD:"presence"]) (set EG_Bad dim 99) DOELSEIF ([EG_BWM_BAD:"noPresence"]) (set EG_Bad dim 0)
FUUID 61b99b43-f33f-0ca3-7f6d-3080ba32ba4947ef
MODEL FHEM
NAME di_EG_Licht_Bad
NOTIFYDEV global,EG_BWM_BAD
NR 224
NTFY_ORDER 50-di_EG_Licht_Bad
STATE cmd_1
TYPE DOIF
VERSION 26444 2022-09-25 16:29:19
eventCount 61
READINGS:
2022-11-01 16:53:55 Device EG_BWM_BAD
2022-11-01 16:50:22 cmd 1
2022-11-01 16:50:22 cmd_event EG_BWM_BAD
2022-11-01 16:50:22 cmd_nr 1
2022-11-01 16:53:55 e_EG_BWM_BAD_events noPresence,1.PRESENCE_DETECTION_STATE: noPresence,presence: noPresence,hmstate: noPresence
2022-11-01 16:50:22 state cmd_1
Regex:
accu:
collect:
cond:
EG_BWM_BAD:
0:
&STATE ^EG_BWM_BAD$
1:
&STATE ^EG_BWM_BAD$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('EG_BWM_BAD',$hash,'presence',1)
1 ::EventDoIf('EG_BWM_BAD',$hash,'noPresence',1)
do:
0:
0 set EG_Bad dim 99
1:
0 set EG_Bad dim 0
2:
helper:
NOTIFYDEV global,EG_BWM_BAD
event presence: noPresence
globalinit 1
last_timer 0
sleeptimer -1
timerdev EG_BWM_BAD
timerevent presence: noPresence
triggerDev EG_BWM_BAD
timerevents:
noPresence
1.PRESENCE_DETECTION_STATE: noPresence
presence: noPresence
hmstate: noPresence
timereventsState:
state: noPresence
1.PRESENCE_DETECTION_STATE: noPresence
presence: noPresence
hmstate: noPresence
triggerEvents:
noPresence
1.PRESENCE_DETECTION_STATE: noPresence
presence: noPresence
hmstate: noPresence
triggerEventsState:
state: noPresence
1.PRESENCE_DETECTION_STATE: noPresence
presence: noPresence
hmstate: noPresence
hmccu:
internals:
perlblock:
readings:
trigger:
all EG_BWM_BAD
uiState:
uiTable:
Attributes:
checkReadingEvent 1
disable 0
So sieht der Event-Monitor aus als das Licht anging:
2022-11-01 16:50:22 ZWave EG_Bad dim 0
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_nr: 2
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd: 2
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_event: EG_BWM_BAD
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_2
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD rssidevice: -73
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD hmstate: noPresence
2022-11-01 16:50:22 ZWave EG_Bad dim 99
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_nr: 1
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd: 1
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_event: EG_BWM_BAD
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_1
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD presence
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD 1.PRESENCE_DETECTION_STATE: presence
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD presence: presence
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD hmstate: presence
2022-11-01 16:50:22 ZWave EG_Bad dim 99
2022-11-01 16:50:22 ZWave EG_Bad reportedState: dim 99
Und so als es nicht ausging, obwohl es hätte ausgehen sollen:
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD hmstate: presence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD noPresence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD 1.PRESENCE_DETECTION_STATE: noPresence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD presence: noPresence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD hmstate: noPresence
Im zugehörigen HMCCUDEV wird der Status immer schön von noPresence auf presence geändert.
So sieht das List des Bewegungsmelders aus:
Internals:
DEF EG_BWM_BAD defaults
FUUID 61b995d6-f33f-0ca3-c901-cffb1c419aa0f45d
IODev d_ccu
NAME EG_BWM_BAD
NR 222
STATE Status: noPresence Helligkeit: 4.2 Erkennung aktiv: on
TYPE HMCCUDEV
ccuaddr 000C1D898D6163
ccudevstate active
ccuif HmIP-RF
ccuname EG_BWM_BAD
ccurolectrl PRESENCEDETECTOR_TRANSCEIVER
ccurolestate PRESENCEDETECTOR_TRANSCEIVER
ccusubtype SPI
ccutype HmIP-SPI
eventCount 226
firmware 1.4.0
readonly no
READINGS:
2022-11-01 16:53:55 1.ILLUMINATION 4.2
2022-11-01 16:53:55 1.ILLUMINATION_STATUS NORMAL
2022-11-01 16:53:55 1.PRESENCE_DETECTION_ACTIVE on
2022-11-01 16:53:55 1.PRESENCE_DETECTION_STATE noPresence
2022-10-31 09:10:37 IODev d_ccu
2022-11-01 16:53:55 activity alive
2022-11-01 16:53:55 battery ok
2022-11-01 16:53:55 brightness 4.2
2022-11-01 16:53:55 control on
2022-11-01 16:53:55 detection on
2022-11-01 16:53:55 devstate ok
2022-11-01 16:53:55 hmstate noPresence
2022-11-01 16:53:55 presence noPresence
2022-11-01 16:53:55 rssidevice -72
2022-10-31 18:20:26 rssipeer -72
2022-11-01 16:53:55 sabotage false
2022-11-01 16:53:55 state noPresence
2022-11-01 16:53:55 voltage 2.8
hmccu:
channels 4
detect 1
devspec EG_BWM_BAD
forcedev 0
nodefaults 1
role 0:MAINTENANCE,1:PRESENCEDETECTOR_TRANSCEIVER,2:STATE_RESET_RECEIVER,3:ALARM_COND_SWITCH_TRANSMITTER
setDefaults 0
cmdlist:
get
set detection:inactive,active reset:noArg toggle:noArg
control:
chn 1
dpt PRESENCE_DETECTION_ACTIVE
dp:
0.CONFIG_PENDING:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.DUTY_CYCLE:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.ERROR_CODE:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.INSTALL_TEST:
VALUES:
NVAL true
ONVAL true
OSVAL true
OVAL true
SVAL true
VAL true
0.LOW_BAT:
VALUES:
NVAL 0
ONVAL 0
OSVAL ok
OVAL 0
SVAL ok
VAL 0
0.OPERATING_VOLTAGE:
VALUES:
NVAL 2.8
ONVAL 2.8
OSVAL 2.8
OVAL 2.8
SVAL 2.8
VAL 2.8
0.OPERATING_VOLTAGE_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
0.RSSI_DEVICE:
VALUES:
NVAL -72
ONVAL -72
OSVAL -72
OVAL -72
SVAL -72
VAL -72
0.RSSI_PEER:
VALUES:
NVAL -72
ONVAL -71
OSVAL -71
OVAL 185
SVAL -72
VAL -72
0.SABOTAGE:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.UNREACH:
VALUES:
NVAL 0
ONVAL 0
OSVAL alive
OVAL 0
SVAL alive
VAL 0
0.UPDATE_PENDING:
VALUES:
NVAL false
ONVAL false
OSVAL false
OVAL false
SVAL false
VAL false
1.CURRENT_ILLUMINATION:
VALUES:
NVAL 48.400000
ONVAL 48.400000
OSVAL 48.4
OVAL 48.400000
SVAL 48.4
VAL 48.400000
1.CURRENT_ILLUMINATION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
1.ILLUMINATION:
VALUES:
NVAL 4.2
ONVAL 4.2
OSVAL 4.2
OVAL 4.2
SVAL 4.2
VAL 4.2
1.ILLUMINATION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
1.PRESENCE_DETECTION_ACTIVE:
VALUES:
NVAL 1
ONVAL 1
OSVAL on
OVAL 1
SVAL on
VAL 1
1.PRESENCE_DETECTION_STATE:
VALUES:
NVAL 0
ONVAL 1
OSVAL presence
OVAL 1
SVAL noPresence
VAL 0
roleCmds:
get:
set:
detection:
channel 1
role PRESENCEDETECTOR_TRANSCEIVER
subcount 1
syntax V:PRESENCE_DETECTION_ACTIVE:#detection=inactive,active
usage detection {inactive,active}
subcmd:
000:
args inactive,active
dpt PRESENCE_DETECTION_ACTIVE
fnc
max 1
min 0
parname detection
partype 1
ps VALUES
scn 000
unit
look:
active 1
inactive 0
reset:
channel 1
role PRESENCEDETECTOR_TRANSCEIVER
subcount 1
syntax V:RESET_PRESENCE:true
usage reset
subcmd:
000:
args true
dpt RESET_PRESENCE
fnc
max 1
min 0
parname RESET_PRESENCE
partype 3
ps VALUES
scn 000
unit
state:
chn 1
dpt PRESENCE_DETECTION_STATE
Attributes:
IODev d_ccu
alias EG_BWM_BAD
ccureadingfilter (^PRESENCE|^ILLUMINATION|^LOW_BAT)
ccureadingformat datapoint
ccureadingname 0.(LOWBAT|LOW_BAT):+battery
event-on-change-reading .*
event-on-update-reading hmstate
eventMap /datapoint 1.RESET_PRESENCE 1:reset/datapoint 1.PRESENCE_DETECTION_ACTIVE 1:on/datapoint 1.PRESENCE_DETECTION_ACTIVE 0:off
hmstatevals SABOTAGE!(1|true):sabotage
icon message_presence
room CUL_HM,ioBroker
stateFormat Status: 1.PRESENCE_DETECTION_STATE Helligkeit: 1.ILLUMINATION Erkennung aktiv: 1.PRESENCE_DETECTION_ACTIVE
stripnumber 1
substitute PRESENCE_DETECTION_STATE!(true|1):presence,(false|0):noPresence;PRESENCE_DETECTION_ACTIVE!(0|false):off,(1|true):on
webCmd control
widgetOverride control:uzsuToggle,off,on
Wie kann ich das beheben?
Viele Grüße
Peter
Ohne do always-Attribut arbeitest du mit Zustandsauswertung. Das Bedeutet, dass der gleiche Zweig nicht wiederholt wird. Aus dem List sieht es so aus, als wenn presence und onpresence zum gleichen Zeitpunkt kommen. Wenn also der Zustand cmd2 erreicht ist, dann muss als nächstes cmd1 kommen.
Das komische ist, dass das zuvor über Jahre funktioniert hat.
Aber jetzt ist natürlich die neustes Version FHEM installiert und alle Module auf dem neuesten Stand.
Genau genommen handelt es sich gar nicht um einen Bewegungsmelder, sondern um einen Präsenzmelder.
Für mich sieht es beim nochmaligen Versuch schon so aus, als ob sich Presence und noPresence abwechseln.
Präsenz:
2022-11-01 18:56:37 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd_nr: 1
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd: 1
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd_event: EG_BWM_Eingang
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd_1
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang 1.ILLUMINATION: 0.0
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang brightness: 0.0
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang presence
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang 1.PRESENCE_DETECTION_STATE: presence
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang presence: presence
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang hmstate: presence
2022-11-01 18:56:38 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:56:38 ZWave EG_Eingang_Spots reportedState: dim 99
Keine Präsenz mehr:
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang rssidevice: -85
2022-11-01 18:58:42 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd_nr: 1
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd: 1
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd_event: EG_BWM_Eingang
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd_1
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang noPresence
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang 1.PRESENCE_DETECTION_STATE: noPresence
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang presence: noPresence
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang hmstate: noPresence
2022-11-01 18:58:43 Neuron unipi ai_2: 2.25954901476999
2022-11-01 18:58:43 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:58:43 ZWave EG_Eingang_Spots reportedState: dim 99
Der keine Präsenz Fall wird aber auch als cmd1 interpretiert.
Tja. In:
HMCCUDEV EG_BWM_Eingang presence: noPresence
kommt das Wort presence zum Einschalten vor ;)
([EG_BWM_BAD:"presence$"]) (set EG_Bad dim 99) DOELSEIF ([EG_BWM_BAD:"noPresence$"]) (set EG_Bad dim 0)
sollte funktionieren.
Wenn es früher funktioniert hat, dann muss es andere Events gegeben haben.
Vielen Dank für die superschnelle Hilfe.
Jetzt klappt es wieder. Ggf. hat sich auch beim HMCCUDEV was geändert.