FHEM Forum

FHEM => Automatisierung => Thema gestartet von: uwirt am 02 April 2018, 17:03:02

Titel: Ein device - mehrere userReadings
Beitrag von: uwirt am 02 April 2018, 17:03:02
Ich habe in meinem Gardena device verschiedene readings die ich mit userReadings umbenenne und die dann dieselben Werte anzeigen sollen wie die ursprünglichen readings. Der Befehl den ich dazu verwende ist:

attr Gardena_Terrasse userReadings temperature_out { ReadingsVal("Gardena_Terrasse","ambient_temperature-temperature",0);;}

Das funktioniert soweit so gut. Nun habe ich vier weitere readings im selben device die ich ebenso umbenennen möchte. Wenn ich denselben Befehl mit den Bezeichnungen für die anderen readings eingebe werden die Namen zwar hinzugefügt aber der Wert des vorhergehenden userReading wird dann jeweils nicht mehr aktualisiert.

Wie kann ich mehrere readings eines devices mittels userReadings so umbenennen dass die Werte für die userReadings jeweils zusammen mit den ursprünglichen Readings aktualisiert werden?

Danke für die Hilfe
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: Otto123 am 02 April 2018, 17:36:35
Hi,

den Begriff umbenennen finde ich etwas deplatziert.
Du solltest einfach mal Deinen Codeversuch posten, der nicht geht. So weiß keiner was Du gemacht hast und was nicht gehen soll.
Ein list Gardena_Terrasse wäre auch gut.

ZitatuserReadings
Komma getrennte Liste von benutzerdefinierten Readings. Jede Definition hat folgendes Format:
<reading>[:<trigger>] [<modifier>] { <perl code> }
Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der Gerätereadings gesetzt, indem das spezifizierte perl code { <perl code> } ausgeführt wird, und dessen Wert dem Reading zugewiesen wird. Falls <trigger> spezifiziert ist, dann findet diese Ausführung nur dann statt, falls einer der aktualisierten Readings dem regexp <trigger> entspricht (matched).

Gruß Otto
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: CoolTux am 02 April 2018, 18:43:58

attr Gardena_Terrasse userReadings temperature_out:ambient_temperature-temperature.* { ReadingsVal($name,"ambient_temperature-temperature",0)}, temperature_out2:ambient_temperature-temperature.* { ReadingsVal($name,"ambient_temperature-temperature2",0)}


Ich hoffe es ist zu erkennen wie es geht. Frage mich gerade was Du gegen meine Readingsbenennung hast  ;D
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: uwirt am 02 April 2018, 20:14:52
Hier schon mal das listing:

Internals:
   DEF        81822f43-640f-47aa-8c98-f37f849e905a sensor
   DEVICEID   81822f43-640f-47aa-8c98-f37f849e905a
   Gardena_MSGCNT 112
   Gardena_TIME 2018-04-02 20:10:19
   IODev      Gardena
   LASTInputDev Gardena
   MSGCNT     112
   NAME       Gardena_Terrasse
   NR         55
   STATE      T: 11°C, H: 44%, L: 39lux
   TYPE       GardenaSmartDevice
   VERSION    0.4.1
   READINGS:
     2018-04-02 10:40:10   ambient_temperature-frost_warning no_frost
     2018-04-02 20:10:19   ambient_temperature-temperature 11
     2018-03-31 12:27:01   battery-disposable_battery_status ok
     2018-04-02 20:10:19   battery-level   100
     2018-03-31 13:12:18   brightness      0
     2018-03-31 12:27:01   device_info-category sensor
     2018-04-02 19:36:15   device_info-last_time_online 2018-04-02 19:35:52
     2018-03-31 12:27:01   device_info-manufacturer Gardena
     2018-03-31 12:27:01   device_info-product 2-DEVICE
     2018-03-31 12:27:01   device_info-serial_number 00003011
     2018-03-31 12:27:01   device_info-sgtin 3034F8EE9012674000000BC3
     2018-03-31 12:27:01   device_info-version 1.0.3-2.5.2-1.2.5-ICD1.17_1.0.18
     2018-03-31 12:27:01   firmware-firmware_command idle
     2018-03-31 12:27:01   firmware-firmware_status up_to_date
     2018-03-31 12:27:01   firmware-firmware_update_start 1
     2018-03-31 12:27:01   firmware-firmware_upload_progress 0
     2018-03-31 12:27:01   firmware-inclusion_status included
     2018-03-31 15:28:00   humidity        64
     2018-04-02 20:10:19   humidity-humidity 44
     2018-04-02 20:10:19   light-light     39
     2018-04-01 16:40:03   radio-connection_status unknown
     2018-04-02 20:10:19   radio-quality   60
     2018-04-02 13:43:17   radio-state     good
     2018-04-02 20:10:19   rssi            60
     2018-04-02 20:10:19   soil_temperature-temperature 10
     2018-04-02 20:10:19   state           T: 11°C, H: 44%, L: 39lux
     2018-04-02 12:33:20   temperature_ground 4
     2018-03-31 18:28:36   temperature_out 6
