(Gelöst) Füllgrad Heizungspuffer berechnen

Begonnen von Kuli, 15 August 2014, 20:37:57

Vorheriges Thema - Nächstes Thema

Kuli

Hallo zusammen,

erstmal will ich hier meinen größten Respekt zum Ausdruck bringen, je mehr ich hier lese und probiere, desto mehr Begeisterung macht sich breit.

Nun aber zum Problem:
Ich habe einen Raspberry (update von heute) mit DS9490R und 10x DS18B20+ aufgebaut. Ziel ist die Messung der Puffertemperatur an zwei 800 Liter Warmwasserpuffern. Der thermische "Füllgrad" soll angezeigt und wenn möglich auch grafisch visualisiert werden. Als Anzeige kommt PC oder Android Gerät zu Einsatz. Die Sensoren habe ich als PufferXX angelegt. Diese werden auch angezeigt und aktualisiert.
Die Fragen sind nun:
- Wie kann ich periodisch einem Dummy das Rechenergebniss übergeben?
- Was wäre ein relativ einfacher und eleganter Weg um die Info grafisch aufzubereiten?

Gruß,
Björn

hexenmeister

Hast Du Deine Berechnung schon?
Dann kannst Du ein AT anlegen. Z.B. minütlich eine Funktion aufrufen:
Zitatdefine at_irgendwas at +*00:01:00 {meineSchoeneFunktion()}
In der Funktion kannst Du die Daten lesen (Stichwort: ReadingsVal) und berechnen.
Die Ergebnisse kannst Du in ein Dummy mit FHEM-Befehl setreading schreiben (aus Perl: fhem("setreading ".$devName." ".$rName." ".$val);).
Mit FileLog kannst Du die Readings ins Log schreiben und dann mit SVG graphisch darstellen.

Viele Erfolg!

fiedel

Und du könntest dir sogar z.B. mit Floorplan eine richtige Visualisierung deiner Anlage gestalten, wo die Speicher unten blau gefärbt sind und nach oben hin ins rote übergehen und der Übergang sich je nach Füllgrad verschiebt. Da zu erstellst du z.B. mehrere entspr. Grafiken und weist sie per "devstateicon" und ggf. "userreadings" oder einer extra Perlfunktion dem Gerät oder Dummy zu.

Oder du erstellst dir eine "Füllstandsgrafik" und funktioniertst sie zur Speichergrafik um.

Viel Spaß beim Tüfteln!  :)

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Kuli

Das war wohl die längste Antwortzeit ever  ::)
Nachdem die Sensoren schon monatelang laufen und meist einfach das grafische Frontend genutzt wurde, hab ich heute endlich einen Anlauf unternommen.
Zwischenzeitlich habe ich noch einen LW12 LED Controller und die "Dioder" LED Buttons von Ikea zur Verfügung. Daher habe ich das ganze erweitert zu "Füllstandsanzeige per Lichtfarbe"
Für mich als Noob war das ein ganz schöner Ritt, danke nochmal für die Unterstützung.

Gruß,
Björn

# Durchschnitt vom Pufferspeicher berechnen
# Ausgang momentan: ((Ausgang max - Ausgang min)/(Eingang max - Eingang min)) * (Eingang momentan - Eingang min) + Ausgang min
# Alle Sensoren auf 85 Grad = 100%
# Alle Sensoren auf 20 Grad = 0%

sub PufferDurchschnitt() {

my $varFuellstand_Wert = (100/520)*(ReadingsVal("Pufferspeicher_11","temperature","0" )+ReadingsVal("Pufferspeicher_12","temperature","0" )+ReadingsVal("Pufferspeicher_13","temperature","0" )+ReadingsVal("Pufferspeicher_14","temperature","0" )+ReadingsVal("Pufferspeicher_21","temperature","0" )+ReadingsVal("Pufferspeicher_22","temperature","0" )+ReadingsVal("Pufferspeicher_23","temperature","0" )+ReadingsVal("Pufferspeicher_24","temperature","0" )-160);
#    Log (3,$varFuellstand_Wert);
    fhem("setreading Fuellstand Wert $varFuellstand_Wert");   
# Jetzt Farbwerte anhand der Prozentzahl berechnen und ausgeben
my $varLED_Hwert = 230-($varFuellstand_Wert*2,3);
fhem("set LEDtemp hsv $varLED_Hwert 100 100");