Hauptmenü

mehrere Userreadings

Begonnen von stefan-dd, 11 Dezember 2016, 19:18:05

Vorheriges Thema - Nächstes Thema

stefan-dd

Ich habe mir ein paar User Readings für das Wetter angelegt. Einzeln funktionieren diese. Wie müssen diese untereinander abgetrennt werden? Mit Klammern und Kommas erhalte ich nur Error. Wie macht man es richtig?

attr Wetter_DD_WG_akt userReadings wind_max_speed { sprintf("%.0f", ReadingsVal("$NAME","wind_max_speed",0)) }, wind_speed { sprintf("%.0f", ReadingsVal("$NAME","wind_speed",0)) }, bild:icon_url:.* { ReadingsVal($name,'icon_url','0')  =~ m/.*\/(\w+)\.gif$/;; $1 }

Danke

justme1968

#1
mit komma (und leerzeichen) getrennt auf eine zeile. oder mit maskierten zeilenenden.

du solltest das config file nicht von hand editieren sondern über die device detail ansicht gehen und dort das attribut eingabe feld verwenden. da wird dieters automatisch für dich gemacht.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

stefan-dd

Das funktioniert leider trotzdem nicht.

justme1968

und was funktioniert genau nicht? was steht im log?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

stefan-dd

#4
So schaut es aus
log:
2016.12.11 20:08:27 1: Error evaluating Wetter_DD_WG_akt userReading wind_max_speed: syntax error at (eval 34523) line 3, near "bild:"
syntax error at (eval 34523) line 3, near "$1 }"

readingzeile:
wind_max_speed
Error evaluating Wetter_DD_WG_akt userReading wind_max_speed: syntax error at (eval 34523) line 3, near "bild:" syntax error at (eval 34523) line 3, near "$1 }"

justme1968

ich kann dein problem nicht nachstellen. mit einem 1:1 kopierten userReading funktioniert es beim mir problemlos.

bitte zeig mal ein list auf das device.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

stefan-dd

Ich habe jetzt noch einmal die Reihenfolge geändert, jetzt funktioniert es.
Danke

justme1968

ich glaube nicht das die reihenfolge das problem war. eher irgendein copy&paste fehler durch ein sonderzeichen.

noch etwas: du solltest alle user readings mit dem passenden trigger versehen. sonst lösen sie bei jeder readings änderung aus. auch bei denen die nicht relevant sind.

statt mit einem userReading ein reading zu überschreiben schau dir mal readingsChange an.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Mellowback

Hallo zusammen,

ich habe zwei Readings(MittelwertFreieLeistung & VerbrauchHaus), allerdings bekomme ich nur beim ersten ein Wert.
Wo ist mein Fehler im Code ?


MittelwertFreieLeistung:X_Meter_1_M_AC_Power:.* {movingAverage($name,'X_Meter_1_M_AC_Power',300)}, VerbrauchHaus:{ReadingsVal('X_Meter_1_M_AC_Power',0) - ReadingsVal('I_AC_Power',0)}

OdfFhem

Zitat von: Mellowback am 07 Februar 2023, 16:19:12
Wo ist mein Fehler im Code ?

Zitat
userReadings ist eine kommagetrennte Liste von benutzerdefinierten Readings. Jedes Listenelement hat folgendes Format: <reading>[:<trigger>] [<modifier>] { <perl code> }


VerbrauchHaus:{

sollte eher so aussehen

VerbrauchHaus {


Mellowback

habe ich angepasst (: durch Leerzeichen ersetzt), dennoch wird mir der Der Wert nicht ausgegeben.
versuche hier beim Wert VerbrauchHaus zwei werte zu subtrahieren.

Mellowback

habe jetzt beim - die Leerzeichen entfernt.
Jetzt ist der Wert angelegt allerdings mit folgenden Ergebnis:


Error evaluating SolarEdge userReading VerbrauchHaus: Not enough arguments for main::ReadingsVal at (eval 227518) line 1, near "0)"
Not enough arguments for main::ReadingsVal at (eval 227518) line 1, near "0)"

Mellowback

jetzt habe ich wie folgt angepasst:


VerbrauchHaus {Value("SolarEdge X_Meter_1_M_AC_Power") - Value("SolarEdge I_AC_Power")}


Jetzt habe ich zwar kein Fehler mehr, allerdings kommt bei den Werten: -558-0=0 raus

Wolle02

Aus der commandRef:

ZitatReadingsVal(<devicename>,<reading>,<defaultvalue>)

Bei dir fehlt <devicename>

Mellowback

hier die Lösung:

VerbrauchHaus {ReadingsVal("SolarEdge","X_Meter_1_M_AC_Power",0) - ReadingsVal("SolarEdge","I_AC_Power",0)}


Besten Dank