Attributes:
   IODev      Gardena
   model      sensor
   room       GardenaSmart
   userReadings rssi { ReadingsVal("Gardena_Terrasse","radio-quality",0);}


Wie man sieht wurde rssi 60 von radio-quality 60 übernommen. Die anderen readings wie zum Beispiel humidity (64) und humidity-humidity (44) stimmen nicht überein.
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: CoolTux am 02 April 2018, 20:17:41
Hast du Dir mein Beispiel angeschaut?
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: Otto123 am 02 April 2018, 20:18:52
Zitat von: uwirt am 02 April 2018, 20:14:52
Wie man sieht wurde rssi 60 von radio-quality 60 übernommen. Die anderen readings wie zum Beispiel humidity (64) und humidity-humidity (44) stimmen nicht überein.
Dafür ist aber auch das userreadings zu kurz  ;D
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: uwirt am 02 April 2018, 21:33:40
Ich habe mich an das Beispiel von CoolTux gehalten:

temperature_ground:soil_temperature-temperature.* { ReadingsVal("Gardena_Terrasse","soil_temperature-temperature",0);}, temperature_out:ambient_temperature-temperature.* { ReadingsVal("Gardena_Terrasse","ambient_temperature-temperature",0);;}, humidity:humidity-humidity.* { ReadingsVal("Gardena_Terrasse","humidity-humidity",0);;}, brightness:light-light.* { ReadingsVal("Gardena_Terrasse","light-light",0);;}, rssi:radio-quality.* { ReadingsVal("Gardena_Terrasse","radio-quality",0);;}

... und es hat funktioniert!

Besten Dank für die rasche Hilfe
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: CoolTux am 02 April 2018, 21:37:15
Zitat von: uwirt am 02 April 2018, 21:33:40
Ich habe mich an das Beispiel von CoolTux gehalten:

temperature_ground:soil_temperature-temperature.* { ReadingsVal("Gardena_Terrasse","soil_temperature-temperature",0);}, temperature_out:ambient_temperature-temperature.* { ReadingsVal("Gardena_Terrasse","ambient_temperature-temperature",0);;}, humidity:humidity-humidity.* { ReadingsVal("Gardena_Terrasse","humidity-humidity",0);;}, brightness:light-light.* { ReadingsVal("Gardena_Terrasse","light-light",0);;}, rssi:radio-quality.* { ReadingsVal("Gardena_Terrasse","radio-quality",0);;}

... und es hat funktioniert!

Besten Dank für die rasche Hilfe

Kleiner Tip. Statt Gardena_Terrasse in ReadingsVal zu verwenden, nehme lieber $name. Solltest Du mal das Device umbenennen, bekommst keine Probleme.
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: uwirt am 03 April 2018, 08:42:47
Zitat von: CoolTux am 02 April 2018, 21:37:15
Kleiner Tip. Statt Gardena_Terrasse in ReadingsVal zu verwenden, nehme lieber $name. Solltest Du mal das Device umbenennen, bekommst keine Probleme.

Besten Dank für den Tipp!


Sent from my iPad using Tapatalk
Titel: Antw:Ein device - mehrere userReadings
Beitrag von: rudolfkoenig am 03 April 2018, 22:02:54
ZitatStatt Gardena_Terrasse in ReadingsVal zu verwenden, nehme lieber $name.
Noch besser: $NAME (https://forum.fhem.de/index.php/topic,53069.0.html)