[vz-users] S0 Wasseruhr ohne Umweg über die Datenbank

Frank Richter frank.richter83 at gmail.com
Sun Jul 22 22:26:03 CEST 2018


systemctl status push-server

Und damit was ankommt, musst du auch vzlogger push beibringen.

Grüße
Frank

Christian Wulff <christianwulff at gmx.de> schrieb am So., 22. Juli 2018,
22:23:

> Okay, das Problem mit dem Frontend konnte ich gerade selber beheben. Steht
> auch in der Doku, überliest sich aber leicht.
>
>
>
> In meiner /var/www/volkszaehler.org/htdocs/frontend/javascripts/options.js
> fehlt ein Komma.
>
> Das rote markierte hier:
>
> middleware: [
>
>                                {
>
>                                                title: 'Local (default)',
>
>                                                url: '../middleware.php'*,*
>
>                                                live: 8082
>
>
>
>
>
>
>
> Trotzdem glaube ich, das der Push Server noch nicht läuft.
>
> Wie kann ich das testen?
>
> “pstree” liefert:
>
> systemd─┬─agetty
>
>         ├─apache2───10*[apache2]
>
>         ├─avahi-daemon───avahi-daemon
>
>         ├─cron
>
>         ├─dbus-daemon
>
>         ├─dhcpcd
>
>         ├─exim4
>
>         ├─mysqld_safe───mysqld───24*[{mysqld}]
>
>         ├─ntpd
>
>         ├─php
>
>         ├─rsyslogd─┬─{in:imklog}
>
>         │          ├─{in:imuxsock}
>
>         │          └─{rs:main Q:Reg}
>
>         ├─sshd───sshd───sshd───bash───pstree
>
>         ├─systemd───(sd-pam)
>
>         ├─systemd-journal
>
>         ├─systemd-logind
>
>         ├─systemd-udevd
>
>         ├─thd
>
>         ├─vzlogger─┬─{libmicrohttpd}
>
>         │          └─30*[{vzlogger}]
>
>         └─wpa_supplicant
>
>
>
> Lieben Gruß,
>
> Chris
>
>
>
>
>
>
>
> *Von:* Christian Wulff [mailto:christianwulff at gmx.de]
> *Gesendet:* Sonntag, 22. Juli 2018 21:54
> *An:* 'volkszaehler.org - users'
> *Betreff:* Re: [vz-users] S0 Wasseruhr ohne Umweg über die Datenbank
>
>
>
> Hmm, ich habe da so meine Probleme mit der Aktivierung des Push Servers.
>
> Ich vermute das liegt an der etwas älteren Version meiner Installation vom
> ungefähr Oktober oder November 2016.
>
> Ich denke die Pfade sind inzwischen etwas anders.
>
> Ich habe das soweit ich konnte angepasst, komme nun aber nicht mehr weiter.
>
>
>
> In der /var/www/volkszaehler.org/etc/volkszaehler.conf.php habe ich:
>
> $config['push']['enabled'] = true;              // set to true to enable
> push updates
>
> $config['push']['server'] = 5582;               // vzlogger will push to
> this ports (binds on 0.0.0.0)
>
> $config['push']['broadcast'] = 8082;    // frontend will subscribe on this
> port (binds on 0.0.0.0)
>
>
>
> $config['push']['routes']['wamp'] = array('/', '/ws');          // routes
> for wamp access
>
> $config['push']['routes']['websocket'] = array();                       //
> routes for plain web sockets, try array('/socket')
>
>
>
>
>
>
>
> In meiner /etc/systemd/system/push-server.service steht:
>
> [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
>
>
>
>
>
>
>
> Wenn ich den Push-Server an der Konsole starte:
>
> php /var/www/volkszaehler.org/misc/tools/push-server.php
>
>
>
> Kommt dies:
>
> Volkszaehler Push Server
>
> Listening for updates on 5582. Clients may connect at 8082.
>
> No routes configured for WebSocket protocol. Disabling websockets.
>
>
>
>
>
> Das Browser Frontend meldet jetzt:
>
>
>
> Die Eigenschaft "forEach" eines undefinierten oder Nullverweises kann
> nicht abgerufen werden.
>
>
>
> Wer weiss Rat?
>
>
>
> Lieben Gruß,
>
> Chris
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *Von:* Frank Richter [mailto:frank.richter83 at gmail.com]
> *Gesendet:* Mittwoch, 18. Juli 2018 22:22
> *An:* volkszaehler.org - users
> *Betreff:* Re: [vz-users] S0 Wasseruhr ohne Umweg über die Datenbank
>
>
>
> Na also, von den ganzen ESP-Kanälen kriegt der Push-Server gar nix mit.
> Ich sehe da kein Performance-Problem.
>
>
>
> Gruß
>
> Frank
>
>
>
> Am 18.07.2018 9:47 nachm. schrieb "Christian Wulff" <christianwulff at gmx.de
> >:
>
> Moin,
>
>
>
> denn antworte ich mal so zusammengefasst auf beide Nachrichten:
>
>
>
> Das ganze läuft auf einem Raspberry Pi 3 mit der Erweiterung von Udo. Hier
> sind direkt angeschlossen 3x Stromzählerkanal über 2 USB IR-Leseköpfe, 1x
> Wasseruhr über S0 und 19 Stück DS18b20 über 1-Wire im Minutentakt.
>
> Zusätzlich kommen noch über den ersten ESP8266 mit ESPEasy 15 Kanäle
> DS18b20 Temperaturwerte im Minutentakt.
>
> Über einen zweiten selbst programmierten ESP8266 kommen im Minutentakt 3
> Drehzahlwerte.
>
> Über einen dritten selbst programmierten ESP8266 kommen 8x
> Luftfeuchtigkeit, 8x Luftdruck und 9x Temperatur = 25 Werte im Minutentakt.
>
> Uns dann habe ich noch 3 mobile DS18b20 über je einen ESP8266.
>
> Unterm Strich habe ich also nur einen S0 Zähler.
>
>
>
> Ich werde mich mal mit dem Push Server, node-RED und MQTT beschäftigen
> müssen wenn ich mal wieder Zeit dafür finde. Bis dahin kann ich mir das
> leider nur theoretisch durchdenken.
>
> Auf jeden Fall habt ihr mir schon mal die richtigen Tipps gegeben.
>
>
>
> Vielen Dank und lieben Gruß,
>
> Chris
>
>
>
> -------------------------------------------------------
>
>
>
>
>
>
>
> Hallo,
>
>
>
>
>
> am Dienstag, 17. Juli 2018 um 22:13 hat Frank Richter geschrieben:
>
> > wüsste nicht dass man das aufteilen kann.
>
>
>
> Grundsätzlich ist es möglich vzlogger doppelt laufen zu lassen.
>
> Das man dann zwei Konfigurationsdateien braucht ist wohl offensichtlich.
>
>
>
> Man muss dabei halt noch aufpassen das man nicht versucht das selbe Device
> zweimal anzusprechen, das geht mit Sicherheit schief.
>
> Das beträfe indem Fall also alle S0-Zähler die an diesem Rpi, an dieser
> Erweiterung hängen.
>
>
>
>
>
> mfg Daniel
>
>
>
>
>
> *Von:* Frank Richter [mailto:frank.richter83 at gmail.com]
> *Gesendet:* Dienstag, 17. Juli 2018 22:14
> *An:* volkszaehler.org - users
> *Betreff:* Re: [vz-users] S0 Wasseruhr ohne Umweg über die Datenbank
>
>
>
> Hi Christian,
>
>
>
> wüsste nicht dass man das aufteilen kann. Die Frage zielte eher darauf ab,
> dass du möglicherweise mehrere Pis hast oder Wireless-Sensoren auf
> ESP-Basis etc.
>
>
>
> Probier's doch einfach mal aus. Ich glaube eher nicht dass die Push-Werte
> ein Performance-Problem sind. Ein Großteil deiner Kanäle sind doch bestimmt
> Temperatursensoren, die eh nicht so häufig ausgelesen werden.
>
>
>
> Grüße
>
> Frank
>
>
>
> Christian Wulff <christianwulff at gmx.de> schrieb am Di., 17. Juli 2018,
> 21:32:
>
> Moin Frank,
>
>
>
> Ich denke die 69 Kanäle werden von einer vzlogger Instanz geloggt.
>
> Kann man das aufteilen?
>
> Dann würde ich nur die Wasseruhr (und vielleicht später nochmal 2-3
> weitere Kanäle) mit einer zweiten Instanz loggen. Und nur diese zweite
> Instanz durch den Push Server rausschicken.
>
> Wie macht man das genau?
>
>
>
> Lieben Gruß,
>
> Chris
>
>
>
> *Von:* Frank Richter [mailto:frank.richter83 at gmail.com]
> *Gesendet:* Montag, 16. Juli 2018 00:08
> *An:* volkszaehler.org - users
> *Betreff:* Re: [vz-users] S0 Wasseruhr ohne Umweg über die Datenbank
>
>
>
> Hi Christian,
>
>
>
> soweit korrekt verstanden.
>
>
>
> Der Push-Server verteilt die Daten, die bei ihm (vom vzlogger) angeliefert
> werden. Das ist nicht weiter konfigurierbar.
>
> Werden deine 69 Kanäle alle von einer vzlogger-Instanz geloggt? Wenn
> nicht, nur dort aktivieren wo es auch erforderlich ist.
>
> Bei Temperatursensoren kann man das Loginterval mit "interval" passend
> einstellen, dann entsteht keine nennenswerte Last durch die paar
> Push-Datensätze.
>
>
>
> Grüße
>
> Frank
>
>
>
> Christian Wulff <christianwulff at gmx.de> schrieb am So., 15. Juli 2018,
> 23:12:
>
> Moin Frank,
>
>
>
> nun hatte ich endlich mal Zeit mir das ganze anzuschauen.
>
> Ich versuche das mal zu verstehen und denke mal laut:
>
>
>
> Der PushServer ist ein Dienst, den man auf dem Raspi3 aktivieren kann.
>
> Der sendet dann alle Daten raus, in dem Moment wie sie ankommen, ohne
> diese vorher zu aggregieren. Dadurch erhält man eine höhere Auflösung und
> immer dann sofort die Daten, wenn die entstehen.
>
> Soweit, so gut.
>
> Beeinflusst das in irgendeiner Art die Speicherung der Daten in die
> Datenbank? Ich vermute nein.
>
> Die Daten die im Frontend dargestellt werden, sind die Daten aus der
> Datenbank.
>
> Und zur Laufzeit des Frontends werden dann die Daten vom Pushserver,
> anstatt aus der Daten aus der Datenbank angezeigt.
>
> Ich denke bis dahin habe ich das verstanden.
>
> Was ich jetzt nicht so gut finde, ist, dass alle Kanäle vom Push Server
> gesendet werden. Das sind bei mir immerhin schon 69 Kanäle, die noch locker
> auf gut 100 anwachsen können.
>
> Gibt es da keine Möglichkeit den PushServer auf einige wenige Kanäle
> einzuschränken? (Im ersten Ansatz reicht mir ein Kanal, später vielleicht
> noch 2-3 weitere, aber niemals alle ~100 Kanäle).
>
> Meine Idee dabei ist einfach nicht alles unnötig zu belasten.
>
>
>
> Node Red würde auch auf dem Raspi3 laufen, richtig?
>
> Node Red verwandelt die Push Server Daten dann in ein MQTT Protokoll.
>
>
>
> Und mit meinem ESP8266 kann ich dann mit der PubSubClient Library dieses
> MQTT Protokoll lesen?
>
>
>
> Lieben Gruß,
>
> Chris
>
>
>
>
>
>
>
>
>
> *Von:* Frank Richter [mailto:frank.richter83 at gmail.com]
> *Gesendet:* Sonntag, 8. Juli 2018 15:57
> *An:* volkszaehler.org - users
> *Betreff:* Re: [vz-users] S0 Wasseruhr ohne Umweg über die Datenbank
>
>
>
> Hi Christian,
>
>
>
> schau dir im Wiki die Seiten zum Push-Server und Node-Red an, damit kann
> man das basteln. Der Push-Server konvertiert die eingehenden Impulse zu
> Leistung (hier: Durchfluss) und kann sie per Websockets an Node-Red
> weiterleiten. Von dort zum ESP bietet sich MQTT an, dafür brauchst du den
> PubSubClient.
>
>
>
> Grüße
>
> Frank
>
>
>
> Christian Wulff <christianwulff at gmx.de> schrieb am So., 8. Juli 2018,
> 13:44:
>
> Moin,
>
>
>
> ich würde gerne den aktuellen Wasserverbrauch auf einem Display ausgeben,
> und zwar ohne Umweg über die Datenbank.
>
> Ohne Umweg über die Datenbank deswegen, weil ich die Datenbank einfach
> nicht unnötig belasten möchte.
>
>
>
> Hier kommen die Daten her:
>
> Ich habe also eine S0 Wasseruhr und die ist über Udos Raspi Erweiterung an
> einem Raspi3 angeschlossen.
>
>
>
> Hier will ich die Daten anzeigen:
>
> Als Anzeige habe ich einen ESP8266 und ein Display.
>
> Der ESP8266 holt sich momentan die Werte über WLAN aus der Datenbank.
>
> Auf diesem Display zeige ich momentan die Uhrzeit mit Sekunden an, diese
> kommt von einem NTP Server.
>
> Außerdem werden einige Zimmertemperaturen angezeigt. Diese werden im
> Minutentakt aus der Datenbank per JSON abgefragt.
>
> Das gleiche funktioniert auch mit der Wasseruhr, allerdings ist dies im
> Minutentakt wenig sinnvoll.
>
> Meine Wasseruhr gibt pro 0,5L einen Impuls aus.
>
> Die Anzeige auf dem Display soll also so schnell aktualisiert werden, dass
> man dort jeden 0,5L Impuls sofort sieht, egal wie viele Wasserhähne im
> ganzen Haus aufgerissen sind.
>
> Ich möchte dort z.B. ablesen können: 27 L/min und auch 86 L in der letzten
> Stunde.
>
> Das krieg ich alles hin.
>
> Das Problem an der Stelle ist aber, dass ich dafür die Datenbank im besten
> Falle mehrere Male pro Sekunde abfragen muss, damit ich eine schöne Anzeige
> bekomme.
>
>
>
> Nun die Frage:
>
> Ich kenne leider nicht gut genug die Struktur des Volkszählers.
>
> Wo und wie werden die Impulse von der Wasseruhr bis in die Datenbank
> verarbeitet und weitergeleitet?
>
> Und wo und wie kann ich diese anzapfen ohne die Datenbank usw. stärker zu
> belasten?
>
>
>
> Ich hoffe das ich ausreichend rüberbringen konnte was ich möchte.
>
> Und ich hoffe noch mehr, dass mir jemand weiterhelfen kann?!
>
>
>
> Liebe Grüße und einen schönen Sonntag,
>
> Chris
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20180722/5fdf96ea/attachment-0001.html>


More information about the volkszaehler-users mailing list