Hallo Leute!
Nachdem ich geraume Zeit nach einer Lösung gesucht habe, den oben genannten Dimmer nicht nur via Tastendruck mit dem zuletzt gewählten Dimmer-Wert einzuschalten sondern auch aus FHEM heraus hier meine Lösung für FHEM-Web-UI bzw. GoogleAssistent:
attr <device> eventMap {\
usr => {'^toggle' => '".(ReadingsVal($NAME,"state","on") eq "on" ? "pct 0 0 1.0" : "pct 100.5 0 1.0")."'},\
fw => {'^toggle' => 'toggle'}\
}
Mit dem Level Wert "100.5" wird der letzte eingestellte Wert des Aktors aufgerufen, ganz so wie es auch über einen Tastendruck konfiguriert werden kann. In dem Beispiel ist außerdem eine Ramp-Zeit von einer Sekunde eingestellt. Die "On-Zeit" ist mit Null auf Daueraktiv. Wenn ich also jetzt am Device mit dem Status Icon toggle, wird zwischen aus und dem letzten eingestellten Wert hin und her geschaltet. Für GoogleAssistent sieht das Attribute folgendermaßen aus:
attr <device> genericDeviceType light
attr <device> homebridgeMapping {\
"Brightness": {\
"reading": "pct",\
"cmd": "datapoint 4.LEVEL"\
},\
"On": {\
"reading": "state",\
"valueOff": "off",\
"cmdOn": "pct 100.5 0 1.0",\
"cmdOff": "pct 0 0 1.0"\
}\
}
Falls von Interesse: Ich arbeite mit hmccu und einer CCU3. Alles getestet, arbeitet in allen Richtungen problemlos.
Gruß Reinhard
Hallo zusammen,
ich bin auf der Suche um genau diese Funktion, jedoch nicht als toggle sondern mit dem Befehl on.
Kann mir jemand sagen was ich Device für ein Attribute genau setzen muss und wie der Inhalt lauten muss?
Habe schon einiges versucht aber immer ohne Erfolg.
Bin noch FHEM Anfänger.
Device List
Internals:
DEF 000DDBE69F6E46
FUUID 616fc6b0-f36f-c1dd-2f6c-ec4c5663063adeb4
IODev CCU_3
NAME flDimmer03
NR 264
STATE off
TYPE HMCCUDEV
ccuaddr 000DDBE66F1E67
ccudevstate active
ccuif HmIP-RF
ccuname HM_Dimmer03
ccurolectrl DIMMER_VIRTUAL_RECEIVER
ccurolestate DIMMER_VIRTUAL_RECEIVER
ccusubtype PDT
ccutype HmIP-PDT
firmware 1.4.8
readonly no
READINGS:
2021-11-26 12:50:51 2.ACTIVITY_STATE UNKNOWN
2021-11-26 12:50:51 2.LEVEL off
2021-11-26 12:50:51 2.LEVEL_STATUS NORMAL
2021-11-26 12:50:51 2.PROCESS STABLE
2021-11-26 12:50:51 2.SECTION 15
2021-11-26 10:33:37 2.SECTION_STATUS NORMAL
2021-11-26 12:50:51 3.ACTIVITY_STATE STABLE
2021-11-26 12:50:51 3.LEVEL off
2021-11-26 12:50:51 3.LEVEL_STATUS NORMAL
2021-11-26 12:50:51 3.PROCESS STABLE
2021-11-26 12:50:51 3.SECTION 0
2021-11-26 10:33:37 3.SECTION_STATUS NORMAL
2021-11-26 12:50:51 4.ACTIVITY_STATE STABLE
2021-11-26 12:50:51 4.LEVEL off
2021-11-26 12:50:51 4.LEVEL_STATUS NORMAL
2021-11-26 12:50:51 4.PROCESS STABLE
2021-11-26 12:50:51 4.SECTION 0
2021-11-26 10:33:37 4.SECTION_STATUS NORMAL
2021-11-26 12:50:51 5.ACTIVITY_STATE STABLE
2021-11-26 12:50:51 5.LEVEL off
2021-11-26 12:50:51 5.LEVEL_STATUS NORMAL
2021-11-26 12:50:51 5.PROCESS STABLE
2021-11-26 12:50:51 5.SECTION 0
2021-11-26 10:33:37 5.SECTION_STATUS NORMAL
2021-11-26 11:46:28 6.WEEK_PROGRAM_CHANNEL_LOCKS 0
2021-11-26 10:33:04 IODev CCU_3
2021-11-26 12:50:51 activity alive
2021-11-26 12:50:51 control off
2021-11-26 12:50:51 devstate ok
2021-11-26 12:50:51 hmstate off
2021-11-26 12:50:51 pct 0
2021-11-26 12:50:51 rssidevice -66
2021-11-26 12:50:51 rssipeer -68
2021-11-26 12:50:51 state off
hmccu:
channels 7
detect 3
devspec 000DDBE99F1E47
forcedev 0
nodefaults 1
role 0:MAINTENANCE,1:KEY_TRANSCEIVER,2:DIMMER_TRANSMITTER,3:DIMMER_VIRTUAL_RECEIVER,4:DIMMER_VIRTUAL_RECEIVER,5:DIMMER_VIRTUAL_RECEIVER,6:DIMMER_WEEK_PROFILE
setDefaults 0
cmdlist:
get
set on-for-timer on:noArg on-till pct off:noArg down up toggle:noArg
control:
chn 3
dpt LEVEL
dp:
0.ACTUAL_TEMPERATURE:
VALUES:
NVAL 0.000000
ONVAL 0.000000
OSVAL 0.0
OVAL 0.000000
SVAL 0.0
VAL 0.000000
0.ACTUAL_TEMPERATURE_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
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.ERROR_OVERHEAT:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.ERROR_OVERLOAD:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.ERROR_UPDATE:
VALUES:
NVAL 0
ONVAL 0
OSVAL false
OVAL 0
SVAL false
VAL 0
0.INSTALL_TEST:
VALUES:
NVAL true
ONVAL true
OSVAL true
OVAL true
SVAL true
VAL true
0.OPERATING_VOLTAGE:
VALUES:
NVAL 0.000000
ONVAL 0.000000
OSVAL 0.0
OVAL 0.000000
SVAL 0.0
VAL 0.000000
0.OPERATING_VOLTAGE_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
0.RSSI_DEVICE:
VALUES:
NVAL -66
ONVAL -67
OSVAL -67
OVAL -67
SVAL -66
VAL -66
0.RSSI_PEER:
VALUES:
NVAL -68
ONVAL -64
OSVAL -64
OVAL -64
SVAL -68
VAL -68
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
2.ACTIVITY_STATE:
VALUES:
NVAL 0
ONVAL 0
OSVAL UNKNOWN
OVAL 0
SVAL UNKNOWN
VAL 0
2.LEVEL:
VALUES:
NVAL 0
ONVAL 70
OSVAL 70
OVAL 0.7
SVAL off
VAL 0.0
2.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
2.PROCESS:
VALUES:
NVAL 0
ONVAL 0
OSVAL STABLE
OVAL 0
SVAL STABLE
VAL 0
2.SECTION:
VALUES:
NVAL 15
ONVAL 15
OSVAL 15
OVAL 15
SVAL 15
VAL 15
2.SECTION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
3.ACTIVITY_STATE:
VALUES:
NVAL 3
ONVAL 3
OSVAL STABLE
OVAL 3
SVAL STABLE
VAL 3
3.LEVEL:
VALUES:
NVAL 0
ONVAL 0
OSVAL off
OVAL 0.0
SVAL off
VAL 0.0
3.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
3.PROCESS:
VALUES:
NVAL 0
ONVAL 0
OSVAL STABLE
OVAL 0
SVAL STABLE
VAL 0
3.SECTION:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
3.SECTION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
4.ACTIVITY_STATE:
VALUES:
NVAL 3
ONVAL 3
OSVAL STABLE
OVAL 3
SVAL STABLE
VAL 3
4.LEVEL:
VALUES:
NVAL 0
ONVAL 0
OSVAL off
OVAL 0.0
SVAL off
VAL 0.0
4.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
4.PROCESS:
VALUES:
NVAL 0
ONVAL 0
OSVAL STABLE
OVAL 0
SVAL STABLE
VAL 0
4.SECTION:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
4.SECTION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
5.ACTIVITY_STATE:
VALUES:
NVAL 3
ONVAL 3
OSVAL STABLE
OVAL 3
SVAL STABLE
VAL 3
5.LEVEL:
VALUES:
NVAL 0
ONVAL 0
OSVAL off
OVAL 0.0
SVAL off
VAL 0.0
5.LEVEL_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
5.PROCESS:
VALUES:
NVAL 0
ONVAL 0
OSVAL STABLE
OVAL 0
SVAL STABLE
VAL 0
5.SECTION:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
5.SECTION_STATUS:
VALUES:
NVAL 0
ONVAL 0
OSVAL NORMAL
OVAL 0
SVAL NORMAL
VAL 0
6.WEEK_PROGRAM_CHANNEL_LOCKS:
VALUES:
NVAL 0
ONVAL 0
OSVAL 0
OVAL 0
SVAL 0
VAL 0
roleCmds:
get:
set:
down:
channel 3
role DIMMER_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:?delta=-10
usage down [delta]
subcmd:
000:
args -10
dpt LEVEL
fnc
max 1.01
min 0.0
parname delta
partype 2
ps VALUES
scn 000
unit 100%
off:
channel 3
role DIMMER_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:0
usage off
subcmd:
000:
args 0
dpt LEVEL
fnc
max 1.01
min 0.0
parname LEVEL
partype 3
ps VALUES
scn 000
unit 100%
on:
channel 3
role DIMMER_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:100
usage on
subcmd:
000:
args 100
dpt LEVEL
fnc
max 1.01
min 0.0
parname LEVEL
partype 3
ps VALUES
scn 000
unit 100%
on-for-timer:
channel 3
role DIMMER_VIRTUAL_RECEIVER
subcount 2
syntax 1:V:DURATION_UNIT:0 2:V:ON_TIME,DURATION_VALUE:?duration 3:V:LEVEL:100
usage on-for-timer duration
subcmd:
000:
args
dpt ON_TIME
fnc
max 8580000.0
min 0.0
parname duration
partype 2
ps VALUES
scn 002
unit s
001:
args 100
dpt LEVEL
fnc
max 1.01
min 0.0
parname LEVEL
partype 3
ps VALUES
scn 003
unit 100%
on-till:
channel 3
role DIMMER_VIRTUAL_RECEIVER
subcount 2
syntax 1:V:DURATION_UNIT:0 2:V:ON_TIME,DURATION_VALUE:?time 3:V:LEVEL:100
usage on-till time
subcmd:
000:
args
dpt ON_TIME
fnc
max 8580000.0
min 0.0
parname time
partype 2
ps VALUES
scn 002
unit s
001:
args 100
dpt LEVEL
fnc
max 1.01
min 0.0
parname LEVEL
partype 3
ps VALUES
scn 003
unit 100%
pct:
channel 3
role DIMMER_VIRTUAL_RECEIVER
subcount 3
syntax 5:V:LEVEL:?level 1:V:DURATION_UNIT:0 2:V:ON_TIME,DURATION_VALUE:?time=0.0 3:V:RAMP_TIME_UNIT:0 4:V:RAMP_TIME,RAMP_TIME_VALUE:?ramp=0.5
usage pct level [time] [ramp]
subcmd:
000:
args
dpt LEVEL
fnc
max 1.01
min 0.0
parname level
partype 2
ps VALUES
scn 005
unit 100%
001:
args 0.0
dpt ON_TIME
fnc
max 8580000.0
min 0.0
parname time
partype 2
ps VALUES
scn 002
unit s
002:
args 0.5
dpt RAMP_TIME
fnc
max 8580000.0
min 0.0
parname ramp
partype 2
ps VALUES
scn 004
unit s
up:
channel 3
role DIMMER_VIRTUAL_RECEIVER
subcount 1
syntax V:LEVEL:?delta=+10
usage up [delta]
subcmd:
000:
args +10
dpt LEVEL
fnc
max 1.01
min 0.0
parname delta
partype 2
ps VALUES
scn 000
unit 100%
state:
chn 3
dpt LEVEL
Attributes:
IODev CCU_3
alexaName Kugel
alexaRoom Flur
alias Lampe Kugel
cmdIcon on:general_an off:general_aus
controldatapoint 3.LEVEL
devStateIcon off:black_FS20.off
on:black_FS20.on
10:black_FS20.on
20:black_FS20.on
30:black_FS20.on
40:black_FS20.on
50:black_FS20.on
60:black_FS20.on
70:black_FS20.on
80:black_FS20.on
90:black_FS20.on
fp_Grundriss 322,318,1,
genericDeviceType light
group Homematic IP
room Flur
sortby 01
statedatapoint 3.LEVEL
substexcl pct
userattr set set_map structexclude
webCmd on:off:pct
widgetOverride pct:slider,0,10,100
Habe die Lösung nun gefunden nachdem ich gesucht habe wie man unter cmdicon ein Leerzeichen weg bekommt.
Wollte einen anderen Weg gehen und dabei doch auf die richtige Lösung gekommen.
Lösung:
eventmap /pct 100.5:on/
Statt dem eventMap würde ggf. auch das funktionieren:
attr flDimmer03 statevals on:100.5,off:0
Vielleicht kannst Du das bei Gelegenheit mal ausprobieren (eventMap muss dann natürlich gelöscht werden).
Zitat von: zap am 27 November 2021, 15:00:53
Statt dem eventMap würde ggf. auch das funktionieren:
attr flDimmer03 statevals on:100.5,off:0
Vielleicht kannst Du das bei Gelegenheit mal ausprobieren (eventMap muss dann natürlich gelöscht werden).
Das scheint nicht zu funktionieren.
Hatte davor den eventmap gelöscht aber es kommt immer folgender Hinweis / Fehler:
HMCCUDEV [szDimmer01] Attribute statevals ignored. Device type is known by HMCCU