[gelöst] userReadings: geht so was?

Begonnen von synaps-o-dan, 19 August 2017, 17:33:27

Vorheriges Thema - Nächstes Thema

synaps-o-dan

Statt: attr mySensor userReadings myReading {ReadingsVal("mySensor ", "myReading ", undef)}
Lierber: attr mySensor userReadings myReading {ReadingsVal($self, "myReading ", undef)}
oder so ($device, $SELF, $DEVICE)
Geht das irgendwie?
Grüße,
Daniel
fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter

amenomade

Vermutlich nicht. Was ist der Sinn? Wie soll fhem den Wert kalkulieren? Ein Reading, das als Wert sich selbst hat???
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

synaps-o-dan

Im Kontext des userReadings soll der Sensor eines seiner eigenen Readings aufrufen. So, wie es da steht, macht es natürlich wenig Sinn. Sinvoll wird es z.B., wenn eine Formel angewendet wird:
attr mySensor userReadings myReading {ReadingsVal($self, "myReading ", undef)/1000+10}
oder so. Der Name des Sensordevices ("mySensor") taucht nicht mehr in der Definition des userReadings auf. Hintergrund: ich habe insgesamt acht Sensoren, bei denen ich aus den Readings einen neuen Messwert generieren möchte (Umrechnung von Temperatur und einem gemessenen Spannungswert in die relative Luftfeuchtigkeit), und das könnte man sehr schnell da so definieren:
attr Sensor_.* userReadings humidity {magicformula(ReadingsVal($self, "VDD", undef), ReadingsVal($self, "temperature", undef))}
und muss dann nicht acht mal ein userReading mit dem ausgeschriebenen Namen des Sensors verwenden.
(Sensor_.* findet per Regex die acht Sensoren.)
LG,
Daniel
fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter

amenomade

Ausser (ein bisschen anders) mit templates zu arbeiten, sehe ich nicht wie es genau zu machen
https://fhem.de/commandref_DE.html#template
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

krikan

$name verwenden; ein Beispiel:
attr <device> userReadings tempKorr:temperature.* {sprintf("%0.2f C", ReadingsNum($name,"temperature",0)+<Temperaturoffset>);}

Gruß. Christian

synaps-o-dan

Zitat von: krikan am 19 August 2017, 18:57:52
$name verwenden; ein Beispiel:
attr <device> userReadings tempKorr:temperature.* {sprintf("%0.2f C", ReadingsNum($name,"temperature",0)+<Temperaturoffset>);}

Gruß. Christian

Cool, funktioniert! Hätte ich da auch selbst draufkommen können (Wiki, Commandref?)
Vielen Dank,
Daniel
fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter