FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: heikoh81 am 28 Januar 2016, 18:00:45

Titel: (gelöst) readingsProxy: Zahl aus String isolieren
Beitrag von: heikoh81 am 28 Januar 2016, 18:00:45
Hallo zusammen,

ich möchte mittels eines readingsProxy die Temperatur aus einer FBDect auslesen.
Als STATE erhalte ich:

11.5 C (measured)


Falls ich aber mal damit "arbeiten" möchte, wäre mir die reine Zahl am liebsten.

Ich wüsste, wie ich es mittels notify und Dummy realisieren könnte, siehe auch meinen Beitrag hier:
http://forum.fhem.de/index.php/topic,30417.msg230534.html#msg230534

Kann man dies mit dem attr valueFN auch kompakter realisieren?

Vielen Dank,
viele Grüße,

Heiko
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: LuckyDay am 28 Januar 2016, 18:12:13
zeig doch mal ein list von deinem FBDect

gibts da denn keine Readings?
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: heikoh81 am 28 Januar 2016, 18:14:57
Zitat von: fhem-hm-knecht am 28 Januar 2016, 18:12:13
gibts da denn keine Readings?

Doch, eines der readings ist die Temperatur:


  Readings:
     2016-01-28 07:03:51   control         on fn=1 > 0.00 delay:0sec do:state off
     2016-01-28 18:13:52   current         0.0000 A
     2016-01-28 18:13:52   energy          12630 Wh
     2016-01-28 07:03:49   options         powerOnState:last,lock:none
     2016-01-28 18:13:52   power           0.00 W
     2016-01-28 18:13:52   powerFactor     0.000
     2016-01-19 18:56:50   relayTimes      disabled
     2016-01-28 18:13:52   state           off
     2016-01-28 07:03:43   tempadjust      0.0 C
     2016-01-28 18:13:52   temperature     11.5 C (measured)
     2016-01-28 18:13:52   voltage         233.003 V
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: betateilchen am 28 Januar 2016, 18:46:09

Variante 1: ReadingsNum()

Variante 2: ReadingsVal() und einfach 0 dazuaddieren, dann verschwindet der Textteil auch.
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: heikoh81 am 28 Januar 2016, 21:14:14
Danke, kannte ReadingsNum noch nicht.

attr valueFn =

{ReadingsNum("PollinStatus02Blau";"state";"0")}


liefert im Log:
valueFn: syntax error at (eval 71100) line 1, at EOF
syntax error at (eval 71100) line 1, near ""0")"
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: betateilchen am 28 Januar 2016, 21:16:32
Weder in ReadingsVal() noch in ReadingsNum() werden Semikolon für die Liste der Werte verwendet, sondern immer Komma.

{ReadingsNum("PollinStatus02Blau","state","0")}
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: heikoh81 am 28 Januar 2016, 21:26:28
Danke, sorry, hätte ich selbst sehen müssen.
Keine Fehlermeldung mehr, aber STATE enthält immer noch den String.
Muss da noch irgendwas in die {} dass valueFn das in den STATE zurückschreibt?
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: betateilchen am 28 Januar 2016, 21:31:44
Vielleicht musst Du unterscheiden zwischen STATE und state, denn STATE ist überhaupt kein reading, sondern ein internal.
Titel: Antw:readingsProxy: Zahl aus String isolieren
Beitrag von: heikoh81 am 28 Januar 2016, 23:07:32
Ok, mein Fehler war, dass die Temperatur im FBDECT natürlich weder im internal STATE noch im reading state steht, sondern im reading temperature:

attr valueFn=

{ReadingsNum("PollinStatus02Blau","temperature","0")}


funktioniert.