Hallo zusammen,
gestern habe ich mal wieder ein Update meines FHEM 5.5 gemacht. Seit dem shutdown restart kann ich nun die Register Werte meines HM-CC-RT-DN und des HM-CC-TC nicht mehr auslesen. Bei beiden Geräte hilft auch kein getConfig. Merkwürdig ist, dass die Register-Werte mit get <DEVICE> reg all korrekt ausgegeben werden, mit get <DEVICE> reg dayTemp (z.B.) jedoch nicht.
Mein HM-CC-RT-DN:
Internals:
CFGFN /var/InternerSpeicher/fhem/FHEM/60_Flur.cfg
DEF 2357B304
LASTInputDev XX_HMLANInterface
MSGCNT 25
NAME FL_Heizung_Steuerung
NR 237
STATE T: 22.9 desired: 21 valve: 20 %
TYPE CUL_HM
XX_HMLANInterface_MSGCNT 25
XX_HMLANInterface_RAWMSG E2357B3,0000,198A8474,FF,FFC2,DA86102357B30000000AA8E50E1428
XX_HMLANInterface_RSSI -62
XX_HMLANInterface_TIME 2014-03-04 20:21:30
chanNo 04
device FL_Heizung
Readings:
2014-03-04 20:21:30 DayTemp Value not captur
2014-03-04 20:21:30 NightTemp Value not captur
2014-01-26 22:01:40 R-boostPeriod 5 min
2014-01-26 22:01:40 R-boostPos 80 %
2014-03-04 20:01:12 R-btnNoBckLight off
2014-01-26 22:01:40 R-dayTemp 21 C
2014-03-04 20:01:12 R-daylightSaveTime on
2014-03-04 20:01:12 R-decalcTime 11:00
2014-03-04 20:01:12 R-decalcWeekday Sat
2014-03-04 20:01:12 R-modePrioManu all
2014-03-04 20:01:12 R-modePrioParty all
2014-01-26 22:01:40 R-nightTemp 18 C
2014-03-04 20:01:12 R-noMinMax4Manu off
2014-03-04 20:01:12 R-regAdaptive on
2014-03-04 20:01:12 R-reguExtI 15
2014-03-04 20:01:12 R-reguExtP 30
2014-03-04 20:01:12 R-reguExtPstart 30
2014-03-04 20:01:12 R-reguIntI 17
2014-03-04 20:01:12 R-reguIntP 32
2014-03-04 20:01:12 R-reguIntPstart 36
2014-03-04 20:01:12 R-showInfo time
2014-03-04 20:01:12 R-showWeekday off
2014-03-04 20:01:08 R-sign off
2014-01-26 22:01:40 R-tempMax 30.5 C
2014-01-26 22:01:40 R-tempMin 4.5 C
2014-03-04 20:01:12 R-tempOffset 0.0K
2014-01-26 22:01:40 R-valveErrPos 15 %
2014-01-26 22:01:40 R-valveMaxPos 100 %
2014-01-26 22:01:40 R-valveOffsetRt 0 %
2014-03-04 20:01:12 R-winOpnBoost off
2014-01-26 22:01:40 R-winOpnDetFall 1.4 K
2014-03-04 20:01:12 R-winOpnMode on
2014-01-26 22:01:40 R-winOpnPeriod 15 min
2014-01-26 22:01:40 R-winOpnTemp 12 C
2014-03-04 20:21:30 ValvePosition 20 %
2014-03-04 20:21:30 desired-temp 21
2014-03-04 20:21:30 measured-temp 22.9
2014-03-04 20:21:30 mode auto
2014-03-04 20:21:30 motorErr ok
2014-03-04 20:21:30 state T: 22.9 desired: 21 valve: 20 %
2014-03-04 20:13:10 tempListFri 17:00 0.0 22:30 0.0 24:00 0.0
2014-03-04 20:13:10 tempListMon 17:00 0.0 22:00 0.0 24:00 0.0
2014-03-04 20:13:10 tempListSat 09:00 0.0 22:30 0.0 24:00 0.0
2014-03-04 20:13:10 tempListSun 09:00 0.0 22:00 0.0 24:00 0.0
2014-03-04 20:13:10 tempListThu 17:00 0.0 22:00 0.0 24:00 0.0
2014-03-04 20:13:10 tempListTue 17:00 0.0 22:00 0.0 24:00 0.0
2014-03-04 20:13:10 tempListWed 17:00 0.0 22:00 0.0 24:00 0.0
2014-03-04 20:13:10 tempList_State verified
Helper:
getCfgListNo
Role:
chn 1
Shregr:
07 00
Shadowreg:
Attributes:
alias Heizung
event-min-interval ValvePosition:900,desired-temp:900,measured-temp:900
event-on-change-reading desired-temp,measured-temp,ValvePosition
event-on-update-reading ^(?:(?!desired|measured|ValvePos).)*$
expert 1
group 20-Heizung
icon max_heizungsthermostat
model HM-CC-RT-DN
peerIDs
room Flur
userReadings DayTemp {getDayTemp("FL_Heizung_Steuerung","dayTemp");;}, NightTemp {getDayTemp("FL_Heizung_Steuerung","nightTemp");;}
Und der HM-CC-TC:
Internals:
CFGFN /var/InternerSpeicher/fhem/FHEM/60_Wohnzimmer.cfg
DEF 20122902
LASTInputDev XX_HMLANInterface
MSGCNT 27
NAME WZ_Thermostat_Regler
NR 316
STATE 15 %
TYPE CUL_HM
XX_HMLANInterface_MSGCNT 27
XX_HMLANInterface_RAWMSG E201229,0000,198AE89D,FF,FFA3,1BA2582012291E6EE50026
XX_HMLANInterface_RSSI -93
XX_HMLANInterface_TIME 2014-03-04 20:21:55
chanNo 02
device WZ_Thermostat
peerList WZ_Heizung_Sofa,WZ_Heizung_Essecke,
Readings:
2014-03-04 19:25:49 CommandAccepted yes
2014-03-04 20:21:55 DayTemp Value not captur
2014-03-04 20:21:55 NightTemp Value not captur
2014-03-03 22:29:47 R-controlMode auto
2014-03-04 17:57:15 R-day-temp 21.5 C
2013-12-21 14:54:05 R-decalHr 11 h
2013-12-21 14:54:05 R-decalMin 0 min
2014-03-03 22:29:47 R-decalcDay Sat
2014-03-03 22:29:47 R-displayMode temp-hum
2014-03-03 22:29:47 R-displayTemp actual
2014-03-03 22:29:47 R-displayTempUnit celsius
2014-03-03 22:29:47 R-mdTempValve auto
2014-03-04 17:57:15 R-night-temp 18 C
2014-03-04 17:57:15 R-party-temp 20 C
2014-03-04 19:25:49 desired-temp 21.5
2014-01-29 22:54:54 desired-temp-manu 21.0
2014-03-04 19:24:00 peerList WZ_Heizung_Sofa,WZ_Heizung_Essecke,
2014-03-04 19:25:49 recentStateType ack
2014-03-04 20:21:55 state 15 %
2014-03-04 17:47:56 tempListFri 17:00 18.0 22:00 21.5 24:00 18.0
2014-03-04 17:47:56 tempListMon 17:00 18.0 22:00 21.5 24:00 18.0
2014-03-04 17:47:56 tempListSat 09:00 18.0 22:30 21.5 24:00 18.0
2014-03-04 17:47:56 tempListSun 09:00 18.0 22:00 21.5 24:00 18.0
2014-03-04 17:47:56 tempListThu 17:00 18.0 22:00 21.5 24:00 18.0
2014-03-04 17:47:56 tempListTue 17:00 18.0 22:00 21.5 24:00 18.0
2014-03-04 17:47:56 tempListWed 17:00 18.0 22:00 21.5 24:00 18.0
2014-03-04 17:47:56 tempList_State verified
Helper:
Role:
chn 1
Attributes:
alias Regler Thermostat
expert 1
icon max_wandthermostat
model HM-CC-TC
peerIDs 00000000,1E6EE501,203D0201,
room hidden
userReadings DayTemp {getDayTemp("WZ_Thermostat_Regler","day-temp");;}, NightTemp {getDayTemp("WZ_Thermostat_Regler","night-temp");;}
Bei beiden funktioniert:
get FL_Heizung_Steuerung reg all
FL_Heizung_Steuerung type:thermostat -
list:peer register :value
1: sign :off
7: boostPeriod :5 min
7: boostPos :80 %
7: btnNoBckLight :off
7: dayTemp :21 C
7: daylightSaveTime :on
7: decalcTime :11:00
7: decalcWeekday :Sat
7: modePrioManu :all
7: modePrioParty :all
7: nightTemp :18 C
7: noMinMax4Manu :off
7: regAdaptive :on
7: reguExtI :15
7: reguExtP :30
7: reguExtPstart :30
7: reguIntI :17
7: reguIntP :32
7: reguIntPstart :36
7: showInfo :time
7: showWeekday :off
7: tempMax :30.5 C
7: tempMin :4.5 C
7: tempOffset :0.0K
7: valveErrPos :15 %
7: valveMaxPos :100 %
7: valveOffsetRt :0 %
7: winOpnBoost :off
7: winOpnDetFall :1.4 K
7: winOpnMode :on
7: winOpnPeriod :15 min
7: winOpnTemp :12 C
Temp set: Sat 09:00 0.0 C
Temp set: Sat 22:30 0.0 C
Temp set: Sat 24:00 0.0 C
Temp set: Sun 09:00 0.0 C
Temp set: Sun 22:00 0.0 C
Temp set: Sun 24:00 0.0 C
Temp set: Mon 17:00 0.0 C
Temp set: Mon 22:00 0.0 C
Temp set: Mon 24:00 0.0 C
Temp set: Tue 17:00 0.0 C
Temp set: Tue 22:00 0.0 C
Temp set: Tue 24:00 0.0 C
Temp set: Wed 17:00 0.0 C
Temp set: Wed 22:00 0.0 C
Temp set: Wed 24:00 0.0 C
Temp set: Thu 17:00 0.0 C
Temp set: Thu 22:00 0.0 C
Temp set: Thu 24:00 0.0 C
Temp set: Fri 17:00 0.0 C
Temp set: Fri 22:30 0.0 C
Temp set: Fri 24:00 0.0 C
Nicht geht:
get FL_Heizung_Steuerung reg dayTemp
Value not captured
Hat jemand eine Idee woran es liegen könnte?
Danke und Grüße
Jupp
Hi Jupp,
userReadings
DayTemp {getDayTemp("WZ_Thermostat_Regler","day-temp");;},
NightTemp {getDayTemp("WZ_Thermostat_Regler","night-temp");;}
getDayTemp ist eine eigene Funktion? warum?
Systemeigen waere
userReadings
DayTemp {ReadingsVal("WZ_Thermostat_Regler","R-dayTemp","empty");;},
NightTemp {ReadingsVal("WZ_Thermostat_Regler","R-nightTemp","empty");;}
'-' ist nicht im Registernamen
Gruss Martin
Hallo Martin,
die Funktion nutze ich, da ich die Register-Werte ohne das nachfolgende "C" benötige; also den reinen numerischen Wert.
sub getDayTemp {
my $Device = shift;
my $register = shift;
my $Temp = fhem("get ".$Device." reg ".$register,1);
# Und jetzt noch das C für Celsius wegschneiden
my $Laenge = length($Temp);
$Temp = substr($Temp,0,$Laenge - 2);
return($Temp);
}
Geht wahrscheinlich auch eleganter... ;)
Der HM-CC-TC (WZ_Thermostat*) und der HM-CC-RT-DN (FL_Heizung*) unterscheiden sich leider in den Registerwerten. Der TC nutzt einen Namen mit "-", der RT-DN ohne :-\
HM-CC-TC --> day-temp / night-temp
HM-CC-RT-DN --> dayTemp / nightTemp
An den UserReadings kann es also nicht liegen. Bleibt für mich immer noch die Frage, warum bei beiden Geräten ein
get <DEVICE> reg all
ohne Probleme aller Registerwerte ausgibt, das entsprechende
get <DEVICE> reg dayTemp/day-temp
nicht (Value not captured) :(
Viele Grüße
Der ratlose Jupp
Hi Jupp,
werde ich heute Abend einmal testen. Ist das nur bei dem Register der Fall? ... werden ich sehen
Gruss Martin
Hallo Martin,
ich habe gerade ein paar Register durchprobiert. Das Problem besteht bei allen gleichermaßen. Dabei habe ich auch festgestellt, dass ich bei keinem meiner HM-Devices die Register auslesen kann. :-\
Was ich jetzt noch nicht probiert habe ist die Geräte neu zu pairen. Wäre dann mein letzter Ausweg.
Viele Grüße
Jupp
die Aenderung ist abgegeben. Jetzt aus SVN oder morgen per update
Neues Kommando: get ... regVal gibt den Wert ohne Einheit aus - falls du so etwas brauchst
Gruss Martin
Update gemacht und siehe da...alles perfekt :D
Und ja, das neue Kommando kann ich sehr gut gebrauchen.
Vielen Dank!
Jupp