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

Christian Schnellrieder schnellrieder.cs at gmail.com
Sun May 15 11:38:03 CEST 2016


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


More information about the volkszaehler-users mailing list