GELÖST - "Value not captured" beim Auslesen von Registers

Begonnen von Jupp, 04 März 2014, 20:28:04

Vorheriges Thema - Nächstes Thema

Jupp

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

martinp876

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

Jupp

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

martinp876

Hi Jupp,

werde ich heute Abend einmal testen. Ist das nur bei dem Register der Fall? ... werden ich sehen

Gruss Martin

Jupp

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

martinp876

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

Jupp

Update gemacht und siehe da...alles perfekt   :D
Und ja, das neue Kommando kann ich sehr gut gebrauchen.

Vielen Dank!
Jupp