FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Jupp am 04 März 2014, 20:28:04

Titel: GELÖST - "Value not captured" beim Auslesen von Registers
Beitrag von: Jupp am 04 März 2014, 20:28:04
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
Titel: Antw:"Value not captured" beim Auslesen von Registers
Beitrag von: martinp876 am 05 März 2014, 08:17:42
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
Titel: Antw:"Value not captured" beim Auslesen von Registers
Beitrag von: Jupp am 05 März 2014, 20:02:52
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
Titel: Antw:"Value not captured" beim Auslesen von Registers
Beitrag von: martinp876 am 06 März 2014, 08:09:37
Hi Jupp,

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

Gruss Martin
Titel: Antw:"Value not captured" beim Auslesen von Registers
Beitrag von: Jupp am 06 März 2014, 16:39:09
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
Titel: Antw:"Value not captured" beim Auslesen von Registers
Beitrag von: martinp876 am 06 März 2014, 18:53:46
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
Titel: Antw:"Value not captured" beim Auslesen von Registers
Beitrag von: Jupp am 07 März 2014, 17:15:44
Update gemacht und siehe da...alles perfekt   :D
Und ja, das neue Kommando kann ich sehr gut gebrauchen.

Vielen Dank!
Jupp