Anzeige von Thermostaten und Ventilen in einer Readingsgroup

Begonnen von slor, 01 Dezember 2017, 23:28:08

Vorheriges Thema - Nächstes Thema

slor

Hallo zusammen,
ich habe aus dem Wiki die folgende Readingsgroup nachgebaut: https://wiki.fhem.de/wiki/ReadingsGroup#Readings_aus_zus.C3.A4tzlichen_Devices
Es funktioniert auch schon fast :-)
Ich poste hier, da es glaube ich nicht readingsgroup spezifisch ist.
Ich habe den regex für die Namen an mein Schema angepasst.
Meine Thermostate (HM-TC-IT-WM-W-EU) und Ventile (HM-CC-RT-DN) sind alle nach dem folgenden Schema benamt: Stockwerk_Zimmer_Typ (EG_WZ_HT, EG_WZ_V1)
Die Thermostate werden auch ohne Probleme angezeigt. Ich frage den Climate Channel ab
Nur bekomme ich die 99_myutils nicht so angepasst, dass auch die daten der ventilantriebe ausgelesen werden.
Folgendes funktioniert leider nicht:
#namen des ventil device aus thermostat device ableiten
sub valveOfDevice ($) {
  my ($DEVICE) = @_;
 
  if ($DEVICE =~ m/AZ/) {
return "(KG|EG|OG|DG).(WZ|KU|AZ|BD|WC|SZ|GZ|KZ).(V1|V2)".substr($DEVICE,11).".Nord";
  } else {
return "(KG|EG|OG|DG).(WZ|KU|AZ|BD|WC|SZ|GZ|KZ).(V1|V2)".substr($DEVICE,11); 
  }
}


keine Ahnung ob das überhaupt mit meinen device namen so funktionieren kann.

Was auch nicht angezeigt wird, ist der Batterie Status. Der Existiert im Climate Channel nicht. Ideen, wie ich den bekomme?

Hier noch ein List der RG:

Internals:
   DEF        <Raum>,<Tist>,<Tsoll>,<Mode>,<Tnight>,<Tday>,<Hum>,<BatTC>,<Vist>,<Vsoll>,<Verr>,<BatVD> (KG|EG|OG|DG).(WZ|KU|AZ|BD|WC|SZ|GZ|KZ).HT.Climate:measured-temp,desired-temp,controlMode,R-nightTemp,R-dayTemp,humidity,battery,ValvePosition@{valveOfDevice($DEVICE)},ValveDesired@{valveOfDevice($DEVICE)},R-valveErrorPos@{valveOfDevice($DEVICE)},battery@{valveOfDevice($DEVICE)}
   NAME       myTemp
   NR         541
   NTFY_ORDER 50-myTemp
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   CONTENT:
     DG_AZ_HT_Climate 1
     DG_GZ_HT_Climate 1
     EG_WC_HT_Climate 1
     EG_WZ_HT_Climate 1
     OG_BD_HT_Climate 1
     OG_GZ_HT_Climate 1
     OG_KZ_HT_Climate 1
     OG_SZ_HT_Climate 1
   CONTENT2:
   DEVICES:
     ARRAY(0xba19c0a0)
     ARRAY(0xba1dd128)
     ARRAY(0xba18b7d8)
     ARRAY(0xb9ef52d8)
     ARRAY(0xb994e468)
     ARRAY(0xb9e21290)
     ARRAY(0xb9d49518)
     ARRAY(0xb9e7ddc0)
     ARRAY(0xb9ef2820)
   fhem:
     lastDefChange 10
     last_update 1512167016.65696
   helper:
     DEF
     nameStyle  style="color:black"
     commands:
       desired-temp desired-temp:
     positions:
       DG_AZ_HT_Climate.R-dayTemp 2:5
       DG_AZ_HT_Climate.R-nightTemp 2:4
       DG_AZ_HT_Climate.controlMode 2:3
       DG_AZ_HT_Climate.desired-temp 2:2
       DG_AZ_HT_Climate.humidity 2:6
       DG_AZ_HT_Climate.measured-temp 2:1
       DG_GZ_HT_Climate.R-dayTemp 3:5
       DG_GZ_HT_Climate.R-nightTemp 3:4
       DG_GZ_HT_Climate.controlMode 3:3
       DG_GZ_HT_Climate.desired-temp 3:2
       DG_GZ_HT_Climate.humidity 3:6
       DG_GZ_HT_Climate.measured-temp 3:1
       EG_WC_HT_Climate.R-dayTemp 4:5
       EG_WC_HT_Climate.R-nightTemp 4:4
       EG_WC_HT_Climate.controlMode 4:3
       EG_WC_HT_Climate.desired-temp 4:2
       EG_WC_HT_Climate.humidity 4:6
       EG_WC_HT_Climate.measured-temp 4:1
       EG_WZ_HT_Climate.R-dayTemp 5:5
       EG_WZ_HT_Climate.R-nightTemp 5:4
       EG_WZ_HT_Climate.controlMode 5:3
       EG_WZ_HT_Climate.desired-temp 5:2
       EG_WZ_HT_Climate.humidity 5:6
       EG_WZ_HT_Climate.measured-temp 5:1
       OG_BD_HT_Climate.R-dayTemp 6:5
       OG_BD_HT_Climate.R-nightTemp 6:4
       OG_BD_HT_Climate.controlMode 6:3
       OG_BD_HT_Climate.desired-temp 6:2
       OG_BD_HT_Climate.humidity 6:6
       OG_BD_HT_Climate.measured-temp 6:1
       OG_GZ_HT_Climate.R-dayTemp 7:5
       OG_GZ_HT_Climate.R-nightTemp 7:4
       OG_GZ_HT_Climate.controlMode 7:3
       OG_GZ_HT_Climate.desired-temp 7:2
       OG_GZ_HT_Climate.humidity 7:6
       OG_GZ_HT_Climate.measured-temp 7:1
       OG_KZ_HT_Climate.R-dayTemp 8:5
       OG_KZ_HT_Climate.R-nightTemp 8:4
       OG_KZ_HT_Climate.controlMode 8:3
       OG_KZ_HT_Climate.desired-temp 8:2
       OG_KZ_HT_Climate.humidity 8:6
       OG_KZ_HT_Climate.measured-temp 8:1
       OG_SZ_HT_Climate.R-dayTemp 9:5
       OG_SZ_HT_Climate.R-nightTemp 9:4
       OG_SZ_HT_Climate.controlMode 9:3
       OG_SZ_HT_Climate.desired-temp 9:2
       OG_SZ_HT_Climate.humidity 9:6
       OG_SZ_HT_Climate.measured-temp 9:1
     recalc:
       undef
       ARRAY(0xb9353a28)
       undef
       undef
       undef
       undef
       ARRAY(0xba18a5b8)
     valueFormat:
       R-dayTemp  %.1f &deg;C
       R-nightTemp %.1f &deg;C
       R-valveErrorPos %.0f %%
       ToutIst    %.1f &deg;C
       ValveDesired %.0f %%
       ValvePosition %.0f %%
       humidity   %.0f
