FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Nimral am 18 November 2013, 15:35:16

Titel: Eingelesene Werte skalieren
Beitrag von: Nimral am 18 November 2013, 15:35:16
Hi allseits,

mein erstes FHEM Projekt (Pelletsbunker-Füllstandsanzeiger) nimmt Gestalt an. Basierend auf einem FS20S8M mit alternativer Firmware bekomme ich eine von einer Art "Schwimmer" über Seilzüge und ein Poti abgenommenen Füllstand in Prozent (mit einer Nachkommastelle ... 0 - 1000). Klappt prima.

Stand der Dinge derzeit der gemessene Wert wird in FHEM angezeigt, geloggt und als SVG Graph dargestellt. 0 ist Bunker leer, 1000 ist Bunker voll. Aber ich möchte den Wert ja in Prozent mit Nachkommastelle angezeigt haben --> sobald ich die Division durch 10 geschafft habe, bin ich fertig!

Problem: in FHEM muss ich den Wert noch durch 10 teilen. Leider konnte ich bisher nicht herausfinden wie ich das bewerkstelligen kann.

Nach dem Durchforsten der diversen Doku Fragmente bin ich auf das "UserReadings" Attribut aufmerksam geworden. Vom Modul "Pelletssensor" kommt das Reading "State". Also habe ich UserReadings folgendermaßen definiert:

state {ReadingsVal("Pelletsensor","state",0)/10;;}

In der WEB GUI funktioniert das scheinbar wunderbar, ich bekomme den richtigen Wert mit Nachkommastelle angezeigt (--> Attachment)

Allerdings scheint meine Anweisung das alte Auselsen von "State" nicht zu ersetzen, sondern zu ergänzen. Im SVG Graph und in Logfile bekomme ich jetzt nämlich beide Werte geloggt und angezeigt (--> Attachment)

2013-11-18_11:07:09 Pelletsensor 818
2013-11-18_11:07:09 Pelletsensor 81.8
2013-11-18_11:08:17 Pelletsensor 818
2013-11-18_11:08:17 Pelletsensor 81.8

Demenstprechend springt auch die Kurve in der Grafik zwischen den beiden Werten hin und her.

Frage: wie schaffe ich es, einfach nur den eingelesenen Messert durch 10 zu dividieren, und das Ergebnis sowohl in der GUI als auch in der Grafik als auch im Logfile zu speichern??

Thx für eure Hilfe

Armin.
Titel: Antw:Eingelesene Werte skalieren
Beitrag von: justme1968 am 18 November 2013, 15:46:08
du kannst mir einem user reading nicht ein bestehendes reading (state) ersetzen sondern nur ein neues zusätzlich erzeugen.

also z.b. ein neues reading 'skaliert' erzeugen und dieses mit stateFormat dann als STATE anzeigen. für den plot stellst du deine log definition dann so um das sie nur das neue 'skaliert' reading loggt.

gruss
  andre
Titel: Antw:Eingelesene Werte skalieren
Beitrag von: Nimral am 18 November 2013, 16:13:31
Hi ANdre,

danke für die superschnelle Antwort. Mit stateFormat habe ich die Bildschirmausgabe sofort in den griff bekommen. Das neue Reading heißt "Percent".

Probleme macht mir allerdings das Logging. Mit der "Erklärung" zum FileLog komme ich nicht weiter. Per default loggt das System wohl alle readings, aber ich konnte bei den readings kein "log das oder nicht" Attribut finden, und beim Logfile keine Möglichkeit, bestimmte Readings auszuwählen für das Logging.

Ich stecke also wieder fest --- hast Du mir noch einen Tipp wo ich weitersuchen muss?

Thx

Armin.
Titel: Antw:Eingelesene Werte skalieren
Beitrag von: justme1968 am 18 November 2013, 16:16:18
das wird nicht beim device das gelogt wird angegeben sondern du gibst bei der definition von filelog oder dblog an welche readings geloggt werden sollen. wenn du das nicht einschränkst wird alles geloggt.

gruss
  andre
Titel: Antw:Eingelesene Werte skalieren
Beitrag von: Nimral am 18 November 2013, 17:29:04
Hi Andre,

mit den richtigen paar Tipps findet man so seine Wege :-) Mit der GUI habe ich die Aufgabe nicht lösen können, aber per Eintrag in die FHEM.cfg Datei ließ sich das System überreden :-)

Auch der Plot geht (nach einigem Gemurkse) (--> Attachment)

allerdings mit einer Unschönheit: wie werde ich die zweite datenreihe und die Achse auf der rechten Seite los? Beim Zusammenklicken und Konfigurieren der linken Achse verschwand die rechte Achse sogar einmal, scheint bei einer bestimmten konstellation der Eingabewerte zu erfolgen, aber ich bekomms nicht nochmal gebacken.

Thx

Armin.
Titel: Antw:Eingelesene Werte skalieren
Beitrag von: justme1968 am 18 November 2013, 17:57:10
du kannst die plotfiles entweder mit dem editor im web frontend editieren oder auch von hand.

schau mal im wiki da gibt es einiges zum erstellen der plots.

gruss
  andre
Titel: Antw:Eingelesene Werte skalieren
Beitrag von: Nimral am 19 November 2013, 22:08:28
Hi Andre,

das Pelletsfüllstandanzeigeteil läuft perfekt :). Man sieht deutlich die heutigen Montage- und Abgleicharbeiten, und dass ich dringend Nachschub brauche :-) Danke für Deine Hilfe, Du hast mir die entscheidenden Tipps gegeben, um die Werte in FHEM richtig darzustellen.

Herzlichen Gruß aus Bayern

Armin.