ReadingsGroup Daten nebeneinander

Begonnen von stefan-dd, 14 September 2017, 22:37:11

Vorheriges Thema - Nächstes Thema

stefan-dd

Hallo,
Ich versuche mich an einer übersichtlichen Heizungssteuerung vergeblich.
Ich möchte die Readings nebeneinander dargestellt bekommen, aber irgendwie will es nicht. Wenn ich hinter den Redings ein Freizeichen einfüge, kommen sie alle untereinander. So wie jetzt abgebildet wird nur der erste Wert angezeigt.

defmod Heizungswerte readingsGroup <%sani_heating>,<Ist>,<Soll>,<Luftfeuchte> Klima_.*:Temperature,Heizung.*:desired_value,Klima_.*:Humidity,

Es sollen am Ende mal alle Zimmer tabellarisch angezeigt werden.
Irgendwie finde ich in der Commandref nicht die richtige funktionierende Möglichkeit.
Was mache ich falsch?

Danke

amenomade

Klima_.*:Temperature,Heizung.*:desired_value,Klima_.*:Humidity,

Du kannst nicht so mischen. Er kann nicht die Ergebnisse von den verschiedenen Regex verknüpfen. Du musst ein Regex (oder devicespec) für alle Devices eintragen, und dann die Liste von den Readings:
Klima_.*:Temperature,desired_value,Humidity,wenn alle Klima* Devices die entspr. Readings haben. Wenn nicht, dann musst Du eine Funktion schreiben, die dynamisch den Wert von z.B. desired_value kalkuliert. Wie dieses Beispiel: https://wiki.fhem.de/wiki/ReadingsGroup#Readings_aus_zus.C3.A4tzlichen_Devices
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

stefan-dd

Den Fehler habe ich verstanden.
Wie bekomme ich die Werte alle in die Devices Klima*?
Brauch ich da eine Extra Funktion?
Für was ist der Code "ValveDesired@{valveOfDevice($DEVICE)}" in dem Beispiel zuständig?

Danke

amenomade

ZitatFür was ist der Code "ValveDesired@{valveOfDevice($DEVICE)}" in dem Beispiel zuständig?
Um für z.B. ein Device Thermostat.Bad, den Wert vom Device Ventil.Bad zu holen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

stefan-dd

#4
Danke, leider komme ich damit noch nicht zurecht.

Wie muss ich die Werte in meinem Fall ersetzen?

<%sani_heating>,<Ist>,<Luftfeuchte>,<Soll> Klima_(KiZi):Temperature,Humidity,desired_value@{valveOfDevice($DEVICE)}

Vom Device Heizung.* sollen die Werte desired_value geholte werden. Heizung.*:desired_value


Wie muss die Subroutine aussehen? Er zeiht 6 Zeichen von "Klima_" ab und setzt den Rest an (Heizung_) an. Oder habe ich das falsch verstanden?

sub valveOfDevice ($){
  my ($DEVICE) = @_;
 
  if ($DEVICE =~ m/AZ/) {
return "Heizung_".substr($DEVICE,6);
  }
}


Danke