[vz-dev] [vz-users] Definitionsfrage!

Thorben Thuermer r00t at constancy.org
Sat Feb 9 12:55:23 CET 2013


> > Am 08.02.2013 um 19:43 schrieb Michael Baer <mibaer at web.de>:
> >> Im Frontend habe ich bei "Strom" 3 Möglichkeiten zur Auswahl:
> >> Stromsensor
> >> Strommesser
> >> Stromzaehler
> Am Samstag, 9. Februar 2013 um 10:27 schrieb Bernd Gewehr:
> > Kann dazu bitte mal jemand eine vollständige Übersicht ins Wiki
> > schreiben? Ich blick' da auch nicht durch!
Sat, 9 Feb 2013 10:57:23 +0100 Daniel Lauckner <mailing at jahp.de> wrote:
> Wobei man da meiner Ansicht eine Beschreibung im wiki nur das Problem
> kaschiert und "früher" angreifen sollte: die Worte die Verwendet
> werden haben mit der technische üblichen Begriffen wenig gemein und
> stiften eher Verwirrung als das sie helfen
> (oder ich hab den tieferen Sinn dahinter nicht verstanden).

also, ich hoffe ich uebernehme mich da nicht fuer am samstagmorgen
nicht ganz ausgeschlafen, aber eigentlich ist das alles ganz einfach ;)

kurzer exkurs:
die middleware speichert daten immer 1:1 so wie sie hereinkommen, d.h.:
fuer einen s0-eingang wird tatsaechlich fuer jeden impuls ein tupel
(tupel = sql-tabelleneintrag!) aus (timestamp,1) gespeichert
(1 = ein impuls!, kann wenn aggregation aktiv ist auch >1 sein).
fuer einen stromzaehler aus dem ein absoluter zaehlerstand ausgelesen
wird, wird, eben (timestamp,zaehlerstand) gespeichert.
und wenn wir spannung, momentanverbrauch, temperatur, etc. loggen,
ebenso, immer (timestamp,wert).

wenn die middleware eine anfrage nach daten bekommt,
holt sie nun die daten fuer den angefragten zeitraum aus der datenbank,
und uebergibt sie an einen "interpreter", der sie auswertet.
es gibt derer drei:

* MeterInterpreter
 fuer s0-impulse... es werden die impulse in einem zeitraum gezaehlt,
 und zusammen mit dem zeitraum und dem verbrauch pro impuls die
 durchschnittiche leistung im zeitraum berechnet.
* CounterInterpreter
 (name von "stromzaehler"?)
 es wird aus einer reihe absoluter zaehlerstaende (die sieht als
 diagramm ja langweilig aus) jeweils die momentanleistung berechnet
 (die als diagramm interessant ist)
* SensorInterpreter
 fuer allgemeine sensoren (temperatur, spannung, momentanleistung(!)):
 es wir der lediglich durchschnitt ueber den zeitraum gebildet.


und jetzt zur urspruenglichen frage:
die kanaltypen sind in EntityDefinition.json definiert:
https://github.com/volkszaehler/volkszaehler.org/blob/master/lib/Definition/EntityDefinition.json
dort wird jedem kanaltyp ein Interpreter zugeordnet:
jeweils: deutscher name (interner name) => interpreter (datenformat)
Stromsensor (powersensor) => SensorInterpreter (momentanverbrauch)
Strommesser (power) => MeterInterpreter (s0-impulse)
Stromzaehler (electric meter) => CounterInterpreter (zaehlerstaende)

beachte:
der gleiche "Stromzaehler" (umgangssprachlich) im zaehlerschrank kann
jeden der drei typen erfordern, je nachdem ueber welche schnittstelle er
ausgelesen wird!

alle klarheiten beseitigt? ;)

ich wuerde auch sagen:
ja, das sollte dringend geandert werden.

am besten sollte statt einem erfundenen messgeraete-namen (aktuell)
der typ der daten (letzte spalte in meiner aufstellung) verwendet
werden.

ich denke es sollte ueberhaupt kein problem sein, in
EntityDefinition.json die anzeigenamen (de,en,fr) der jeweiligen
Entities anzupassen.
(die internen namen werden wohl in der datenbank gespeichert,
 wen man die aendert geht bei bestehenden installationen die zuordnung
 kaputt.
 wenn man die Inerpreter-klassen umbenennen wollte, muesste man nur
 sicherstellen, das code und definitions synchron sind.)

- Thorben


More information about the volkszaehler-dev mailing list