Readings von mehreren Channels eines Devices in einer Zeile kombinieren

Begonnen von wowogiengen, 12 April 2018, 20:40:16

Vorheriges Thema - Nächstes Thema

wowogiengen

Hallo,
ich habe mehrere Homematic-Devices HM-TC-IT-WM-W-EU, von denen ich die Channels 1 (Die IstWerte) und Channel 2 (Die Sollwerte) sowie das Hauptdevice verwenden möchte.

Ich weiß aber nicht, wie ich es in der Readingsgroup anstellen soll, dass in einer Zeile für den Thermostat die Istwerte measured-temp, humidity und batterlevel sowie die Sollwerte desired-temp (und von nem Device Aktor dann noch der State on/off) darstellen soll.

Bisher bin ich soweit:


define MyTHYReadings readingsGroup <<b>Raumklima</b>>,<%temp_temperature>,<%temp_temperature>,<%weather_humidity>,<%measure_battery_50>\
<Raum>,<°C>,<°C>,< %>,<Volt> HzgStatus.*:measured-temp,desired-temp,humidity,[bB]atteryLevel\
Hzg[Thermostat].*:measured-temp.*,desired-temp.*,[bB]atteryLevel
attr MyTHYReadings mapping %ALIAS
attr MyTHYReadings notime 1



Aber dann zeigt er mir zuerst die Devicechannels für die Istwerte an, und da auch nur die Luftfeuchte - aber klar, weil der Channel 1 die measured-temp als temperature kennt, desired-temp gar nicht, und dann humidity wieder als die Luftfeuchte.
In der nächsten Gruppe seh ich dann die Devicechannels für die Sollwerte, da passen die beiden Temperaturwerte in der richtigen Spalte, die Luftfeuchte fehlt wieder, und die Batteriespannung ist auch da, aber zu weit links:

Raumklima            
Raum°C°C%Volt
HzgStatusBad37
HzgStatusBuero34
HzgStatusFlur42
HzgStatusHWR37
HzgStatusSchlafzimmer41
HzgStatusToilette44
HzgStatusWohnzimmer40
HzgThermostatBad23.123.02.8
HzgThermostatBuero24.023.02.8
HzgThermostatFlur24.120.02.8
HzgThermostatHWR23.620.02.9
HzgThermostatSchlafzimmer24.123.52.7
HzgThermostatToilette23.620.02.9
HzgThermostatWohnzimmer25.025.02.8

Aus der Doku werd ich nicht schlau, da stehen zwar viele Vorgaben, aber zuwenig Beispiele, wie man die Vorgaben anwenden könnte...

Viele Grüße
Wolfgang

wowogiengen

darf ich das mal nach oben holen?

Gesendet von meinem SM-A310F mit Tapatalk


Beta-User

Wenn du nach konkreten Anwendungsbeispielen suchst, ist das m.E. im Wiki ganz vorbildlich gemacht (auch wenn das teilweise sehr komplex ist).

Am nächsten an deinen Anforderungen scheint mir https://wiki.fhem.de/wiki/ReadingsGroup#Heizungsteuerung_f.C3.BCr_HM_Wand-_und_Heizk.C3.B6rperthermostate zu sein.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MadMax-FHEM

Bis auf das mit der Batterie aus dem Hauptdevice ist es doch ganz einfach!?

Im Channel _Climate (02) des HM-TC-IT-WM-W-EU ist doch alles (bis auf Batterie) drin (zumindest bei mir):

desired-temp: WunschTemp
measured-temp: aktuelle IST-Temp
humidity: aktuelle Luftfeuchte

Warum willst du aus dem Weather Channel (01) das selbe nochmal haben?

Hast du HomeMatic direkt an fhem angebunden oder per HMCCU?

Die Beispiele im Wiki gehen (soweit ich das überflogen habe) von direkter Anbindung aus.

Bei direkter Anbindung sollte sowas zumindest bis auf Batterie funktionieren:

define rgTemHum readingsGroup <Ist>,<Soll>,<Luftfeuchte> NAME=Wand.*_Climate:measured-temp,desired-temp,humidity
(vors. die Thermostate heißen irgendwas mit Wand...)

Für Batterie gibt es ja das '@' (wie im verlinkten Beispiel von Beta-User).
Du musst nur "generisch" auf den Namen des Haupt-Device kommen (vom Channel).
Wobei ich jetzt nicht weiß, ob an der Stelle perl-Code funktioniert...

Bei mir heißen alle Wandthermostate eben Wandthermostat_Raumname und dann eben die Channels dran Wandthermostat_Raumname_Climate etc.

D.h. es könnte ein: batteryLevel@{(split(/_/, $NAME))[0]} funktionieren...

Aber wie gesagt, nutze ich nicht und das verlinkte Beispiel geht halt direkt "hardcoded" (soweit ich gesehen habe) über die Namen...
...also nicht "generisch" (wie mein obiges Beispiel und evtl. auch das mit Batterie)...

Ich habe für Batterie (auch aus anderen Gründen) eine eigene RG...

Auch ein list eines Wandthermostaten würde helfen und auch ein wenig wie deine Namensgebung so ist (wegen generisch)...
...ok gut die Namensgebung kann man aus dem ersten Post ein wenig erahnen...
...allerdings für generische Programmierung ist das leider wenig (gar nicht) geeignet...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mumpitzstuff

define MyTHYReadings readingsGroup <<b>Raumklima</b>>,<%temp_temperature>,<%temp_temperature>,<%weather_humidity>,<%measure_battery_50>\
<Raum>,<°C>,<°C>,< %>,<Volt>\
HzgStatus.*:measured-temp.*,desired-temp.*,humidity.*,[bB]atteryLevel\
HzgThermostat.*:measured-temp.*,desired-temp.*,humidity.*,[bB]atteryLevel
attr MyTHYReadings mapping %ALIAS
attr MyTHYReadings notime 1


Vielleicht so? Status und Thermostat müssten doch fast gleich aussehen und nicht unterschiedlich sein oder? Das könnte zumindest deine Lücken erklären. Wenn ich dich richtig verstanden habe, ist das doch dein Problem.