Hallo,
hab hier ein kleines Problem ich verwende "ReadingsVal" im Attribut "stateFormat" nur liefert es mit hier immer den Default Wert.
Hier der Raw des Geräts:
defmod dy_hz_bastelkeller dummy
attr dy_hz_bastelkeller alias Bastelkeller
attr dy_hz_bastelkeller group Heizung
attr dy_hz_bastelkeller icon sani_heating
attr dy_hz_bastelkeller room Bastelkeller
attr dy_hz_bastelkeller setList state:slider,6,0.5,30,1
attr dy_hz_bastelkeller stateFormat {sprintf("T: %.1f °C <br> H: %.1f %%", ReadingsVal("dy_hz_bastelkeller", "measured-temp",0), ReadingsVal("dy_hz_bastelkeller", "humidity",0))}
attr dy_hz_bastelkeller webCmd state
setstate dy_hz_bastelkeller T: 0.0 °C <br> H: 0.0 %
setstate dy_hz_bastelkeller 2017-02-11 14:26:51 desired-temp: 20.0
setstate dy_hz_bastelkeller 2017-02-11 14:26:41 humidity: 31
setstate dy_hz_bastelkeller 2017-02-11 14:26:51 measured-temp: 20.3
setstate dy_hz_bastelkeller 2017-02-11 14:26:51 state 20.0
setstate dy_hz_bastelkeller 2017-02-11 12:35:51 temperature: 20.4
Finde den Fehler nicht. Was mache ich falsch?
Gruß
Phill93
Hi,
gib mal ein list statt ein raw.
Gruß,
Thorsten
Hallo Thorsten,
was meinst du mit list?
Gruß
Phill93
Funktioniert bei mir einwandfrei.
defmod dy_hz_bastelkeller dummy
attr dy_hz_bastelkeller stateFormat {sprintf("T: %.1f °C <br> H: %.1f %%", ReadingsVal("dy_hz_bastelkeller", "measured-temp",0), ReadingsVal("dy_hz_bastelkeller", "humidity",0))}
setstate dy_hz_bastelkeller T: 20.3 °C <br> H: 31.0 %
setstate dy_hz_bastelkeller 2017-02-11 14:37:10 humidity 31
setstate dy_hz_bastelkeller 2017-02-11 14:37:29 measured-temp 20.3
Zitat von: Phill93 am 11 Februar 2017, 14:34:41was meinst du mit list?
Im Kommandofeld "list dy_hz_bastelkeller" eingeben.
Gruß,
Thorsten
Hallo,
Entschuldigung das ich erst so spät schreibe.
Hier das list:
Internals:
NAME dy_hz_bastelkeller
NR 39
STATE T: 0.0 °C <br> H: 0.0 %
TYPE dummy
Readings:
2017-02-11 15:20:32 desired-temp: 26.5
2017-02-11 15:19:47 humidity: 31
2017-02-11 15:19:57 measured-temp: 20.2
2017-02-11 20:50:05 state 22.0
2017-02-11 12:35:51 temperature: 20.4
Attributes:
alias Bastelkeller
group Heizung
icon sani_heating
room Bastelkeller
setList state:slider,6,0.5,30,1
stateFormat {sprintf("T: %.1f °C <br> H: %.1f %%", ReadingsVal("dy_hz_bastelkeller", "measured-temp",0), ReadingsVal("dy_hz_bastelkeller", "humidity",0))}
webCmd state
Phill93
Es müsste aber doch eigentlich folgendes funktionieren:
attr dy_hz_bastelkeller stateFormat T: measured-temp °C H: humidity %
hallo habe ein ähnliches problem: deswegen mal hier als Antowrt und nicht als neues topic..
ich habe zwei Temperatursensoren die jeweils vor und Rücklauf meiner Heizung liefern.
nun habe ich ein einen weiteren dummy erstellt um die Differenz von vor und Rücklauf an zu zeigen:
define dif.vl.rl dummy
attr dif.vl.rl stateFormat {ReadingsVal("HEIZUNG_B","temperature",0)-ReadingsVal("HEIZUNG_A","temperature",0)}
das device dif.vl.rl zeigt nun auch die richtige Differenz an..
doch die anzeige updatet nicht. (zeigt also nicht den aktuellen wert) sondern immer die differenz die bestand als stateFormat konfiguriert wurde.
kannst du mir sagen was ich machen muss dass sich die state anzeige von dif.vl.rl updated.. sobald sich etwas an HEIZUNG_A oder HEIZUNG_B ändert?
stehe da gerade auf dem Schlauch
Zitat von: Phill93 am 15 Februar 2017, 18:22:19Hier das list:
Also da verstehe ich jetzt auch nicht, was da falsch laufen könnte. Ersetze vielleicht mal das %.1f durch %s. Außerdem: Mal verbose hochsetzen und nachsehen, was so im Log steht.
Bennis Vorschlag hat auch was für sich.
Gruß,
Thorsten
Zitat von: onkeloki am 16 Februar 2017, 09:58:29
hallo habe ein ähnliches problem: deswegen mal hier als Antowrt und nicht als neues topic..
Nein, das ist ein anderes Problem. stateFormat wird nur ausgewertet, wenn sich bei dem Device etwas ändert, in dem stateFormat definiert ist. Also Du müsstest z.B. per notify die beiden Readings in den Dummy übertragen und dann kannst Du mit stateFormat. ...oder direkt im notify die Differenz berechnen und das in den Dummy setzen.
Gruß,
Thorsten
Zitat von: Thorsten Pferdekaemper am 16 Februar 2017, 10:35:11
Nein, das ist ein anderes Problem. stateFormat wird nur ausgewertet, wenn sich bei dem Device etwas ändert, in dem stateFormat definiert ist. Also Du müsstest z.B. per notify die beiden Readings in den Dummy übertragen und dann kannst Du mit stateFormat. ...oder direkt im notify die Differenz berechnen und das in den Dummy setzen.
Gruß,
Thorsten
danke... war mir nicht sicher ob man dem dummy auch beibringen kann das der sich automatisch updated...
ich define mir ein notify ;) das habe ich schon mal gemach da weiß ich wenigstens was passiert.. thx