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.
Ziel der Daten können das Frontend oder andere Clientanwendungen wie z.B. Node-RED sein.
Konfiguration
Um den PS zu nutzen sind folgende Ä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 einache Websockets (z.B. Note-RED), Empfehlung: array('/socket')
Gestartet wird der Konsole PS 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