Dies ist eine alte Version des Dokuments!
−Inhaltsverzeichnis
Push-Server
Der Push-Server (PS) ist ein Dienst der Teile der Middleware nutzt um Echtzeitwerte an Clients auszuliefern. Quelle für die Rohdaten ist der vzlogger. Ausgeliefert werden aber nur Daten von Kanälen die in der Middleware konfiguriert sind.
Im Git ist eine tiefer gehende Beschreibung verfügbar: ./misc/tools/README.md
Ziel der Daten können das Frontend oder andere Clientanwendungen wie z.B. Node-RED sein.
Konfiguration
Um den PS zu nutzen sind ein paar Änderungen nötig.
Middleware
Standardmäßig ist der PS deaktiviert, um das zu ändern muss er enabled werden:
- volkszaehler.conf.php
/** * Push server settings */ $config['push']['enabled'] = true;
Die übrigen Parameter kurz erläutert:
- volkszaehler.conf.php
$config['push']['server'] = 5582; // vzlogger sendet an diesen Port (angebunden an IP 0.0.0.0) $config['push']['broadcast'] = 8082; // frontend abonniert an diesem Port (angebunden an IP 0.0.0.0) $config['push']['routes']['wamp'] = array('/', '/ws'); // Route für WAMP-Zugriff (Frontend) $config['push']['routes']['websocket'] = array(); // Route für einfache Websockets (z.B. Note-RED), Empfehlung: array('/socket')
Gestartet wird der PS an der Konsole mit:
php /var/www/volkszaehler.org/misc/tools/push-server.php
Es ist aber besser einen vollwertigen Hintergrunddienst einzurichten.
Systemd
Für Debian „Jessie“ (Raspberry-Image) ist Systemd folgendermaßen einzurichten:
sudo nano /etc/systemd/system/push-server.service
Inhalt der Datei:
- push-server.service
[Unit] Description=push-server After=syslog.target network.target Requires= [Service] ExecStart=/usr/bin/php /var/www/volkszaehler.org/misc/tools/push-server.php ExecReload=/bin/kill -HUP $MAINPID StandardOutput=null Restart=always [Install] WantedBy=multi-user.target
Den Dienst beim Boot aktivieren:
sudo systemctl enable push-server
Den Dienst starten:
sudo systemctl start push-server
Vzlogger
Die vzlogger-Konfiguration um die Zeilen erweitern:
- vzlogger.conf
"push": [ { "url": "http://127.0.0.1:5582" // notification destination, e.g. frontend push-server } ],
Vzlogger neu starten:
sudo systemctl stop vzlogger sudo systemctl start vzlogger
Frontend
Nun muss das Frontend die Daten nur noch entgegen nehmen.
sudo nano /var/www/volkszaehler.org/htdocs/js/options.js
Die entsprechend Option ist bereits vorbereitet, die Kommentarzeichen entfernen und auf korrekte Syntax achten.
- options.js
middleware: [ { title: 'Local (default)', url: '../middleware.php', live: 8082
Hinweise
Angezeigt werde die empfangenen Werte im Zuge der automatischen Aktualisierung.
Daten die der PS ausliefert werden vom Frontend nicht gespeichert. Wird das Browserfenster geschlossen oder die Darstellung manipuliert sind die Werte verloren und es wird auf Daten zurückgegriffen die in der Datenbank hinterlegt sind.