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

Andreas Goetz cpuidle at gmail.com
Sun May 15 11:13:10 CEST 2016


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


More information about the volkszaehler-users mailing list