Hallo zusammen,
Ich bin am verzweifeln. Nach einer Woche probieren und suchen komme ich nicht weiter und hoffe ihr könnt mir helfen.
Ich habe Xiaomi Geräte ohne Cloud in FHEM am laufen.
Habe mir nur einProblem das die readings nicht direkt an State weitergehen werden.
Bei jeelink Temperatur Sensoren ist das Out of the Box so.
Anbei die screens Schilder das Problem .
Ich würde gerne wie beim jeelink (Arbeitszimmer ) auch die stati beim Xiaomi (arbeitszimmer_XT) angezeigt bekommen
Wie bekomme ich die vorhanden readings von Temperatur und Luftfeuchtigkeit direkt als state angezeigt.
Danke euch und Gruss ,
Andi
Hi,
zuerst mal bitte keine Screenshots, sondern ein "list" des devices (in code tags) - siehe auch hier: https://forum.fhem.de/index.php/topic,71806.0.html (Das kann man auch nachträglich ändern)
Als nächstes empfehle ich die Lektüre zum Attribut "stateFormat" in der commandRef. (Da musst du allerdings ein wenig Perl basteln) Wenn du damit nicht weiter kommst, gerne wieder hier melden :-)
Danke dir. Dann studiere ich Mal stateformat
So danke für den TIP habe es hinbekommen mit Stateformat.
Nur wie bekomme ich nun auf eine Nachkommastelle abgerundet ?
Habe einige Sachen mit Sprinf versucht aber komme nicht zum erfolg.
Der Code meines Stateformat sieht nun so aus :
T:temperature H:humidity D:dewpoint
Was muss ich wo dazuschreiben damit ich nur eine Nachkommastelle habe ?
Keiner eine Idee ?:(
Gerade wieder 3 Stunden rumprobiert
sprintf war eine gute Idee.
Es gibt nun mehrere Wege.
Der vom Syntax wahrscheinlich einfachere,
Du könntest Dir ein userreading erstellen, das ein neues Reading erzeugt mit einer Nachkommestelle:
neuesReading {sprintf("%.1f",ReadingsVal($name,"temperature ",0))}
und das neue Reading, dann wieder in's stateFormat
T:neuesReading H:humidity D:dewpoint
Cheers
mi.ke
Man kann sprintf direkt in stateformat verwenden:
Hier win Beispiel:
{sprintf("Zustand: %-6s / Zaehlerstand: %.2f W / aktuelle Leistung: %.2f W",ReadingsVal( $name,"state",0),ReadingsVal( $name,"total_consumption",0), ReadingsVal( $name,"power",0))}
Das sieht dann so aus:
Zustand: opened / Zaehlerstand: *****.** W / aktuelle Leistung: *****.** W
Probiere ich aus. Schon Mal danke
Funktioniert alles, danke euch !!!
Themen bitte nicht schliessen, sondern ins Subject des ersten Posts "[Gelöst]" mit reinschreiben. Schöne wäre es auch, wenn du deine Lösung noch zeigen würdest (für andere, die vielleicht das selbe Problem haben)
Gelöst .
Anbei die Lösung
{sprintf("T: %.1f H: %.1f D: %.1f ",ReadingsVal( $name,"temperature",0),ReadingsVal( $name,"humidity",0), ReadingsVal( $name,"dewpoint",0))}
Da das Ergebnis rein numerisch ist, kannst Du auch ReadingsNum anstatt ReadingsVal nehmen
{sprintf("T: %.1f H: %.1f D: %.1f ",ReadingsNum( $name,"temperature",0),ReadingsNum( $name,"humidity",0), ReadingsNum( $name,"dewpoint",0))}
und im Modul kann man die Rundung einstellen.
Zitatrnd_tmp