X
Forum

Forum

Notifications
Clear all

Zigbee v dockeru

11 Posts
2 Users
1 Likes
925 Views
(@kully)
Trusted Member
Joined: 5 years ago
Posts: 80
Topic starter  

Zaujal mě článek na blogu ZIGBEE HRÁTKY – SERIÁL NA POKRAČOVÁNÍ.

Na základě tohoto článku jsem si chtěl doma taky konečně rozjet zigbee síť, Zigbee stick CC2652 už doma mám dlouho a server mi taky běží.

Nainstaloval jsem si tedy docker a docker-compose do Photon OS, ale i po přečtení několika článků a návodů k dockeru nejsem schopný to vůbec rozchodit. Povedlo se mi nahrát akorát image

docker pull nodered/node-red
docker pull koenkk/zigbee2mqtt
docker pull eclipse-mosquitto

a tady jsem skončil. Nahrál jsem si do dockeru i Portainer pro jednodušší ovládání dockeru, ale stejně si s tím nevím rady.

Když jsem vytvořil image node-red podle tohoto:

FROM nodered/node-red

RUN npm install bufferutil
RUN npm install utf-8-validate
RUN npm audit fix

RUN npm install node-red-node-smooth
RUN npm install node-red-dashboard
RUN npm install node-red-node-ui-list
RUN npm install node-red-contrib-zigbee2mqtt

tak se mi vytvořily dvě image:

nodered/node-red:<none>

534.7 MB

nodered/node-red:latest 569.2 MB

a nevím jestli je to správně. Možná je jedna image čistá a ta druhá obsahuje ty věci navíc, ale nevím, která je která.
Nejspíš se z image musí spustit kontejner, ale nevím jaký je správný příkaz. Možná toto řeší soubor docker-compose.yml, ale s tímto obsahem z článku mi to nejde spustit:

 

dum-mosquitto:
  build: mosquitto
  container_name: dum-mosquitto
  restart: always
  ports:
  - "1883:1883"
  - "9001:9001"
  network_mode: bridge

dum-nodered:
  build: nodeRed
  container_name: dum-nodered
  restart: always
  ports:
    - "1880:1880"
    - "60000-61000:60000-61000/udp"
  network_mode: bridge
  links:
  - dum-mosquitto
  - dum-zigbee

dum-zigbee:
  container_name: dum-zigbee
  image: koenkk/zigbee2mqtt
  volumes:
    - ./zigbee/data:/app/data
    - /run/udev:/run/udev:ro
  devices:
    - /dev/ttyUSB0:/dev/ttyACM0
  restart: always
  network_mode: bridge
  privileged: true
  links:
  - dum-mosquitto

myslím, že tam něco chybí. Našel by se někdo, kdo by mi pomohl a vznikl by tady trošku podrobnější návod na zprovoznění zigbee sítě v dockeru a pak by to využili i další členové ?

This topic was modified 2 years ago 2 times by kully

   
Quote
l.adamek
(@l-adamek)
Prominent Member
Joined: 7 years ago
Posts: 688
 

Mozna te uplne nechapu, ale zda se mi, ze michas 2 veci.

Pokud chces pouzit docker-compose z tveho yaml souboru, tak takto:

docker-compose -f /cesta/ktvemu/docker-compose.yml up -d
 
Portainer je jen dalsi image na ktery se dostanes pres url (IP:port, ktery jsi zadal). Pak uz uvidis pres webove ui stav tveho kontejneru, ktery pres toto ui muzes spravovat.
 
EDIT: ten tvuj docker-compose (tak jak jsi ho postnul) na prvni pohled nema spravnou syntaxi. Postni ho, prosim, kompletni.
Ja mam v planu se rozjeti zigbee pomoci dockeru povenovat, ale az bude cas (coz je v ramci mesicu)
 

   
ReplyQuote
(@kully)
Trusted Member
Joined: 5 years ago
Posts: 80
Topic starter  

Taky se mi zdá, že není docker-compose kompletní, ale víc nemám. Zkopíroval jsem ho tak jak je v článku na blogu vodnici. Proto se obracím sem o pomoc, doplnění a zprovoznění.


   
ReplyQuote
l.adamek
(@l-adamek)
Prominent Member
Joined: 7 years ago
Posts: 688
 

Ludek v tom clanku nedal omacku okolo.

Zkus dat na zacatek souboru toto:

version: '2'

services:

Popr. zkus zagooglit nejaky docker-compose example at vidis spravnou strukturu yaml filu.


   
ReplyQuote
(@kully)
Trusted Member
Joined: 5 years ago
Posts: 80
Topic starter  

Po úpravě docker-compose mám tuto chybu:

docker-compose -f docker-compose.yml up -d
2 errors occurred:
* unable to prepare context: path "mosquitto" not found
* unable to prepare context: path "nodeRed" not found

EDIT: Tak už asi vím, že tyto chyby znamenají, že nemůžou najít soubor dockerfile pro mosquitto a pro nodeRed. Jenže jak mám vědět, co má tento soubor obsahovat ?

