Mittelwertbildung: Kann man das anders / besser / schlauer lösen?

Begonnen von M_I_B, 24 April 2016, 11:05:36

Vorheriges Thema - Nächstes Thema

M_I_B

Hallo liebe Leute,

ich betreibe insg. 5 IT Temp/Hum - Sensoren rund ums Haus, aus denen ich zusätzlich einen Mittelwert bilde und alles plotte. Das funktioniert so weit, allerdings frage ich mich, ob sich der von mir verbrochene Kram nicht eleganter lösen lässt. Ich würde gerne andere Arten der Lösung kennenlernen um u.a. mein doch manchmal festgefahrenes Denkmodell aufzulockern...

Bis dato mache ich das so (Sensor 3 (AS.TH.03) von 6 hat keine Luftfeuchte, Sensor 2 ist derzeit defekt):
### T/H-Sensoren: Mittelwert Temperatur & Luftfeuchte ###
define AS.TH.av DOIF
attr AS.TH.av state T: {([AS.TH.01:temperature]+[AS.TH.03:temperature]+[AS.TH.11:temperature]+[AS.TH.12:temperature]+[AS.TH.13:temperature])/5} H: {([AS.TH.01:humidity]+[AS.TH.11:humidity]+[AS.TH.12:humidity]+[AS.TH.13:humidity])/4}
attr AS.TH.av event-on-change-reading .*
attr AS.TH.av room _Logdateien_

Was mich daran massiv stört, ist die elendig lange attr- Zeile zum Zusammenbauen der Werte.
Könnte man nicht so etwas wie z.B. ...
attr AS.TH.av state T: {summe((AS.TH.*:temperature)/menge)}
... oder ein ähnlich sinniges Konstrukt bauen und bei DOIF bleiben, also nicht ins PERL abzutauchen? Ich würde gerne die anderen "Wege nach Rom" kennenlernen...

Ellert

ZitatWas mich daran massiv stört, ist die elendig lange attr- Zeile zum Zusammenbauen der Werte.
Du könntest mit attr AS.TH.av widgetOveride state:textField-long ein komfortables Eingabefeld erzeugen.

M_I_B

... Eingabefeld? Sorry, verstehe ich jetzt nicht ... Vielleicht missverstehen wir uns gerade?

Die Werte in "[AS.TH.01:temperature]+[AS.TH.03:temperature]+blablub" kommen ja von real existierenden Sensoren und müssen nicht explizit manuell eingegeben werden. Mir ging es vornehmlich um andere Arten des Programmierens solcher in DOIF generierter Rechnungen. Für ein und das selbe Ergebnis gibt es ja i.d.R. mehrere Wege, die zum Ziel führen. Und eben diese anderen Wege interessieren mich in der Hoffnung, das mein Denken bei der Lösung solcher Sachen etwas flexibler wird...

Ellert

Zitatalso nicht ins PERL abzutauchen
Damit setzt Du der Erweiterung Deiner Flexibilität sehr enge Grenzen. Mit dem Öffnen der geschweiften Klammer im DOIF bist Du allerdings schon in der Perl-Welt.

Das komfortable Editierfeld hatte ich erwähnt, Du damit den Überblick behalten kannst, auch bei langen Ausdrücken.

M_I_B

... das in PERL viel mehr Dinge möglich sind, ist schon klar. Natürlich macht es Sinn, so etwas in die myUtils zu verlegen, wenn man das öfter mal braucht; mache ich vielleicht auch mal. Letztendlich will ich darauf auch nicht verzichten. Mir geht es aber im Moment erst einmal darum, die verschiedenen Wege via DOIF abzuschreiten und da fand ich dieses konkrete Beispiel schon nett.
Ich denke halt, das mein genannter Lösungsweg nicht der einzige Weg unter DOIF sein kann und würde gerne wissen, wie Andere diese Aufgabe ausschließlich mit DOIF gelöst hätten.