Forum
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é ?
Mozna te uplne nechapu, ale zda se mi, ze michas 2 veci.
Pokud chces pouzit docker-compose z tveho yaml souboru, tak takto:
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í.
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.
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 ?
Radek "build: mosquitto" nahrad timto "image: eclipse-mosquitto:latest"
Radek "build: nodeRed" nahrad timto "image: nodered/node-red:latest"
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
Procti si postupne vsechny clanky od Ludka. Postupne tam mas vse popsane:
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
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 ?
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