[vz-users] node-red Support für die Middleware?

Andreas Goetz cpuidle at gmail.com
Sat May 14 17:09:13 CEST 2016


Hi Christian,

2016-05-13 18:00 GMT+02:00 Christian Schnellrieder <
schnellrieder.cs at gmail.com>:

> Nicht eingetragen. Brauch ich den?
>

Das Frontend spricht WAMP- ein spezielles Protokoll das websockets nutzt.
Schau Dir
https://github.com/volkszaehler/volkszaehler.org/blob/master/htdocs/frontend/javascripts/init.js#L132
an: das Frontend versucht es

1)  auf der Adresse wo auch das Frontend gehostet wird, aber unter /ws als
Pfad. Wenn konfiguriert könnte da die Apache Weiterleitung greifen
2) oder- wenn das nicht funktionier- direkt auf dem Port der für WAMP
konfiguriert ist

Damit Beides mit als auch ohne weitere Apachekonfiguration funktioniert
lauscht der Pushserver via WAMP auf / und /ws am konfigurierten Port. Der
muss entweder extern zugreifbar sein oder via Apache weiter geleitet.

Im Gegensatz dazu kann Node-red nur "nackte/plain" websockets ohne weitere
Module. Dafür bietet es sich an _nicht_ /ws oder / zu nehmen weil Du dann
damit das Frontend abhängst. Daher der Vorschlag /socket dafür zu
konfigurieren.

Sollte eigentlich so aus dem Diagramm hervor gehen :O

Viele Grüße,
Andreas


