Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:middleware:einrichtung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


Vorhergehende Überarbeitung
software:middleware:einrichtung [2023/04/12 18:54] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +===== Zähler/Sensoren einrichten =====
 +Um die Installationen benutzen zu können müssen wir erst einen neuen Kanal (Zähler/Sensor) erstellen:
 +
 +==== Kanäle im Frontend anlegen ====
 +Im WebFrontend unten links: **Kanal hinzufügen -> Kanal erstellen**
 +
 +{{/software/frontends/frontend/kanal_erstellen.png?300|}}
 +
 +Die Parameter im Fenster **"Kanal hinzufügen"** gliedern sich in Pflicht-Parameter (schwarze Schrift) und Wahl-Parameter (graue Schrift). Die Parameter haben folgende Bedeutung:
 +
 +=== Middleware (Pflicht-Parameter)===
 +Pfad zum Script middleware.php, in der Regel unter ./middleware.php, d.h. beispielsweise auf der Linux-Festplatte unter /var/www/volkszaehler.org/htdocs/
 +
 +=== Typ (Pflicht-Parameter) ===
 +Typ des Kanals (z.B. Sensor, Zähler), den Umfang der zurzeit verfügbaren Sensoren bzw. Zähler findet sich in der Datei EntityDefinition.json in den Scriptes des Frontends, d.h. beispielsweise auf der Linux-Festplatte unterhalb von /var/www/volkszaehler.org/ und auch [[/development/definitions|hier im Wiki]]
 +z.B.: 
 +  * Typ für S0-Impulse: El.Energie (S0-Impulse)  #(auf korrekte Auflösung achten!)
 +  * Typ für absolute Leistung (Zählerstand): El.Energie (Zählerstände)  #(Initialwert eingeben)
 +  * Typ für aktuelle Leistung: El.Energie (Leistungswerte)
 +  * freier Typ ohne vorherbestimmte Einheit: Sensor
 +  * Typ ohne Istwerte: virtuelle Kanäle (virt.)
 +  * Struktur: Gruppe, Gebäude und Nutzer
 +
 +=== Titel (Pflicht-Parameter) ===
 +Name des Kanals, der im Frontend angezeigt werden soll
 +
 +=== Auflösung (engl. resolution) (typabhängiger Pflicht-Parameter) ===
 +Bei einem Kanal vom Typ Stromzähler, die  Anzahl der Impulse pro kWh über die s0-Schnittstelle, z.B. bei einem Wechselstromzähler Eltako WSZ12DE-32A sind es 2000 Impulse pro kWh.
 +Bei einem Gaszähler mit einer Auflösung von 0,01m³/Impuls wird eine Auflösung von 100 eingetragen.
 +
 +Für Stromzähler mit Absolutwerten (Zählerstände) wird ebenfalls die Einheit kWh angenommen. Sind die Rohdaten in Wh wäre die korrekte Auflösung 1000.
 +
 +=== Einheit (typabhängiger Pflicht-Parameter) ===
 +Bei virtuellen Kanälen oder freiem Typ "Sensor" ist keine physikalische Einheit vordefiniert, die soll hier eingegeben werden.
 +
 +=== Öffentlich (Wahl-Parameter) ===
 +Wenn hier der Haken gesetzt wird ist der Kanal später im Frontend unter "öffentliche Kanäle" auswählbar.
 +Wenn der Haken nicht gesetzt wird kann man den Kanal nur an Hand seiner UUID abrufen.
 +Vor allem wenn man im Browser die Cookies löscht ...
 +Wer einen lokalen, privaten Server betreibt sollte "öffentlich" einschalten, erspart viel Tipperei der UUIDs.
 +Bei Servern die im Internet erreichbar sind sollte das aus bleiben ! 
 +
 +=== Farbe (Wahl-Parameter) ===
 +Farbe für die Darstellung des Graphen im Frontend
 +
 +=== Stil (Wahl-Parameter) ===
 +Wahl der Darstellung der Messwerte im Diagramm des Frontends. Zurzeit existieren die Styles lines, steps, states und points.\\
 +Temperaturen: lines\\
 +S0-Impulse, Zählerstand, Leistungswerte: steps\\
 +
 +=== Füllgrad (Wahl-Parameter) ===
 +Deckungsgrad der Farbe unterhalb des Graphen.
 +
 +=== Achse ===
 +Hier kann der horizontalen Skala zu dem Kanal eine höher Priorität zugeordnet werden.
 +In den meisten Fällen ist auto passend.
 +
 +=== Kosten (engl. cost) (Wahl-Parameter) ===
 +Bei einem Kanal vom Typ Stromzählern werden hier die Kosten in €/kWh eingetragen. Betragen die Kosten beispielsweise 22.6 Cent pro kWh, so steht in der Datenbank in der Tabelle properties ein Datensatz mit pkey = cost und value = 0.226.
 +<note important>Bitte beim Eintragen der Kosten im Frontend beachten: Die Nachkommastellen des Kostenbetrages werden mit einem Punkt (.) und nicht mit einem Komma (,) abgetrennt.</note>
 +
 +=== Initialverbrauch (Wahl-Parameter) ===
 +Ausgängszählerstand bei Inbetriebnahme des Kanals. Dient dazu den Gesamtzählerstand zu ermitteln und in der Tabelle unterhalb des Graphen mit auszugeben. Auch bei Kanälen in denen tatsächliche Zählerstände geloggt werden ist es erforderlich und sollte dem aktuellen Zählerstand bei erstellen des Kanals entsprechen.
 +
 +=== Cookie (Wahl-Parameter) ===
 +Grundlage für die permanente Speicherung einer Ansicht des Frontends im Browser. Sollen verschiedene Ansichten des Frontends abrufbar sein, wird die Nutzung von multi-user-fähigen Browsern (iOS-app: switch, Firefox-Add-On: CookieSwap) empfohlen.
 +
 +=== Regel (typabhängiger Pflicht-Parameter) ===
 +{{ :software:frontends:frontend:virtuellen_kanal_erstellen.png?300|}}
 +Für virtuelle Kanäle ist eine Formel nötig um Daten aus anderen Kanälen ermitteln zu können. Es sind einfache mathematische Operationen möglich. Dazu müssen Eingang (1-4) passend zur Formel definiert sein.
 +Z.B. würde ''val(in1) - val(in2)'' den Eingang 2 von Eingang 1 subtrahieren.\\
 +
 +Für brauchbare Werte müssen die Einheiten der Eingänge zueinander passen. Ausnahme sind Zählerstände (Wh), sie werden von der Middleware grundsätzlich von der Zeit "befreit" und stehen z.B. als Leistung (W) zur Verfügung. Dementsprechend ist die Einheit des virtuellen Kanals auch immer ohne Zeit (W).
 +
 +=== Eingang (1-4) (typabhängiger Pflicht und Wahl-Parameter) ===
 +Hier sind die UUID der Kanäle einzutragen aus denen der virtuelle Kanal errechnet werden soll.
 +Eingang 1 ''(in1)'' ist Pflicht, Eingänge 2-4 (''(in2)'', ''(in3)'' und ''(in4)'') sind optional.
 +
 +=== UUID ===
 +Die UUID wird beim Anlegen eines Kanals automatisch erzeugt und wird nach Anlegen des Kanals in einem Fenster angezeigt. Später kann die über das (i) rechts neben dem Kanal abgefragt werden.
 +
 +==== Kanäle manuell über HTTP Request anlegen ====
 +Ein alternativer Weg. Der gesamte, verfügbare Funktionsumfang kann unter [[/development/api/reference|Referenz]] eingesehen werden.
 +
 +<code>
 +http://<server>/<path>/middleware.php/channel.json?operation=add&title=Testzaehler&type=power&resolution=1000&description=Swissnox[...]
 +</code>
 +
 +Die Middleware antwortet daraufhin mit einer JSON codierten Antwort, die die UUID des Kanals enthält.
 +
 +Die UUID läßt sich auch per [[http://www.phpmyadmin.net|phpMyAdmin]] aus der Tabelle "entities" entnehmen.
 +
 +===== Testen =====
 +
 +Mit folgendem Request können wir dann bereits die ersten Impulse/Messwerte simulieren:
 +<code>
 +http://<server>/<path>/middleware.php/data/<uuid>.json?operation=add&value=<1|Sensor Wert>
 +</code>
 +
 +und mit folgendem die Daten zurücklesen:
 +<code>
 +http://<server>/<path>/middleware.php/data/<uuid>.json</code>
 +
 +Um uns nun die Daten anzeigen zu können, müssen wir nur noch das Frontend mit der entsprechenden UUID aufrufen:
 +<code>
 +http://<server>/<path>/?uuid=<uuid>
 +</code>
 +
 +<note tip>Die Demodaten besitzen die UUID: <code>a301d8d0-903b-1234-94bb-d943d061b6a8</code></note>
 +
 +Alternativ kann man die UUID auch über das Fenster im Frontend direkt eingeben.
  
software/middleware/einrichtung.1589930401.txt.gz · Zuletzt geändert: 2020/05/20 01:20 (Externe Bearbeitung)