Hallo,
warum beginnen die ganzen "Expert-Readings" wie z.B. R-globalBtnLock nun mit einem Punkt also .R-globalBtnLock?
Damit funktionieren diverse Readinggroups auch nach Anpassung nun nicht mehr. Was hat es damit auf sich, bzw. was muss ich tun, damit ich diese Readings weiterhin in ReadingGroups benutzen kann?
In der Definition
<%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil / RH>,<Modus>,<Lock>,<Batterie>
AZ_Wandthermostat_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,R-globalBtnLock@AZ_Wandthermostat,batteryLevel@AZ_Wandthermostat
AZ_Heizkoerper_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@AZ_Heizkoerper,batteryLevel@AZ_Heizkoerper
bringt eine Änderung auf
<%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil / RH>,<Modus>,<Lock>,<Batterie>
AZ_Wandthermostat_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,.R-globalBtnLock@AZ_Wandthermostat,batteryLevel@AZ_Wandthermostat
AZ_Heizkoerper_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,.R-globalBtnLock@AZ_Heizkoerper,batteryLevel@AZ_Heizkoerper
leider nichts. Oder muss ich den "." irgendwie escapen?
Please help.... stehe gerade auf dem Schlauch.
Vor heutigem Update (Listing eines HM Wandthermostats):
Internals:
DEF 31C084
FUUID 5c43264f-f33f-ed4f-2f56-210f553ef697682a
IODev hmusb
LASTInputDev hmusb
MSGCNT 2
NAME AZ_Wandthermostat
NOTIFYDEV global
NR 181
NTFY_ORDER 50-AZ_Wandthermostat
STATE CMDs_done
TYPE CUL_HM
channel_01 AZ_Wandthermostat_Weather
channel_02 AZ_Wandthermostat_Climate
channel_03 AZ_Wandthermostat_WindowRec
channel_06 AZ_Wandthermostat_remote
channel_07 AZ_Wandthermostat_SwitchTr
hmusb_MSGCNT 2
hmusb_RAWMSG E31C084,0000,00330DB5,FF,FFC8,9B847031C08400000000EE36
hmusb_RSSI -56
hmusb_TIME 2020-07-15 23:04:46
lastMsg No:9B - t:70 s:31C084 d:000000 00EE36
protLastRcv 2020-07-15 23:04:46
protRcv 2 last_at:2020-07-15 23:04:46
rssi_at_hmusb cnt:2 min:-56 max:-55 avg:-55.5 lst:-56
.attraggr:
.attreocr:
.*
.attrminint:
READINGS:
2020-03-28 09:34:53 .D-devInfo 03FFFF
2020-03-28 09:34:53 .D-stc 58
2020-07-15 23:04:29 .associatedWith AZ_Wandthermostat,AZ_Wandthermostat_Climate,AZ_Wandthermostat_SwitchTr,AZ_Wandthermostat_Weather,AZ_Wandthermostat_WindowRec,AZ_Wandthermostat_remote,AZ_Wandthermostat
2020-07-15 23:04:46 .protLastRcv 2020-07-15 23:04:46
2020-07-15 23:04:18 Activity unknown
2020-04-17 22:44:02 CommandAccepted yes
2020-03-28 09:34:53 D-firmware 1.3
2020-03-28 09:34:53 D-serialNr LEQXXXXX
2020-03-28 09:36:23 PairedTo 0x354CCC
2018-02-11 10:32:54 R-btnLock off
2018-02-11 10:32:54 R-burstRx on
2018-02-11 10:32:54 R-cyclicInfoMsg on
2018-02-11 10:32:54 R-cyclicInfoMsgDis 0
2020-03-28 09:36:23 R-globalBtnLock on
2018-02-11 10:32:54 R-localResDis off
2018-02-11 10:32:54 R-lowBatLimitRT 2.2 V
2018-02-11 10:32:54 R-modusBtnLock off
2018-02-11 10:32:54 R-pairCentral 0x354CCC
2020-03-28 09:36:23 RegL_00. 00:00 01:01 02:01 09:01 0A:35 0B:4C 0C:CC 0F:00 11:00 12:16 16:00 18:00 19:C8 1A:00
2020-03-28 10:35:12 RegL_07.
2020-07-15 02:41:59 battery ok
2020-07-15 02:41:59 batteryLevel 2.8
2020-07-15 23:04:45 cfgState ok
2020-07-14 12:44:36 commState CMDs_done
2020-07-15 02:41:59 desired-temp off
2020-07-15 02:41:59 measured-temp 23.4
2020-03-28 09:33:50 powerOn 2020-03-28 09:33:50
2020-03-28 09:33:50 recentStateType info
2020-07-14 12:44:36 state CMDs_done
2020-07-14 12:44:36 time-request -
helper:
HM_CMDNR 155
mId 00AD
peerFriend
peerOpt -:thermostat
regLst 0
rxType 6
supp_Pair_Rep 0
cmds:
TmplKey :no:1594847069.2645
TmplTs 1594847069.2645
cmdKey :0:1:0::00AD:01
TmplCmds:
cmdList:
assignHmKey:
clear:[readings|trigger|register|oldRegs|rssi|msgEvents|msgErrors|attack|all]
deviceRename:newName
fwUpdate:-filename- -bootTime- ...
getConfig:
getDevInfo:
getRegRaw:[List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
getSerial:
inhibit:[on|off]
raw:data ...
regBulk:-list-.-peer- -addr1:data1- -addr2:data2- ...
regSet:[prep|exec] -regName- -value- ... [-peerChannel-]
reset:
sysTime:
tplDel:tmplt
unpair:
expert:
def 1
det 1
raw 1
tpl 0
io:
newChn +31C084,00,01,00
nextSend 1594847086.82844
rxt 0
vccu vccu
p:
31C084
00
01
00
prefIO:
hmusb
mRssi:
mNo 9B
io:
hmusb:
-50
-50
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
dev 1
prs 1
rssi:
at_hmusb:
avg -55.5
cnt 2
lst -56
max -55
min -56
shRegW:
07 02
tmpl:
Attributes:
.mId 00AD
IODev hmusb
IOgrp vccu:hmusb
actCycle 000:10
actStatus unknown
autoReadReg 5_readMissing
event-on-change-reading .*
expert 3_allReg+raw
firmware 1.3
group Heizung
icon hm-tc-it-wm-w-eu
model HM-TC-IT-WM-W-EU
msgRepeat 1
room Homematic,Z_Arbeit
serialNr LEQ1xxxxxx
subType thermostat
webCmd getConfig:clear msgEvents
Nach dem Update:
Internals:
DEF 31C084
FUUID 5c43264f-f33f-ed4f-2f56-210f553ef697682a
IODev hmusb
NAME AZ_Wandthermostat
NOTIFYDEV global
NR 181
NTFY_ORDER 50-AZ_Wandthermostat
STATE CMDs_done
TYPE CUL_HM
channel_01 AZ_Wandthermostat_Weather
channel_02 AZ_Wandthermostat_Climate
channel_03 AZ_Wandthermostat_WindowRec
channel_06 AZ_Wandthermostat_remote
channel_07 AZ_Wandthermostat_SwitchTr
.attraggr:
.attreocr:
.*
.attrminint:
READINGS:
2020-03-28 09:34:53 .D-devInfo 03FFFF
2020-03-28 09:34:53 .D-stc 58
2018-02-11 10:32:54 .R-btnLock off
2018-02-11 10:32:54 .R-burstRx on
2018-02-11 10:32:54 .R-cyclicInfoMsg on
2018-02-11 10:32:54 .R-cyclicInfoMsgDis 0
2020-03-28 09:36:23 .R-globalBtnLock on
2018-02-11 10:32:54 .R-localResDis off
2018-02-11 10:32:54 .R-lowBatLimitRT 2.2 V
2018-02-11 10:32:54 .R-modusBtnLock off
2018-02-11 10:32:54 .R-pairCentral 0x354CCC
2020-07-15 23:11:58 .associatedWith AZ_Wandthermostat,AZ_Wandthermostat_Climate,AZ_Wandthermostat_SwitchTr,AZ_Wandthermostat_Weather,AZ_Wandthermostat_WindowRec,AZ_Wandthermostat_remote,AZ_Wandthermostat
2020-07-15 23:11:19 .protLastRcv 2020-07-15 23:11:19
2020-07-15 23:11:48 Activity alive
2020-04-17 22:44:02 CommandAccepted yes
2020-03-28 09:34:53 D-firmware 1.3
2020-03-28 09:34:53 D-serialNr LEQxxxxxx
2020-03-28 09:36:23 PairedTo 0x354CCC
2020-03-28 09:36:23 RegL_00. 00:00 01:01 02:01 09:01 0A:35 0B:4C 0C:CC 0F:00 11:00 12:16 16:00 18:00 19:C8 1A:00
2020-03-28 10:35:12 RegL_07.
2020-07-15 02:41:59 battery ok
2020-07-15 02:41:59 batteryLevel 2.8
2020-07-15 23:12:16 cfgState ok
2020-07-14 12:44:36 commState CMDs_done
2020-07-15 02:41:59 desired-temp off
2020-07-15 02:41:59 measured-temp 23.4
2020-03-28 09:33:50 powerOn 2020-03-28 09:33:50
2020-03-28 09:33:50 recentStateType info
2020-07-14 12:44:36 state CMDs_done
2020-07-14 12:44:36 time-request -
helper:
HM_CMDNR 219
mId 00AD
peerFriend
peerOpt -:thermostat
regLst 0
rxType 6
cmds:
TmplKey :no:1594847517.80066
TmplTs 1594847517.80066
cmdKey :0:1:0::00AD:01
TmplCmds:
cmdList:
assignHmKey:
clear:[readings|trigger|register|oldRegs|rssi|msgEvents|msgErrors|attack|all]
deviceRename:newName
fwUpdate:-filename- -bootTime- ...
getConfig:
getDevInfo:
getRegRaw:[List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
getSerial:
inhibit:[on|off]
raw:data ...
regBulk:-list-.-peer- -addr1:data1- -addr2:data2- ...
regSet:[prep|exec] -regName- -value- ... [-peerChannel-]
reset:
sysTime:
tplDel:tmplt
unpair:
expert:
def 0
det 0
raw 1
tpl 0
io:
newChn +31C084,00,01,00
rxt 0
vccu vccu
p:
31C084
00
01
00
prefIO:
hmusb
mRssi:
mNo
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
dev 1
prs 1
shRegW:
07 02
tmpl:
Attributes:
.mId 00AD
IODev hmusb
IOgrp vccu:hmusb
actCycle 000:10
actStatus alive
autoReadReg 5_readMissing
event-on-change-reading .*
expert defReg,allReg,rawReg
firmware 1.3
group Heizung
icon hm-tc-it-wm-w-eu
model HM-TC-IT-WM-W-EU
msgRepeat 1
room Homematic,Z_Arbeit
serialNr LEQxxxxxx
subType thermostat
webCmd getConfig:clear msgEvents
mit attr expert kommen und gehen die punkte.
dein attr expert sieht kaputt aus.
Wie meinst Du das?
3_allReg+raw ist doch laut Commandref völlig ok, oder?
expert defReg,allReg,rawReg
Aber vorher im Code:
202 $hash->{Attr}{glb} = "do_not_notify:1,0 showtime:1,0 "
203 ."rawToReadable unit "#"KFM-Sensor" only
204 ."expert:0_defReg,1_allReg,2_defReg+raw,3_allReg+raw,4_off,8_templ+default,12_templOnly,251_anything "
und jetzt:
202 $hash->{Attr}{glb} = "do_not_notify:1,0 showtime:1,0 "
203 ."rawToReadable unit "#"KFM-Sensor" only
204 ."expert:multiple,defReg,allReg,rawReg,templ "
Zitat von: frank am 15 Juli 2020, 23:58:04
expert defReg,allReg,rawReg
Ah danke. Das kommt alleine durch das heutige Update. Das habe ich nicht eingestellt.
Im Listing vor dem Update habe ich
expert 3_allReg+raw
stehen.
Zitat von: blackbite am 16 Juli 2020, 00:06:10
Ah danke. Das kommt alleine durch das heutige Update. Das habe ich nicht eingestellt.
Stimmt. Scheint aber nicht richtig zu funktionieren:
expert defReg,allReg,rawReg
aber
expert:
def 0
det 0
raw 1
tpl 0
Und eigentlich mit raw = 1 sollten keine Punkte in Readingsnamen kommen, wenn ich mich nicht irre.
Zitat von: amenomade am 16 Juli 2020, 00:12:30
Stimmt. Scheint aber nicht richtig zu funktionieren:
expert defReg,allReg,rawReg
aber
expert:
def 0
det 0
raw 1
tpl 0
Und eigentlich mit raw = 1 sollten keine Punkte in Readingsnamen kommen, wenn ich mich nicht irre.
Ok, sollte ich noch mal updaten und expert neu zuweisen? Wenn's dann klappt, für alle HM-Devices bei denen ich allReg und rawReg benötige ebenfalls neu setzen? Kann ich machen, ist aber trotzdem ein Bug... ;)
Moin,
bin auch "erwischt worden", bei meinen Routinen ist so Einiges durcheinander.
ein Beispiel mit expert allReg und showInternalValues 1 für einen HM-LC-BL1PBU-FM:
einige Register haben einen Punkt
.R-self01-lgActionType jmpToTarget
und andere nicht
R-self01-lgBlJtDlyOff refOff
mit expert allReg und showInternalValues 0:
alle Register ohne Punkt
aber dafür fehlen Register, zB. self01-lgActionType
mit expert defReg und showInternalValues 0 werden nur einige wenige Register (ohne Punkt gelistet)
mit expert defReg,allReg und showInternalValues 0:
alle Register ohne Punkt
aber dafür fehlen Register, zB. self01-lgActionType
mit expert defReg,allReg,rawReg und showInternalValues 0:
keine Register mehr
Für mich ist kein Schema erkennbar. In der CommandRef ist zu lesen
it is a binary coded number with following presets:
0_defReg : default register
1_allReg : all register
2_defReg+raw : default register and raw reading
3_allReg+raw : all register and raw reading
4_off : no register
8_templ+default: templates and default register
12_templOnly : templates only
251_anything : anything available
Moin
Bernd
Und mit expert defReg,allReg,rawReg und showInternalValues 1?
Ja, CommandRef passt nicht zu aktuellste Version vom Modul. Auch ein "bug" ;)
Moin,
ZitatUnd mit expert defReg,allReg,rawReg und showInternalValues 1?
alle Register mit Punkt, kann auf die Schnelle keine fehlenden Register erkennen.
Hallo Zusammen,
das ist ein Bug im Code siehe hier https://forum.fhem.de/index.php/topic,112871.msg1072217.html#msg1072217 (https://forum.fhem.de/index.php/topic,112871.msg1072217.html#msg1072217).
Martin hat das Attribut geändert, aber einen Kompatibilätscode eingebaut, der alt in neu übersetzt. Daher die gänderte Attributseinstellung.
Nur klappt die Umsetzung in Anzeige nicht, wegen obigem Bug.
Gruß, Ansgar.
Zitat von: pwlr am 16 Juli 2020, 01:55:57
Moin,
alle Register mit Punkt, kann auf die Schnelle keine fehlenden Register erkennen.
Genau. Und Register mit "." können in ReadingGroups und womöglich in anderen Funktionen nicht mehr abgefragt werden.
Wird da dran gearbeitet, dass wenn raw= 1 gesetzt ist, die Readingnamen wieder wie zuvor ohne "." erscheinen? Martin scheint busy
readings mit "." kann man ganz "normal" benutzen. sogar, wenn sie "unsichtbar" sind.
Zitat von: frank am 17 Juli 2020, 17:14:04
readings mit "." kann man ganz "normal" benutzen. sogar, wenn sie "unsichtbar" sind.
Hallo Frank,
danke. Dann wäre aber eine logische Konsequenz, dass ich in der Readinggroup "heatingInfo" nur die Readings um den Punkt in der Definition und den Commands ergänzen müsste.
Das funktioniert aber leider nicht. Das scheint generell ein Thema bei Readingsgroups zu sein, dass Readings mit "." beginnend nicht funktionieren. Da durch die Änderungen im Zusammenhang mit dem Expert Attribut nun wesentlich mehr Readings mit einem Punkt beginnen, wird das lustig. Hier ein Thread zur selben Problematik:
https://forum.fhem.de/index.php/topic,98983.msg923239.html#msg923239 (https://forum.fhem.de/index.php/topic,98983.msg923239.html#msg923239)
Liegt es vielleicht an der verwendeten Schreibweise in der Definition mit "R-globalBtnLock@WZ_Wandthermostat,batteryLevel@WZ_Wandthermostat"?
Anbei mal das Listing der bislang funktionierenden heatingInfo-readingsGroup. Könntest Du bitte mal einen Blick drauf werfen.
Internals:
DEF <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil / RH>,<Modus>,<Lock>,<Batterie>
WZ_Wandthermostat_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,R-globalBtnLock@WZ_Wandthermostat,batteryLevel@WZ_Wandthermostat
WZ_Heizkoerper_li_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@WZ_Heizkoerper_li,batteryLevel@WZ_Heizkoerper_li
WZ_Heizkoerper_re_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@WZ_Heizkoerper_re,batteryLevel@WZ_Heizkoerper_re
<>,<>,<>,<>,<>,<>,<>,<>
BZ_Wandthermostat_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,R-globalBtnLock@BZ_Wandthermostat,batteryLevel@BZ_Wandthermostat
BZ_Heizkoerper_li_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@BZ_Heizkoerper_li,batteryLevel@BZ_Heizkoerper_li
BZ_Heizkoerper_re_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@BZ_Heizkoerper_re,batteryLevel@BZ_Heizkoerper_re
<>,<>,<>,<>,<>,<>,<>,<>
AZ_Wandthermostat_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,R-globalBtnLock@AZ_Wandthermostat,batteryLevel@AZ_Wandthermostat
AZ_Heizkoerper_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@AZ_Heizkoerper,batteryLevel@AZ_Heizkoerper
<>,<>,<>,<>,<>,<>,<>,<>
KZ_Wandthermostat_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,R-globalBtnLock@KZ_Wandthermostat,batteryLevel@KZ_Wandthermostat
KZ_Heizkoerper_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,R-globalBtnLock@KZ_Heizkoerper,batteryLevel@KZ_Heizkoerper
FUUID 5c432650-f33f-ed4f-7a7a-f61cc0de7b9d9247
NAME heatingInfo
NR 220
NTFY_ORDER 50-heatingInfo
STATE Initialized
TYPE readingsGroup
changed 0
mayBeVisible 1
CONTENT:
AZ_Heizkoerper_Clima 1
AZ_Wandthermostat_Climate 1
BZ_Heizkoerper_li_Clima 1
BZ_Heizkoerper_re_Clima 1
BZ_Wandthermostat_Climate 1
KZ_Heizkoerper_Clima 1
KZ_Wandthermostat_Climate 1
WZ_Heizkoerper_li_Clima 1
WZ_Heizkoerper_re_Clima 1
WZ_Wandthermostat_Climate 1
CONTENT2:
AZ_Heizkoerper 1
AZ_Wandthermostat 1
BZ_Heizkoerper_li 1
BZ_Heizkoerper_re 1
BZ_Wandthermostat 1
KZ_Heizkoerper 1
KZ_Wandthermostat 1
WZ_Heizkoerper_li 1
WZ_Heizkoerper_re 1
WZ_Wandthermostat 1
DEVICES:
ARRAY(0x45f2208)
ARRAY(0x474d5f0)
ARRAY(0x4b6b018)
ARRAY(0x472fb78)
ARRAY(0x45a9c90)
ARRAY(0x4861238)
ARRAY(0x4b588d0)
ARRAY(0x45f2640)
ARRAY(0x49d5450)
ARRAY(0x459b000)
ARRAY(0x46e1518)
ARRAY(0x4597c60)
ARRAY(0x49dbdb0)
ARRAY(0x4580be8)
DEVICES2:
ARRAY(0x45f2208)
ARRAY(0x474d5f0)
ARRAY(0x4b6b018)
ARRAY(0x472fb78)
ARRAY(0x45a9c90)
ARRAY(0x4861238)
ARRAY(0x4b588d0)
ARRAY(0x45f2640)
ARRAY(0x49d5450)
ARRAY(0x459b000)
ARRAY(0x46e1518)
ARRAY(0x4597c60)
ARRAY(0x49dbdb0)
ARRAY(0x4580be8)
ARRAY(0x4408bc8)
ARRAY(0x45f29d8)
ARRAY(0x4737298)
ARRAY(0x46fb2a0)
ARRAY(0x49b0340)
ARRAY(0x46ed360)
ARRAY(0x46eeb88)
ARRAY(0x46e7fa0)
ARRAY(0x47443b0)
ARRAY(0x3ba03d8)
ARRAY(0x45fa678)
ARRAY(0x4afde90)
ARRAY(0x4af5a38)
ARRAY(0x49641f0)
ARRAY(0x4580558)
ARRAY(0x4726760)
ARRAY(0x45c1e38)
ARRAY(0x47b7d70)
ARRAY(0x49624a0)
ARRAY(0x4ab7c30)
fhem:
lastDefChange 2
last_update 1595002839.13322
helper:
DEF
valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100}elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25}else{$VALUE=0}}}
valueStyle {if($READING eq "measured-temp"){my $t=$VALUE;my $d=ReadingsVal($DEVICE,'desired-temp',0);if($d eq "off"){'style="color:rgb(200,200,200);"'}elsif($t-$d>=1){'style="color:rgb(251,63,11);"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);"'}else{'style="color:rgb(12,251,12);"'}}}
valueSuffix {"desired-temp"=>" °C", "measured-temp"=>" °C","ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)","humidity"=>" ".ReadingsVal($DEVICE,$READING,0)." % RH","batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}
cellStyle:
r:1 style="font-weight:bold;font-size:16px"
r:10,c:0 style="font-weight:bold"
r:13,c:0 style="font-weight:bold"
r:2,c:0 style="font-weight:bold"
r:6,c:0 style="font-weight:bold"
commands:
R-globalBtnLock.off set %DEVICE regSet globalBtnLock on
R-globalBtnLock.on set %DEVICE regSet globalBtnLock off
controlMode.auto set %DEVICE controlMode manual
controlMode.manual set %DEVICE controlMode auto
heatingInfo.sollsetz desired-temp:on,off,5.0,12.0,17.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0
mapping:
AZ_Heizkoerper_Clima Heizkörper
AZ_Wandthermostat_Climate Arbeit
BZ_Heizkoerper_li_Clima Heizkörper links
BZ_Heizkoerper_re_Clima Heizkörper rechts
BZ_Wandthermostat_Climate Bad
KZ_Heizkoerper_Clima Heizkörper
KZ_Wandthermostat_Climate Kinderzimmer
WZ_Heizkoerper_li_Clima Heizkörper links
WZ_Heizkoerper_re_Clima Heizkörper rechts
WZ_Wandthermostat_Climate Wohnzimmer
positions:
AZ_Heizkoerper.R-globalBtnLock 11:6
AZ_Heizkoerper.batteryLevel 11:7
AZ_Heizkoerper_Clima.ValvePosition 11:4
AZ_Heizkoerper_Clima.controlMode 11:5
AZ_Heizkoerper_Clima.desired-temp 11:1
AZ_Heizkoerper_Clima.measured-temp 11:3
AZ_Wandthermostat.R-globalBtnLock 10:6
AZ_Wandthermostat.batteryLevel 10:7
AZ_Wandthermostat_Climate.controlMode 10:5
AZ_Wandthermostat_Climate.desired-temp 10:1
AZ_Wandthermostat_Climate.humidity 10:4
AZ_Wandthermostat_Climate.measured-temp 10:3
BZ_Heizkoerper_li.R-globalBtnLock 7:6
BZ_Heizkoerper_li.batteryLevel 7:7
BZ_Heizkoerper_li_Clima.ValvePosition 7:4
BZ_Heizkoerper_li_Clima.controlMode 7:5
BZ_Heizkoerper_li_Clima.desired-temp 7:1
BZ_Heizkoerper_li_Clima.measured-temp 7:3
BZ_Heizkoerper_re.R-globalBtnLock 8:6
BZ_Heizkoerper_re.batteryLevel 8:7
BZ_Heizkoerper_re_Clima.ValvePosition 8:4
BZ_Heizkoerper_re_Clima.controlMode 8:5
BZ_Heizkoerper_re_Clima.desired-temp 8:1
BZ_Heizkoerper_re_Clima.measured-temp 8:3
BZ_Wandthermostat.R-globalBtnLock 6:6
BZ_Wandthermostat.batteryLevel 6:7
BZ_Wandthermostat_Climate.controlMode 6:5
BZ_Wandthermostat_Climate.desired-temp 6:1
BZ_Wandthermostat_Climate.humidity 6:4
BZ_Wandthermostat_Climate.measured-temp 6:3
KZ_Heizkoerper.R-globalBtnLock 14:6
KZ_Heizkoerper.batteryLevel 14:7
KZ_Heizkoerper_Clima.ValvePosition 14:4
KZ_Heizkoerper_Clima.controlMode 14:5
KZ_Heizkoerper_Clima.desired-temp 14:1
KZ_Heizkoerper_Clima.measured-temp 14:3
KZ_Wandthermostat.R-globalBtnLock 13:6
KZ_Wandthermostat.batteryLevel 13:7
KZ_Wandthermostat_Climate.controlMode 13:5
KZ_Wandthermostat_Climate.desired-temp 13:1
KZ_Wandthermostat_Climate.humidity 13:4
KZ_Wandthermostat_Climate.measured-temp 13:3
WZ_Heizkoerper_li.R-globalBtnLock 3:6
WZ_Heizkoerper_li.batteryLevel 3:7
WZ_Heizkoerper_li_Clima.ValvePosition 3:4
WZ_Heizkoerper_li_Clima.controlMode 3:5
WZ_Heizkoerper_li_Clima.desired-temp 3:1
WZ_Heizkoerper_li_Clima.measured-temp 3:3
WZ_Heizkoerper_re.R-globalBtnLock 4:6
WZ_Heizkoerper_re.batteryLevel 4:7
WZ_Heizkoerper_re_Clima.ValvePosition 4:4
WZ_Heizkoerper_re_Clima.controlMode 4:5
WZ_Heizkoerper_re_Clima.desired-temp 4:1
WZ_Heizkoerper_re_Clima.measured-temp 4:3
WZ_Wandthermostat.R-globalBtnLock 2:6
WZ_Wandthermostat.batteryLevel 2:7
WZ_Wandthermostat_Climate.controlMode 2:5
WZ_Wandthermostat_Climate.desired-temp 2:1
WZ_Wandthermostat_Climate.humidity 2:4
WZ_Wandthermostat_Climate.measured-temp 2:3
valueIcon:
R-globalBtnLock.off secur_open@0CFB0C
R-globalBtnLock.on secur_locked@F7301D
R-globalBtnLock.set_off hourglass
R-globalBtnLock.set_on hourglass
ValvePosition.0 sani_heating_level_0@002AE0
ValvePosition.10 sani_heating_level_10@F8D53D
ValvePosition.100 sani_heating_level_100@E50005
ValvePosition.20 sani_heating_level_20@FF9341
ValvePosition.30 sani_heating_level_30@F17F3F
ValvePosition.40 sani_heating_level_40@E46C3C
ValvePosition.50 sani_heating_level_50@DE3B3A
ValvePosition.60 sani_heating_level_60@A30D2D
ValvePosition.70 sani_heating_level_70@B40A23
ValvePosition.80 sani_heating_level_80@C40619
ValvePosition.90 sani_heating_level_90@D4030F
batteryLevel.0 measure_battery_0@E50005
batteryLevel.100 measure_battery_100@0CFB0C
batteryLevel.25 measure_battery_25@FB5909
batteryLevel.50 measure_battery_50@F5FF10
batteryLevel.75 measure_battery_75@42BC0A
controlMode.auto sani_heating_automatic@FFC13A
controlMode.boost sani_heating_boost@FB0C02
controlMode.manual sani_heating_manual@795CFF
controlMode.set_auto hourglass
controlMode.set_boost hourglass
controlMode.set_manual hourglass
humidity humidity@6FD9FB
values:
formated:
undef
ARRAY(0x4404f10)
undef
ARRAY(0x4749e48)
ARRAY(0x4afc410)
ARRAY(0x45fb7c0)
ARRAY(0x4b18610)
ARRAY(0x45a6068)
orig:
undef
ARRAY(0x481a260)
undef
ARRAY(0x4a042d8)
ARRAY(0x3cf14b8)
ARRAY(0x4553d98)
ARRAY(0x3d57320)
ARRAY(0x46e6250)
prefixsuffix:
undef
ARRAY(0x465b568)
undef
ARRAY(0x45e0ff8)
ARRAY(0x45f7958)
ARRAY(0x3a6f570)
ARRAY(0x4594380)
ARRAY(0x4822e78)
Attributes:
alias Heizungssteuerung
cellStyle { "r:1"=>'style="font-weight:bold;font-size:16px"',"r:2,c:0"=>'style="font-weight:bold"',"r:6,c:0"=>'style="font-weight:bold"',"r:10,c:0"=>'style="font-weight:bold"',"r:13,c:0"=>'style="font-weight:bold"' }
commands {'heatingInfo.sollsetz'=>'desired-temp:on,off,5.0,12.0,17.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0',"controlMode.manual"=>"set %DEVICE controlMode auto","controlMode.auto"=>"set %DEVICE controlMode manual","R-globalBtnLock.on"=>"set %DEVICE regSet globalBtnLock off","R-globalBtnLock.off"=>"set %DEVICE regSet globalBtnLock on"}
group Heizung
mapping {WZ_Wandthermostat_Climate=>"Wohnzimmer",WZ_Heizkoerper_li_Clima=>" Heizkörper links",WZ_Heizkoerper_re_Clima=>" Heizkörper rechts",BZ_Wandthermostat_Climate=>"Bad",BZ_Heizkoerper_li_Clima=>" Heizkörper links",BZ_Heizkoerper_re_Clima=>" Heizkörper rechts",AZ_Wandthermostat_Climate=>"Arbeit",AZ_Heizkoerper_Clima=>" Heizkörper",KZ_Wandthermostat_Climate=>"Kinderzimmer",KZ_Heizkoerper_Clima=>" Heizkörper"}
room Haus,Homematic
sortDevices 0
sortby 1
valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100}elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25}else{$VALUE=0}}}
valueIcon {'controlMode.manual' => 'sani_heating_manual@795CFF','controlMode.auto' => 'sani_heating_automatic@FFC13A', 'controlMode.boost' => 'sani_heating_boost@FB0C02','humidity'=>'humidity@6FD9FB', 'R-globalBtnLock.on'=>'secur_locked@F7301D','R-globalBtnLock.off'=>'secur_open@0CFB0C','ValvePosition.0' => 'sani_heating_level_0@002AE0','ValvePosition.10' => 'sani_heating_level_10@F8D53D','ValvePosition.20' => 'sani_heating_level_20@FF9341','ValvePosition.30' => 'sani_heating_level_30@F17F3F','ValvePosition.40' => 'sani_heating_level_40@E46C3C','ValvePosition.50' => 'sani_heating_level_50@DE3B3A','ValvePosition.60' => 'sani_heating_level_60@A30D2D','ValvePosition.70' => 'sani_heating_level_70@B40A23','ValvePosition.80' => 'sani_heating_level_80@C40619','ValvePosition.90' => 'sani_heating_level_90@D4030F','ValvePosition.100' => 'sani_heating_level_100@E50005','batteryLevel.100'=>'measure_battery_100@0CFB0C','batteryLevel.75'=>'measure_battery_75@42BC0A','batteryLevel.50'=>'measure_battery_50@F5FF10','batteryLevel.25'=>'measure_battery_25@FB5909','batteryLevel.0'=>'measure_battery_0@E50005','controlMode.set_boost' => 'hourglass','controlMode.set_auto' => 'hourglass','controlMode.set_manual' => 'hourglass','R-globalBtnLock.set_on' => 'hourglass','R-globalBtnLock.set_off' => 'hourglass'}
valueStyle {if($READING eq "measured-temp"){my $t=$VALUE;my $d=ReadingsVal($DEVICE,'desired-temp',0);if($d eq "off"){'style="color:rgb(200,200,200);"'}elsif($t-$d>=1){'style="color:rgb(251,63,11);"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);"'}else{'style="color:rgb(12,251,12);"'}}}
valueSuffix {"desired-temp"=>" °C", "measured-temp"=>" °C","ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)","humidity"=>" ".ReadingsVal($DEVICE,$READING,0)." % RH","batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}
vielleicht muss der punkt escaped werden.
probiere "\."
Zitat von: frank am 17 Juli 2020, 19:43:26
vielleicht muss der punkt escaped werden.
probiere "\."
Das hatte ich gehofft. Leider auch schon erfolglos getestet.
.R-pairCentral => NOK :(
\.R-pairCentral => NOK :(
(\.|)R-pairCentral => OK :)
Zitat von: Wzut am 18 Juli 2020, 08:31:46
.R-pairCentral => NOK :(
\.R-pairCentral => NOK :(
(\.|)R-pairCentral => OK :)
Ich hatte gedacht, dass das die Lösung sein muss. Aber leider klappt das in einer ReadingsGroup mit folgender Definition nicht:
<%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil / RH>,<Modus>,<Lock>,<Batterie>
WZ_Wandthermostat_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,(\.|)R-pairCentral@WZ_Wandthermostat,batteryLevel@WZ_Wandthermostat
Hier wird zuerst WZ_Wandthermostat_Climate mit seinen Readings ausgelesen und dann mit der "@"-Schreibweise ein anderes Device, nämlich WZ_Wandthermostat.
CommandRef sagt dazu: regex can be of the form <regex>@device to use readings from a different device.
Also entweder doch eine "Schwäche" von ReadingsGroup und ein Fall für Andre (justme1968) oder meine Schwäche, weil ich zu doof bin.
Die ReadingsGroup habe ich damals aus dem FHEM WIKI genommen. Da dürfte ich nicht der Einzige sein, der jetzt ein kleines Problem hat. Vielen Dank aber für die Hilfe. Vielleicht findet sich ja doch noch eine Lösung statt des Workarounds mit neuen Userreadings.
Moin,
Zitatreadings mit "." kann man ganz "normal" benutzen. sogar, wenn sie "unsichtbar" sind.
Das wäre echt klasse, eine Trennung der Darstellung im Web von der Vefügbarkeit der Readings z.B. in einer Perl-Sub !!! Das wünsche ich mir schon lange - allerdings war mir die Sache mit dem Punkt bisher unbekannt.
Aus der Command-Ref
expert
Dieses Attribut steuert die Sichtbarkeit der Register Readngs. Damit wird die Darstellung der Geräteparameter kontrolliert.
Sichtbarkeit im Web und Verfügbarkeit in Subs sind meines Erachtens 2 Paar Schuhe... In den Subs sollten m.E. immer alle Register, natürlich nicht mit wechselnden Namen, verfügbar sein, damit die Dinger auch immer sauber laufen können.
Aber es geht (mit dem aktuellen BUG) leider nicht. :(
Einige Tests von mir mit einer Perl-Sub (showreg). Gedacht als Hilfe für das Debugging.
Fall 1:
2020.07.18 22:04:30 3: showreg startet
2020.07.18 22:04:30 5: showInternalValues in global = 0
2020.07.18 22:04:30 5: expert = defReg
2020.07.18 22:04:30 5: R-self01-lgActionType = jmpToTarget
2020.07.18 22:04:30 5: .R-self01-lgActionType = unknown
2020.07.18 22:04:30 5: R-self01-lgCtDlyOff = unknown
2020.07.18 22:04:30 5: .R-self01-lgCtDlyOff = geLo
2020.07.18 22:04:30 3: showreg endet
READINGS:
...
2018-11-23 18:01:15 R-self01-lgActionType jmpToTarget
2018-11-23 18:01:15 R-self01-shActionType jmpToTarget
...
Die beiden Register ActionType werden im Web angezeigt, in der Sub bekomme ich die ohne Punkt mit ReadingsVal zu fassen (am Beispiel für lgActionType).
Die anderen Register werden im Web nicht angezeigt und in der Sub geht der Zugriff mit einem Punkt (am Beispiel lgCtDlyOff)
Fall 2:
020.07.18 22:15:23 3: showreg startet
2020.07.18 22:15:23 5: showInternalValues in global = 0
2020.07.18 22:15:23 5: expert = allReg
2020.07.18 22:15:23 5: R-self01-lgActionType = unknown
2020.07.18 22:15:23 5: .R-self01-lgActionType = jmpToTarget
2020.07.18 22:15:23 5: R-self01-lgCtDlyOff = geLo
2020.07.18 22:15:23 5: .R-self01-lgCtDlyOff = unknown
2020.07.18 22:15:23 3: showreg endet
READINGS:
...
2018-11-23 18:01:15 R-self01-lgCtDlyOff geLo
2018-11-23 18:01:15 R-self01-lgCtDlyOn geLo
2018-11-23 18:01:15 R-self01-lgCtOff geLo
2018-11-23 18:01:15 R-self01-lgCtOn geLo
2018-11-23 18:01:15 R-self01-lgCtValHi 100
2018-11-23 18:01:15 R-self01-lgCtValLo 50
2018-11-23 18:01:15 R-self01-lgMultiExec on
2018-11-23 18:01:15 R-self01-lgOffDly 0 s
2018-11-23 18:01:15 R-self01-lgOffTime unused
2018-11-23 18:01:15 R-self01-lgOffTimeMode absolut
2018-11-23 18:01:15 R-self01-lgOnDly 0 s
2018-11-23 18:01:15 R-self01-lgOnTime unused
2018-11-23 18:01:15 R-self01-lgOnTimeMode absolut
2018-11-23 18:01:15 R-self01-lgSwJtDlyOff off
2018-11-23 18:01:15 R-self01-lgSwJtDlyOn on
2018-11-23 18:01:15 R-self01-lgSwJtOff dlyOn
2018-11-23 18:01:15 R-self01-lgSwJtOn dlyOff
2018-11-23 18:01:15 R-self01-shCtDlyOff geLo
2018-11-23 18:01:15 R-self01-shCtDlyOn geLo
2018-11-23 18:01:15 R-self01-shCtOff geLo
2018-11-23 18:01:15 R-self01-shCtOn geLo
2018-11-23 18:01:15 R-self01-shCtValHi 100
2018-11-23 18:01:15 R-self01-shCtValLo 50
2018-11-23 18:01:15 R-self01-shMultiExec off
2018-11-23 18:01:15 R-self01-shOffDly 0 s
2018-11-23 18:01:15 R-self01-shOffTime unused
2018-11-23 18:01:15 R-self01-shOffTimeMode absolut
2018-11-23 18:01:15 R-self01-shOnDly 0 s
2018-11-23 18:01:15 R-self01-shOnTime unused
2018-11-23 18:01:15 R-self01-shOnTimeMode absolut
2018-11-23 18:01:15 R-self01-shSwJtDlyOff off
2018-11-23 18:01:15 R-self01-shSwJtDlyOn on
2018-11-23 18:01:15 R-self01-shSwJtOff dlyOn
2018-11-23 18:01:15 R-self01-shSwJtOn dlyOff
...
Angezeigt werden (fast) alle Register ohne Punkt, mit Ausnahme der unter defReg angezeigten Register. Die Register ActionType sind in Subs nun nur mit dem Punkt verfügbar.
ok, also wirklich alle Register wäre mit expert defReg,allReg hinzukriegen. Leider auch wieder nein, die Situation ist identisch zu Fall 2.
expert allReg,defReg liefert identische Ergebnisse zu Fall 1.
expert defReg,allReg,rawReg => es kommen nur die Rawdefinitionen.
2020.07.18 22:26:54 3: showreg startet
2020.07.18 22:26:54 5: showInternalValues in global = 0
2020.07.18 22:26:54 5: expert = defReg,allReg,rawReg
2020.07.18 22:26:54 5: R-self01-lgActionType = unknown
2020.07.18 22:26:54 5: .R-self01-lgActionType = jmpToTarget
2020.07.18 22:26:54 5: R-self01-lgCtDlyOff = unknown
2020.07.18 22:26:54 5: .R-self01-lgCtDlyOff = geLo
2020.07.18 22:26:54 3: showreg endet
READINGS:
...
2020-07-18 22:10:30 RegL_00. 00:00 02:81 05:40 0A:2C 0B:C8 0C:2F 12:32
2020-07-18 22:10:31 RegL_01. 00:00 08:00
2020-07-18 22:10:33 RegL_03.self01 00:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:14 0C:63 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:14 8C:63
...
Sieht so aus, dass immer nur die letzte Definition aus der expert-Liste gilt.
showInternalValues in global = 1 verbessert die Situation nicht wirklich. Nur mit expert defReg,allReg,rawReg bekommt man wirklich alle Register zu sehen und in den Subs verfügbar, aber mit Punkt. Aber leider eben auch einen vollen Bildschirm...
Problem ist nun gelöst. Siehe
https://forum.fhem.de/index.php/topic,113113.msg1074377.html#msg1074377 (https://forum.fhem.de/index.php/topic,113113.msg1074377.html#msg1074377)