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

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


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"

Grüße





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


More information about the volkszaehler-users mailing list