This post was modified 2 years ago 2 times by kully

   
ReplyQuote
l.adamek
(@l-adamek)
Prominent Member
Joined: 7 years ago
Posts: 688
 

Radek "build: mosquitto" nahrad timto "image: eclipse-mosquitto:latest"

Radek "build: nodeRed" nahrad timto "image: nodered/node-red:latest"


   
ReplyQuote
(@kully)
Trusted Member
Joined: 5 years ago
Posts: 80
Topic starter  

Teď už se to rozjelo, akorát u nodered jsou namapované porty od 60000 do 61000, tzn. je namapovaných tisíc portů. To je správně ? A jelikož jsem se nedostal na žádnou administraci, tak jsem to zkusil znovu a jinak:

vytvořil jsem soubor docker-compose.yml

version: '3.8'
services:
mqtt:
image: eclipse-mosquitto:latest
restart: unless-stopped
volumes:
- "./mosquitto-data:/mosquitto"
ports:
- "1883:1883"
- "9001:9001"
command: "mosquitto -c /mosquitto-no-auth.conf"

zigbee2mqtt:
container_name: zigbee2mqtt
restart: unless-stopped
image: koenkk/zigbee2mqtt
volumes:
- ./zigbee2mqtt-data:/app/data
- /run/udev:/run/udev:ro
ports:
- 8080:8080
environment:
- TZ=Europe/Berlin
devices:
- /dev/ttyUSB0:/dev/ttyUSB0

a pak složku zigbee2mqtt-data a v ní soubor configuration.yaml

# Let new devices join our zigbee network
permit_join: true
# Docker-Compose makes the MQTT-Server available using "mqtt" hostname
mqtt:
base_topic: zigbee2mqtt
server: mqtt://mqtt
# Zigbee Adapter path
serial:
port: /dev/ttyUSB0
# Enable the Zigbee2MQTT frontend
frontend:
port: 8080
# Let Zigbee2MQTT generate a new network key on first start
advanced:
network_key: GENERATE

Po zadání docker-compose up -d se mi to rozjelo, ale nevím zda to funguje. Dělám to vzdáleně a tak nemůžu vyzkoušet zigbee zařízení. Řekl bych, že je to stejně jen půl cesty, jelikož to odtud musím nějak dostat do LOXONE


   
ReplyQuote
l.adamek
(@l-adamek)
Prominent Member
Joined: 7 years ago
Posts: 688
 

Procti si postupne vsechny clanky od Ludka. Postupne tam mas vse popsane:

https://www.vodnici.net/?s=zigbee


   
ReplyQuote
(@kully)
Trusted Member
Joined: 5 years ago
Posts: 80
Topic starter  

Tak už jsem byl celkem blízko. V Loxone vidím stavy zigbee zařízení, k odesílání příkazů z Loxone jsem se nedostal. Potřebuji ale ještě vyřešit dvě věci:
1. V pluginu node-red-contrib-zigbee2mqtt ať nastavím cokoli, tak se mi nezobrazí připojené zařízení. Sice mi to ukazuje online, ale asi to nekomunije s mqtt. K vyzkoušení komunikace přes tento plugin jsem se už nedostal
2. Po restartování serveru se mi vše z node-redu vymaže
A když jsem teď dělal úpravy, tak se rozsypal celý docker. Vůbec mi nejde spustit, CPU jede na 100% a něco žere celou RAM. Když jsem si spustil nový virtuál, tak jsem byl po chvíli na stejném stavu - docker nejde spustit

Při spuštění dockeru mám pouze tuto chybu:
Job for docker.service cancelled

This post was modified 2 years ago 2 times by kully

   
ReplyQuote
(@kully)
Trusted Member
Joined: 5 years ago
Posts: 80
Topic starter  

Znovu jsem všechno nainstaloval a začal od začátku. Při buildu se mi zobrazuje tato chyba:

Step 7/9 : RUN npm install node-red-contrib-zigbee2mqtt
---> Running in c43bd64db8ae
npm WARN deprecated [email protected]: request has been deprecated, see https://git hub.com/request/request/issues/3142
npm WARN deprecated [email protected]: no longer supported
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older v ersions may use Math.random() in certain circumstances, which is known to be pro blematic. See https://v8.dev/blog/math-random for details.
+ node-red-contrib-zigbee2mqtt@0.6.13
added 45 packages from 53 contributors and audited 367 packages in 19.605s

30 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities

Removing intermediate container c43bd64db8ae
---> e15367ee0a49

 

A pořád v nodered v pluginu node-red-contrib-zigbee2mqtt nevidím zigbee zařízení. Může za to ta chyba ?


   
ReplyQuote
(@kully)
Trusted Member
Joined: 5 years ago
Posts: 80
Topic starter  

Tak už mi to konečně funguje. Kdyby se náhodou někomu v node-redu v pluginu node-red-contrib-zigbee2mqtt nezobrazovaly žádné zařízení, tak je potřeba v zigbee2mqtt bráně mít povolené Legacy API


   
vita_k reacted
ReplyQuote
Share: