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
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
Das funktioniert leider trotzdem nicht.
und was funktioniert genau nicht? was steht im log?
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 }"
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.
Ich habe jetzt noch einmal die Reihenfolge geändert, jetzt funktioniert es.
Danke
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
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)}
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 {
habe ich angepasst (: durch Leerzeichen ersetzt), dennoch wird mir der Der Wert nicht ausgegeben.
versuche hier beim Wert VerbrauchHaus zwei werte zu subtrahieren.
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)"
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
Aus der commandRef:
ZitatReadingsVal(<devicename>,<reading>,<defaultvalue>)
Bei dir fehlt <devicename>
hier die Lösung:
VerbrauchHaus {ReadingsVal("SolarEdge","X_Meter_1_M_AC_Power",0) - ReadingsVal("SolarEdge","I_AC_Power",0)}
Besten Dank
Das steht doch auch klar und deutlich in der ausgegebenen Fehlermeldung:
Zitat von: Mellowback am 07 Februar 2023, 17:29:19
Not enough arguments for main::ReadingsVal
Man sollte die Fehlermeldungen halt auch lesen, nicht nur zur Kenntnis nehmen, dass es eine gibt.
deswegen jetzt auch die Lösung:
VerbrauchHaus {ReadingsVal("SolarEdge","X_Meter_1_M_AC_Power",0) - ReadingsVal("SolarEdge","I_AC_Power",0)}
Besten Danke