Forum
@dusanmsk Ahoj, zase otravuji s zigbee bránou, ale před časem mi přišel Slaesh’s CC2652RB stick a rozhodl jsem se přejít na SSD disk. To se mi povedlo v pohodě, ale když jsem znovu instaloval tvoji Zigbee bránu, tak se mi nedaří dobrat konce. Zasekl jsem se už při buildu. Píše to tohle:
Step 1/5 : FROM alpine
---> b6342193e7c0
Step 2/5 : RUN apk update && apk add mosquitto bash
---> Running in d6135145dade
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/armv7/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/armv7/APKINDEX.tar.gz
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.13/main: temporary error (try again later)
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/main: No such file or directory
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.13/community: temporary error (try again later)
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/community: No such file or directory
2 errors; 14 distinct packages available
The command '/bin/sh -c apk update && apk add mosquitto bash' returned a non-zero code: 2
ERROR: Service 'mosquitto' failed to build : Build failed
Nevíš co by s tím mohlo být? Zase to určitě bude nějaká prkotina, ale nevím jak to vyřešit. Moc díky.
@zahry to tam mas napsany No such file or directory - na serveru se takovy soubor/adresar uz nenachazi. Asi musis stahnout novy sources.list a udelat apt update
@zahry Mas to nejak rozjebane, teraz som (po pol roku) naklonoval cisty klon z githubu a pustil ./build.sh, zbuildene za 1 min bez kecov. Vymaz si nasosane image toho alpine a rozpracovane kontajnery.
docker image ls
docker image rm <id>
a pusti znova build
Už jsem sice psal v jiném vlákně, kde zkouším rozjet zigbee podle @L, ale chtěl jsem vyzkoušet i tvůj způsob, který mi zatím taky nejde
Když spustím příkaz ./suite.sh build , tak se zobrazí tato chyba:
WARNING: The LOGGING_DRIVER variable is not set. Defaulting to a blank string.
Building loxone2mqtt
Step 1/9 : FROM node:12-alpine
12-alpine: Pulling from library/node
97518928ae5f: Pull complete
468000513d90: Pull complete
7e4d2470b557: Pull complete
26993460ce45: Pull complete
Digest: sha256:0eca266c5fe38ba93aebac00e45c9ac1bb7328b0702a6dc10e1a6ea543d49301
Status: Downloaded newer image for node:12-alpine
---> 2f014773d54a
Step 2/9 : RUN apk update && apk add wget bash git gettext python make gcc g++ # alpine
---> Running in 767d01ed0e30
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
v3.14.3-47-g31d7bef259 [ https://dl-cdn.alpinelinux.org/alpine/v3.14/main ]
v3.14.3-53-g1af08a4b15 [ https://dl-cdn.alpinelinux.org/alpine/v3.14/community ]
OK: 14942 distinct packages available
ERROR: unable to select packages:
python (no such package):
required by: world[python]
ERROR: Service 'loxone2mqtt' failed to build: The command '/bin/sh -c apk update && apk add wget bash git gettext python make gcc g++ # alpine' returned a non-zero code: 1
a
Pozriem na to, rok som na to nesahal.
Vyhod python z bridge/loxone2mqtt/Dockerfile a skus znovu. Neviem preco som ho tam pridaval, je to vyse roka, mozno 2 co som na to vobec nesahol.
Myslíš celý tento řádek ?
RUN apk update && apk add wget bash git gettext python make gcc g++ # alpine
Pak se zobrazí další chyba:
Building loxone2mqtt
Step 1/8 : FROM node:12-alpine
---> 2f014773d54a
Step 2/8 : RUN npm config set user 0; npm config set unsafe-perm true
---> Using cache
---> d267b02e97ae
Step 3/8 : RUN cd /tmp && git clone https://github.com/dusanmsk/node-lox-mqtt-gateway.git nodelox
---> Running in 90c8d21cfbdb
/bin/sh: git: not found
ERROR: Service 'loxone2mqtt' failed to build: The command '/bin/sh -c cd /tmp && git clone https://github.com/dusanmsk/node-lox-mqtt-gateway.git nodelox' returned a non-zero code: 127
@kully Clovece, netusim.
Tu je to cele from scratch:
msk@debian:/tmp/d/loxone$ git clone https://github.com/dusanmsk/loxone.git
msk@debian:/tmp/d/loxone$ cd loxone/
msk@debian:/tmp/d/loxone$ cp config.example config
msk@debian:/tmp/d/loxone$ ./suite.sh build
...
done
K té chybě jsem našel info tady
Takže jsem upravil bridge/loxone2mqtt/Dockerfile takto:
FROM node:12-alpine
#RUN apt-get update && apt-get install -f wget bash git gettext-base # debian
#RUN apk update && apk add wget bash git gettext python make gcc g++ # alpine
RUN npm config set user 0; npm config set unsafe-perm true
RUN apk update && apk add git
RUN cd /tmp && git clone https://github.com/dusanmsk/node-lox-mqtt-gateway.git nodelox
RUN cd /tmp/nodelox && npm -g install
COPY default.json.template /
COPY run.sh /run.sh
RUN chmod a=rx /run.sh
CMD [ "/bin/sh", "/run.sh" ]
a build se udělá. Ten python teda není potřeba ? Na internetu jsem četl, že python už není součásti alpine nebo tak něco.
Po spuštění ./suite.sh build s upraveným bridge/loxone2mqtt/Dockerfile se akorát zobrazuje toto varování:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/share/groovy/lib/groovy-2.4.16.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Po zadání ./suite.sh run se mi to sice nerozjede, ale zkusím to ještě celé projít
Nevím co dělám špatně, ale spustit mi to nejde.
Jediná webová administrace mi jde otevřít na portu 8882 a v záložce Status nevidím žádné info o zigbee sticku
Version of Zigbee2Mqtt:
Coordinator version:
Coordinator Zigbee Id:
V logu plno zpráv a tyto se opakují nejvíc:
loxone_mqtt2loxone_1 exited with code 1
loxone2mqtt_1 | {"level":"info","message":"MQTT - close"}
loxone2mqtt_1 | {"level":"info","message":"MQTT - close"}
loxone2mqtt_1 | {"level":"info","message":"MQTT - close"}
loxone2mqtt_1 | {"level":"info","message":"MQTT - close"}
zigbee2mqtt_1 | Zigbee2MQTT:error 2021-12-10 21:18:55: Not connected to MQTT server!
Pánové, vyserte se na všelijaké maliny, dockery, MQTT brokery a podobné věci. Na zprovoznění ZigBee Vám stačí ZigBee koordinátor, který přímo propojíte s Loxone. Tady je stručné how-to:
1) Kupte si ZigBee bránu postavenou na ESP32
https://templates.blakadder.com/ewelink_ZB-GW03
dá se koupit tady:
https://www.aliexpress.com/item/1005002935401684.html
k tomu adaptér na flashování:
https://www.aliexpress.com/item/1005001621913221.html
(ten červený)
2) Flashněte tam Tasmotu podle tohoto návodu
https://thehelpfulidiot.com/a-wired-sonoff-zigbee-alternative
Není potřeba nic pájet, nejnovější verze desky ZB-GW03-V1.3 má připravené dírky na konektory. Můžete si na ně snadno napájet piny (jako jsem to udělal já), nebo do nich strčit kablíky při flashování.
Tasmota má modul Zigbee2Tasmota (= alternativa k Zigbee2MQTT), který bohatě stačí. Párování u mě bez problémů, vyčítání hodnot ze senzoru (včetně stavu baterky) taktéž.
3) Propojte s Loxone přes UDP vstupy
Na Tasmotě si nastavte logování do syslog, úroveň 2-info, nasměrujte na IP Loxonu. Tasmota bude posílat změny stavů senzoru (a výsledky vašich HTTP requestů) jako UDP zprávy, parsujete normálně v Loxonu (můžete si parsovat hodnoty senzorů, ale klidně i stav baterie, kvalitu ZigBee signálu...). Viz
https://tasmota.github.io/docs/Zigbee/#reading-sensors
Tasmota samozřejmě umí posílat stavy ZigBee senzorů i přes MQTT, ale je to úplně zbytečné zapínat.
4) Propojte s Loxone přes HTTP výstupy
Na ovládání Tasmoty (a tudíž i připojených ZigBee zařízení) použijte HTTP get requesty. Zatím nemám moc možností to vyzkoušet, zkoušel jsem zatím jenom toto na aktualizaci stavu senzoru:
http://<ip_adresa>/cm?cmnd=ZbStatus3 0x6E28
kde 0x6E28 je ID mého ZigBee senzoru. Další příkazy ke shlédnutí zde:
https://tasmota.github.io/docs/Zigbee/#sending-device-commands
https://tasmota.github.io/docs/Commands/#zigbee
Vlastně, čtení a ovládání ZigBee věcí funguje podobně jako u normální Tasmoty, řešilo se to například už tady:
https://www.vodnici.net/community/loxone-a-arduino/loxone-sonoff-tasmota/
Čus bus
Jaky dosah ma ta brana? Popr jde do ni narvat antena?
Mne osobne u tychto rieseni vadi, ze do loxone to ide vsetko strasne 'raw'. Vid. hexa id-cka, parsovanie z velkych jsonov atd.... Preto som si napisal vlastnu mini vrstvu, ktora to trochu normalizuje.
Co se týče dosahu, je to moje první ZB brána, takže nemám s čím porovnávat. Testovací čidlo mám šikmo přes strop a několik stěn, cca 10 metrů a docela v pohodě (= teď funguje OK, ale když jsem čidlo zkoušel v ruce, tak párkrát vynechalo). Taky jsem přemýšlel, jestli by tam nešla narvat silnější anténa, ale nevím. V tomhle se nevyznám.
Zařízení si samozřejmě můžeš v Tasmotě přejmenovat. Stačí v Tasmotě zadat do konzole příkaz
ZbName 0x6E28 senzor_loznice
Nebo to samé přes HTTP:
http://<ip_adresa>/cm?cmnd=ZbName 0x6E28 senzor_loznice
No, trochu si protiřečíš. Dlouhé JSONy máme právě proto, abychom nemuseli zápasit se surovými HEX daty (viz Modbus). A abychom mohli intuitivně parsovat. To, co z Tasmoty leze je human-readable. Je to intuitivní a pokud by přece jenom člověk tápal, mají to docela dobře zdokumentované. Žádná minivrstva na filtrování nebo překlad dat není potřeba. Konkrétně dostávám:
{"ZbReceived":{"0x6E28":{"Device":"0x6E28","0500<00":"010000010000","ZoneStatusChange":1,"ZoneStatusChangeZone":1,"Contact":1,"Endpoint":1,"LinkQuality":47}}}
Je to čidlo okna, zajímá me Contact, parsuju v Loxu:
"Device":"0x6E28"\i"Contact":\i\v