(gelöst) readingsProxy: Zahl aus String isolieren

Begonnen von heikoh81, 28 Januar 2016, 18:00:45

Vorheriges Thema - Nächstes Thema

heikoh81

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

LuckyDay

zeig doch mal ein list von deinem FBDect

gibts da denn keine Readings?

heikoh81

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

betateilchen


Variante 1: ReadingsNum()

Variante 2: ReadingsVal() und einfach 0 dazuaddieren, dann verschwindet der Textteil auch.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

heikoh81

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")"

betateilchen

Weder in ReadingsVal() noch in ReadingsNum() werden Semikolon für die Liste der Werte verwendet, sondern immer Komma.

{ReadingsNum("PollinStatus02Blau","state","0")}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

heikoh81

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?

betateilchen

Vielleicht musst Du unterscheiden zwischen STATE und state, denn STATE ist überhaupt kein reading, sondern ein internal.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

heikoh81

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.