> Andreas Götz <cpuidle at gmail.com> schrieb am Fr., 13. Mai 2016 um
> 17:57 Uhr:
>
>> Was hast Du mit dem Config Eintrag für WAMP gemacht???
>>
>> Am 13.05.2016 um 16:43 schrieb Christian Schnellrieder <
>> schnellrieder.cs at gmail.com>:
>>
>> Hallo Andreas,
>>
>> an der Baustelle bin ich noch dran. Aktuell kann ich einstellen was ich
>> will... es zeigt nur eine Veränderung ins negative.. (keine Verbindung mehr
>> Möglich)
>>
>> Aktuell habe ich folgende Settings:
>> /var/www/volkszaehler.org/etc/volkszaehler.conf.php
>> $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']['websocket'] = array('/');
>>
>>
>> In der Apache Config:
>> LoadModule proxy_module modules/mod_proxy.so
>> LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
>>
>> <Location "/ws">
>>     ProxyPass ws://localhost:8082
>> </Location>
>>
>>
>> Mit /socket mag es nicht so recht.
>>
>> /var/www/volkszaehler.org/etc/volkszaehler.conf.php
>> $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']['websocket'] = array('/socket');
>>
>> Node-Red gibt dann einen Verbindungs Fehler aus.
>> In der Debug Console vom Volkszähler sieht man folgende Ausgabe:
>>
>> <Clipboard02.jpg>
>>
>> Grüße
>>
>>
>> Andreas Goetz <cpuidle at gmail.com> schrieb am Fr., 13. Mai 2016 um
>> 16:25 Uhr:
>>
>> Servus,
>>>
>>> wenn ich Dein Bild richtig deute dann connectest Du Dich auf /ws. Das
>>> sieht aus als hättest Du dafür WAMP abgeschaltet und nus websockets in der
>>> vz Config aktiviert?
>>>
>>> Wäre nicht falsch bedeutet aber dass das VZ Frontend keine Updates mehr
>>> bekäme wenn Du das nicht auch umkonfiguriert hast. Im Zweifelsfall ist der
>>> Vorschlagswert /socket vielleicht geeigneter.
>>>
>>> Viele Grüße,
>>> Andreas
>>>
>> 2016-05-13 15:35 GMT+02:00 Christian Schnellrieder <
>>> schnellrieder.cs at gmail.com>:
>>>
>> Hallo.
>>>>
>>>> Es lebt :)
>>>> Nach zwei Tagen habe ich heute einen "neustart" gemacht und war rel
>>>> schnell am Ziel.
>>>>
>>>>
>>>> <ws_vz.jpg>
>>>> Grüße
>>>>
>>>>
>>>>
>>>> Andreas Goetz <cpuidle at gmail.com> schrieb am Mi., 11. Mai 2016 um
>>>> 11:59 Uhr:
>>>>
>>>>> Hi Christian,
>>>>>
>>>>> 2016-05-11 10:58 GMT+02:00 Christian Schnellrieder <
>>>>> schnellrieder.cs at gmail.com>:
>>>>>
>>>>>> Hallo Andreas,
>>>>>>
>>>>>> erster Punkt ist erledigt. Auf meinem Live System läuft nun eine
>>>>>> Version die dem Pullrequest 430 entspricht.
>>>>>> Ich hab jetzt mal
>>>>>> https://github.com/andig/volkszaehler.org/blob/push-sockets/misc/tools/push-server.md
>>>>>>  studiert....
>>>>>>
>>>>>> Die Architecture beschreibt folgenden flow:
>>>>>> vzlogger ==http ==> push server == webSockets ==> node red
>>>>>>
>>>>>>
>>>>>> Also richtige ich jetzt einfach im vzlogger einen push server ein.
>>>>>>
>>>>>
>>>>> Jaein. Im vzlogger richtest Du ein das er alle(!) Daten irgendwohin
>>>>> "pusht". Der Gag ist dass dabei aggtime etc. umgangen werden, also wirklich
>>>>> _jeder_ Meßwert weiter gereicht wird den man vielleicht auch nicht in der
>>>>> MW speichern will (wer will schon sekundengenauen Stromverbraucht,
>>>>> Stichwort Speichermenge und Performance).
>>>>>
>>>>>
>>>>>> Nur was hat das ganze jetzt nun mit dem front end zu tun?
>>>>>>
>>>>>
>>>>> Es gibt im Diagramm zwei Wege:
>>>>>
>>>>>
>>>>> 1. vzlogger ==http ==> push server == WAMP ==> frontend
>>>>> 2. vzlogger ==http ==> push server == webSockets ==> node red
>>>>>
>>>>> Der erste Weg existiert heute schon- damit bekommt das Frontend die
>>>>> Echtzeitupdates wenn eingeschaltet.
>>>>> Der zweite Weg (von Dir oben angegeben) ist neu- und hat insofern mit
>>>>> dem Frontend also nix zu tun außer dass die gleichen Komponenten verwendet
>>>>> werden.
>>>>>
>>>>>
>>>>>> Verstehe ich das richtig... das in der volkszaehler.conf.php  eine
>>>>>> "Umleitung" eingestellt wird
>>>>>> $config['push']['routes']['websocket']: /socket
>>>>>>
>>>>>
>>>>> Nicht wirklich eine Umleitung. Das bedeutet dass der pushserver auf
>>>>> /socket auf WebSocket Verbindungen wartet die er dann mit Daten versorgt-
>>>>> darauf muss ich Dein node-red also verbinden (= Weg 2).
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>> Somit kann man dann über das Frontend... den "pushserver" abfragen?
>>>>>>
>>>>>
>>>>> Wieder jaein. Der Push-server versorgt das Frontend wenn sich dieses
>>>>> via WAMP auf einem konfigurierten Pfad verbindet (=Weg 1):
>>>>>
>>>>> $config['push']['routes']['wamp'] = array('/', '/ws');
>>>>>
>>>>> In init.js ist codiert dass wir das auf /ws oder direkt auf /
>>>>> versuchen.
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>> Grüße
>>>>>>
>>>>>
>>>>> Viele Grüße,
>>>>> Andreas
>>>>>
>>>>> PS.: Hast Du nicht Lust zum VZ Treffen zu kommen? Dann könnten wir das
>>>>> auch live zusammenbasteln ;)
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Andreas Goetz <cpuidle at gmail.com> schrieb am Do., 5. Mai 2016 um
>>>>>> 11:31 Uhr:
>>>>>>
>>>>>>> Moin Christian,
>>>>>>>
>>>>>>> schau mal hier:
>>>>>>> https://github.com/volkszaehler/volkszaehler.org/pull/430
>>>>>>>
>>>>>>> insbesondere lege ich Dir
>>>>>>> https://github.com/andig/volkszaehler.org/blob/push-sockets/misc/tools/push-server.md
>>>>>>> ans Herz, da hab ich mal die Logik zusmammen geschrieben.
>>>>>>>
>>>>>>> Viele Grüße,
>>>>>>> Andreas
>>>>>>>
>>>>>>>
>>>>>>> 2016-05-05 10:45 GMT+02:00 Christian Schnellrieder <
>>>>>>> schnellrieder.cs at gmail.com>:
>>>>>>>
>>>>>>>> Hallo Andreas,
>>>>>>>>
>>>>>>>> >Wenn Du ein Update auf mein Repo nicht scheust und den node-red
>>>>>>>> Teil selber basteln willst sag Bescheid.
>>>>>>>>
>>>>>>>> Ja würde ich gerne testen.
>>>>>>>> o Unter welchen Link bzw. welchen branch liegen die Änderungen?
>>>>>>>>
>>>>>>>> Grüße
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Andreas Götz <cpuidle at gmail.com> schrieb am Di., 3. Mai 2016 um
>>>>>>>> 19:42 Uhr:
>>>>>>>>
>>>>>>>>> Hallo Christian,
>>>>>>>>>
>>>>>>>>> Am 29.04.2016 um 10:14 schrieb Christian Schnellrieder <
>>>>>>>>> schnellrieder.cs at gmail.com>:
>>>>>>>>>
>>>>>>>>> Hallo.
>>>>>>>>>
>>>>>>>>> Spät aber doch. Ich hab mir node-red angesehen und bin begeistert.
>>>>>>>>> Also von meiner Seite her... ja der Bedarf wäre da.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Ich hab mittlerweile was zusammengehackt das gut genug für einen
>>>>>>>>> ersten Test sein sollte. Erweiterung des push-servers mit zusätzlichem
>>>>>>>>> WebSocket Support. Wenn mans elegant mach dann Http/ Wamp/ Websocket über
>>>>>>>>> einen einzigen externen Port.
>>>>>>>>>
>>>>>>>>> Wenn Du ein Update auf mein Repo nicht scheust und den node-red
>>>>>>>>> Teil selber basteln willst sag Bescheid.
>>>>>>>>>
>>>>>>>>> Viele Grüße, Andreas
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Grüße und noch ein schönes Wochenende,
>>>>>>>>> Christian
>>>>>>>>>
>>>>>>>>> Andreas Goetz <cpuidle at gmail.com> schrieb am Mo., 14. März 2016
>>>>>>>>> um 17:27 Uhr:
>>>>>>>>>
>>>>>>>>>> Hallo Zusammen,
>>>>>>>>>>
>>>>>>>>>> einige von Euch kennen vielleicht node-red, eine drag-und-drop
>>>>>>>>>> Entwicklungsumgebung und Runtime auf Basis von nodejs um IoT Applikationen
>>>>>>>>>> mit wirklich wenig Aufwand zusammenzustöpseln.
>>>>>>>>>>
>>>>>>>>>> Damit lässt sich natürlich auch die Vz Middleware ansprechen oder
>>>>>>>>>> Daten daraus weiter verarbeiten (@Patrick: hatte auch an Dich gedacht ;).
>>>>>>>>>>
>>>>>>>>>> Gibt es Bedarf dafür, vorgefertige Nodes für node-red zur
>>>>>>>>>> Verfügung zu stellen? Ich dahte an sowas wie:
>>>>>>>>>>
>>>>>>>>>> - read channel
>>>>>>>>>> - write channel
>>>>>>>>>> - get channel details
>>>>>>>>>>
>>>>>>>>>> und evtl. auch unsere Echtzeitupdates.
>>>>>>>>>>
>>>>>>>>>> Wäre auch ein interessantes Thema für unser Entwicklertreffen...
>>>>>>>>>>
>>>>>>>>>> Viele Grüße,
>>>>>>>>>> Andreas
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20160514/50a3b4dd/attachment-0001.html>


More information about the volkszaehler-users mailing list