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

Christian Schnellrieder schnellrieder.cs at gmail.com
Sat May 14 18:57:45 CEST 2016


Hallo Andreas,


>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.

Es wäre ja nicht so das ich es nicht versucht habe es auf /socket
einzustellen. Aber nach dem ersten Tag bin ich dann in den "try and error"
Modus gewechselt und zumindest für mich als Anwender zum "Ziel" gekommen.
Das Frontend zeigt die Daten an... node-red gibt im Sekundentakt die Live
Daten an. Was verstehst du unter Frontend abhängen?

>Sollte eigentlich so aus dem Diagramm hervor gehen :O

Ich hätte es so verstanden. Es gibt WAMP... es gibt Websocket.... und dazu
die jeweilige config Line. Aber ich hab nun "verstanden" das es anders
laufen sollte und ich werde es nochmal mit /socket testen.


Grüße und schöne Pfingstfeiertage,
Christian

Andreas Goetz <cpuidle at gmail.com> schrieb am Sa., 14. Mai 2016 um 17:09 Uhr:

> 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/d8468572/attachment-0001.html>


More information about the volkszaehler-users mailing list