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

Christian Schnellrieder schnellrieder.cs at gmail.com
Sun May 15 11:50:10 CEST 2016


Nachtrag:
Hab soeben die Config über /socket zum "laufen" gebracht.
ws://192.168.1.100:8082/socket statt ws://192.168.1.100/socket brachte mich
zum Ziel.

Grüße



Christian Schnellrieder <schnellrieder.cs at gmail.com> schrieb am So., 15.
Mai 2016 um 11:37 Uhr:

> Hallo Andreas,
>
> diese Fehler kommen aber auch am "Produktions System" vor:
> root at nas:/var/www/volkszaehler.org# git branch -v
> * master 0a1363d Fix hhvm travis error
>
>
> Ich werde dir alles zusammen packen und hochladen (kann grad nicht wegen
> den Kindern :). Wenn Dir es lieber ist per SSH einfach den puplic Key an
> meine Mail schicken. Ich richte dir dann den Zugang ein zum Test Server.
>
>
> Grüße
>
>
> Andreas Goetz <cpuidle at gmail.com> schrieb am So., 15. Mai 2016 um
> 11:13 Uhr:
>
>> Moin und Frohe Pfingsten!
>>
>> 2016-05-15 11:10 GMT+02:00 Christian Schnellrieder <
>> schnellrieder.cs at gmail.com>:
>>
>>> Hallo Andreas,
>>>
>>> ja für mich aus der Anwenderecke sieht es so aus als ob alles
>>> funktionieren würde.
>>> Einzig die Debug Konsole vom Chrome wirft einen Autobahn Fehler aus:
>>>
>>> WebSocket connection to 'ws://192.168.1.100/ws' failed: Error during
>>> WebSocket handshake: Unexpected response code: 503
>>> init.js:166 Autobahn disconnected (3, Connection could not be
>>> established.)
>>>
>>> WebSocket connection to 'ws://demo.volkszaehler.org/ws' failed: Error
>>> during WebSocket handshake: Unexpected response code: 503
>>>
>>> Diese Fehler kommen aber immer. Auch wenn der pushserver abgeschaltet
>>> ist in der "volkszaehler.conf.php". Hat also scheinbar einen anderen
>>> Ursprung.
>>> Wenn du bzgl diesem Fehler in der Konsole die Daten/Config haben
>>> möchtest stelle ich die gerne "online"
>>>
>>
>> Dein Frontend erhält noch keine Pushnachrichten, muss die Middleware also
>> immer pollen. Vmtl. weil WAMP abgeschaltet ist. Wenn Du's gelöst haben
>> willst gerne- entweder über Dateien oder- wenn Du magst- SSH Zugang und URL
>> per PM dann könnte ich es auch umkonfigurieren.
>>
>>
>>> Grüße
>>>
>>
>> Viele Grüße,
>> Andreas
>>
>>
>>>
>>>
>>>
>>>
>>>
>>> Andreas Goetz <cpuidle at gmail.com> schrieb am So., 15. Mai 2016 um
>>> 10:52 Uhr:
>>>
>>>> Hallo Christian,
>>>>
>>>> es ist nicht ganz trivial und ich erkläre es vmtl. nicht gut genug.
>>>> Wenn alles läuft ists ja fein. Wenn Dein Frontend nicht nur Daten anzeigt
>>>> sondern auch push-Updates bekommen (und in der Konsole kein "autobahn"
>>>> Fehler angezeigt wird) dann ist alles gut.
>>>>
>>>> Falls nicht und Du noch Hilfe brauchst lass es uns andersrum machen- Du
>>>> sagst was konkret nicht funktioniert und gibst dazu folgende Daten:
>>>>
>>>> - Url für das Frontend (also wie rufst Du es auf)
>>>> - Middleware Konfiguration in der options.js
>>>> - Push Konfiguration in der volkszaehler.conf.php
>>>> - Push Konfiguration in der vzlogger.conf
>>>> - Apache Konfiguration für push Weiterleitung
>>>>
>>>> Irgendwo dazwischen wird sich dann die Ursache finden.
>>>>
>>>> Viele Grüße,
>>>> Andreas
>>>>
>>>>
>>>>
>>>> 2016-05-14 18:57 GMT+02:00 Christian Schnellrieder <
>>>> schnellrieder.cs at gmail.com>:
>>>>
>>>>> 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/20160515/bb1a2435/attachment-0001.html>


More information about the volkszaehler-users mailing list