%%
       measured-temp %0.1f &deg;C
     valueIcon:
       battery.low batterie@red
       battery.ok batterie@lightgreen
     values:
       formated:
         undef
         ARRAY(0xb9e03ea8)
         ARRAY(0xb9e21bc8)
         ARRAY(0xb9e7b9c8)
         ARRAY(0xb9e16d90)
         ARRAY(0xba1941f0)
         ARRAY(0xb9e08ff8)
       orig:
         undef
         ARRAY(0xba196390)
         ARRAY(0xba2cc3e8)
         ARRAY(0xba189878)
         ARRAY(0xba1983f0)
         ARRAY(0xba188088)
         ARRAY(0xb9e12280)
       prefixsuffix:
         undef
         ARRAY(0xb9e74020)
         ARRAY(0xba2cd138)
         ARRAY(0xba2ca290)
         ARRAY(0xba196360)
         ARRAY(0xba0fac10)
         ARRAY(0xba18b460)
Attributes:
   commands   { 'desired-temp' => 'desired-temp:' }
   group      Thermostat
   nameStyle  style="color:black"
   room       RG
   valueFormat { 'measured-temp' => "%0.1f &deg;C",'ToutIst' => "%.1f &deg;C",'R-nightTemp' => "%.1f &deg;C",'R-dayTemp' => "%.1f &deg;C",'humidity' => "%.0f
%%",'ValvePosition' => "%.0f %%",'ValveDesired' => "%.0f %%",'R-valveErrorPos' => "%.0f %%" }
   valueIcon  {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red'}


kadettilac89

Zitat von: slor am 01 Dezember 2017, 23:28:08


Was auch nicht angezeigt wird, ist der Batterie Status. Der Existiert im Climate Channel nicht. Ideen, wie ich den bekomme?


Ich habe mir hierfür ein userreading angelegt mit dem ich batteryLevel vom Hauptchannel übernehme. Dann liegt es als Reading vor und du kannst es in die Readingsgroup aufnehmen.