FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Bartel_12 am 14 Februar 2022, 19:49:27

Titel: reading ersten Zeichen auswerten
Beitrag von: Bartel_12 am 14 Februar 2022, 19:49:27
Hallo zusammen,

wie kann ich das erste zeichen von einem Reading auswerten.
das ganze wollte ich in einem Userreading machen und entsprechend ein Vorzeichen setzen

z.B.
1.8.0_Verbrauch    <8692033.5         hier soll das > ausgewertet werden
16.7.0_Power         548.11              hier soll dann ein - als vorzeichen gesetzt werden.

ich habe das ganze schon probiert in einem Userreading, vermutlich bin ich aber komplett auf dem Holzweg!!????
Bezug:16.7.0_Power.* { if (ReadingsVal($name,"1.8.0_Verbrauch",0) == ">") { ReadingsVal($name,"16.7.0_Power",0) } else { 0 } }, Einspeisung:16.7.0_Power.* { if (ReadingsVal($name,"1.8.0_Verbrauch",1) == "<") { - ReadingsVal($name,"16.7.0_Power",0) } else { 0 } }

Geht das denn überhaubt?

Danke schon mal im vorraus




Titel: Antw:reading ersten Zeichen auswerten
Beitrag von: betateilchen am 14 Februar 2022, 19:54:34
Zitat von: Bartel_12 am 14 Februar 2022, 19:49:27
Geht das denn überhaubt?

Natürlich.

substr(ReadingsVal($name,"1.8.0_Verbrauch",0),0,1)

Und ein Minuszeichen davorsetzen geht einfach, in dem man entweder den Wert von 0 abzieht oder mit -1 multipliziert. Mathematik, 4. Klasse Grundschule.
Titel: Antw:reading ersten Zeichen auswerten
Beitrag von: rabehd am 14 Februar 2022, 20:11:38
if (ReadingsVal($name,"1.8.0_Verbrauch",1) == "<")
Ja, Holzweg!
Titel: Antw:reading ersten Zeichen auswerten
Beitrag von: Bartel_12 am 15 Februar 2022, 12:36:45
Danke soweit
jetzt hab ich es auch geschnallt  ::)

aktuelle_Leistung:16.7.0_Power.* {if (substr(ReadingsVal($name,"1.8.0_Verbrauch",0),0,1) eq "<" )  { -ReadingsVal($name,"16.7.0_Power",0) } else {if (substr(ReadingsVal($name,"1.8.0_Verbrauch",0),0,1) eq ">" )  { ReadingsVal($name,"16.7.0_Power",0) } } }

so funktioniert es.