Hallo
Da ich das Thema sehr interessant finde habe ich zum Testen mal ein System aufgesetzt.
Dabei musste ich allerdings feststellen, dass die Infos sehr verstreut im Netz sind.
Ich habe mich für eine Installation auf einem Wago PFC 200 entschieden, da ich hier keine weiteren Geräte benötige.
Ebenfalls sind keine Skill's oder Cloud Anwendungen nötig. (Ausgenommen Amazon zur Spracherkennung)
1. man nehme einen Wago PFC 200 der "Docker ready" ist. Dies sollte jeder Controller der 2. Generation erfüllen
2. Firmware aktualisieren. Die Firmware kann auf
https://github.com/WAGO/pfc-firmware geladen werden. Sowohl als WUP als auch als Image.
3. Docker Installation laden. Auf
https://github.com/WAGO/docker-ipk/releases gibt es die Installationsdatei und
auf
https://github.com/WAGO/docker-documentation eine Anleitung zum download.
4. Docker installieren nach Anleidung. / Portainer ist nicht zwingend notwendig.
5. Nach der Installation von Docker unbedingt den DNS Server und die Zeiteinstellung prüfen!
6. Da Alexa später zwingend auf Port 80 kummuniziert, muss der Webserver auf einen anderen Port umziehen.
Dazu die Portvariable in der Datei
Code:
/etc/lighttpd/lighttpd.conf
ändern
7. Neustart durchführen damit die Portänderung wirksam wird.
8. Auf dem Controller mit einem Terminalprogramm (ich nutze Putty) als "root" einloggen (Initialpasswort ist "wago")
9. Node Red installieren
Code:
docker pull wagoautomation/node-red-iot
Auf
https://hub.docker.com/r/wagoautomation/node-red-iot gibt es einige Infos dazu.
10. Der erste Start von Node Red
Code:
docker run -d --name wagonr -p 1880:1880 -v node_red_user_data:/data -v node_red_user_datacgroup:/sys/fs/cgroup wagoautomation/node-red-iot:latest
Im Browser <Controller Ip>:1880 aufrufen. Bis das Webinterface von Node Red verfügbar ist dauert es ein kleine weile!
11. Im Hamburger Menü Palette verwalten auswählen und "node-red-contrib-amazon-echo" und "node-red-contrib-modbustcp" installieren.
12 den "Hub" von Alexa auf das Arbeitsblatt ziehen und einen Device auf das Arbeitsblatt ziehen und verbinden. Den Hub auf Port 80 konfigurieren. (Es wird ein Philips HUE Hub emuliert.)
13. den Device mit einem Namen versehen (auf diesen Namen hört Alexa später) und Deploy'en
14. den Container von Node Red stoppen und löschen.
15. Über welchen Port Alexa die Geräte sucht konnte ich nicht feststellen. Darum alle Ports in den Container leiten:
Code:
docker run -d --name wagonr --network host -p 1880:1880 -v node_red_user_data:/data -v node_red_user_datacgroup:/sys/fs/cgroup wagoautomation/node-red-iot:latest
16. jetzt kann in der Alexa App das Device gesucht werden.
17. Wurde das Device gefunden den Container von Node Red stoppen und löschen.
18. Jetzt den Container mit den richtigen Ports anlegen und mit Systemstart starten:
Code:
docker run -d --name wagonr --restart always -p 1880:1880 -p 80:80 -v node_red_user_data:/data -v node_red_user_datacgroup:/sys/fs/cgroup wagoautomation/node-red-iot:latest
19. Jetzt kann in Node Red lustig drauf los programmiert werden.
20. Zur Kommunikation mit dem SPS Programm habe ich ModbusTCP verwendet. Es ist aber auch OPC UA oder vieles mehr möglich.
Einige nützliche Befehle:
Code:
Container List - docker container ps -a // alle Container auch inaktive
Container Starten - docker start <containername>
Container Stoppen - docker stop <containername>
Container löschen - docker rm <containername>
Anzeige Portmapping - docker container port <containername>
Holger