[vz-dev] Temperatursensoren am Volkszähler
Justin Otherguy
justin at justinotherguy.org
Sun Dec 12 14:12:25 CET 2010
Tach,
da möchte ich ja kurz einschreiten:
Am 12.12.2010 um 13:28 schrieb Steffen Vogel:
> Leider hapert es noch etwas auf Controller-Ebene.
> Ethersex besitzt zwar schon einen 1-wire Support. Leider können wir diesen
> noch nicht zusammen mit watchasync nutzen.
...da sollte das m.E. auch gar nicht landen.
watchasync ist so gebaut, dass es sich für die Überwachung der Ports eignet (watch), und zwar so, dass es asynchron arbeitet (also nicht pollt, sondern eben per Interrupt - daher async) (naja - inzwischen ist ja der Pollingbetrieb als weitere Option eingezogen - das lassen wir mal aussen vor).
Für eine regelmäßige Abfrage von Werten (Messwerten oder Zählerständen - im Gegensatz zu Impulsen) ist m.E. watchasync der falschen Anknüpfpunkt.
Hier mal meine Gedanken dazu:
- wenn wir das Abfragen von Werten integrieren wollen (halte ich für eine mögliche Lösung), sollten wir das in einem Modul machen, welches dann anders heisst (muss nicht, könnte aber volkszaehler im Namen tragen, weil wir dann kein generisches Modul mehr haben, sondern eines, welches auf den vz zugeschnitten ist - auch wenn man es dann immer noch für andere Funktionen nutzen kann)
- besser erscheint mir der Ansatz, dass wir uns hierfür einen anderen Anknüpfpunkt in e6 suchen; spontan fällt mir der cron-Mechanismus ein
- eine Pufferung brauchen wir hierfür nicht; zumindest hat die Pufferung hier eine deutlich geringere Bedeutung, da wir - im Gegensatz zum Interruptbetrieb - den Abstand zwischen zwei Abfragen ja selbst bestimmen; der Abstand sollte so gewählt sein, dass der Controller das im Normalfall gut schafft; einen Puffer könnte man also für einen Netzausfall vorsehen; beim Impulsgeber hingegen wollen wir ja auch den Fall abdecken, das mal ein paar Impulse in kurzem Zeitabstand daher kommen
- wir können überlegen, ob wir den Logging-Mechanismus zentral ausführen; watchasync besteht ja aus 2 Komponenten:
- Überwachung der Eingänge
- Absetzen der GET-Requests (mit Pufferung)
- am Einfachsten erscheint es mir aber, den Messwert per cron abzufragen und den Messwert per httplog (ist schon in e6 vorhanden; war zusammen mit watchcat der Vorgänger von watchasync; Jens hat, als er watchasync gebaut hat, die Funktion von httplog integriert (und um den Puffer erweitert)
- ob wir httplog um einen Puffermechanismus erweitern, würden wir dann sehen - im ersten Schritt wäre das m.E. mal verzichtbar
> Ich habe meine Tempsensoren an einem Rechner hängen. Dazu kannst du
> folgendes Skript nutzen:
> https://github.com/volkszaehler/volkszaehler.org/blob/master/controller/bash/log_onewire.sh
-> das würde natürlich auch mit einem dockstar o.ä. gehen, ...
> PS: Vielleicht findet sich ja jemand, der den 1-wire support in watchasync integrieren möchte.
> Das wäre genial :)
da bin ich voll dabei: ich freu mich auch schon, wenn ich 1-wire-Temp-Sensoren an das Net-IO hängen und loggen kann, zumal e6 den 1-wire-support ja schon drinne hat - der Temp-Sensor gehört eindeutig an das net-io; anders gesagt: beim Smart Meter spielt die Platzierung ja keine Rolle; wenn ich aber überall da, wo ich LAN habe, ganz einfach (Net-IO + Temp-Sensor) und billig (< EUR 35) einen Temperaturlogger mit unserem schicken Frontend aufbauen kann... ja, das wär' genial :-)
Und: viel fehlt uns gar nicht dazu!
Also: ran!
Gruss, J.
More information about the volkszaehler-dev
mailing list