1

Temat: zigbee-lua

Chciałbym Wam polecić projekt Zigbee-lua (https://github.com/hwhw/zigbee-lua). Jest to 'koordynator' Zigbee (dla urządzeń Xiaomi Aqara/Mijia, sprzęt smart od Ikei, Philipsa, OSRAM itp). Chyba jedyny serwer, który ma tak małe wymagania, że działa na ruterach z openwrt.
Osobiście używam go na Xiaomi Router 3G (snapshot), ale na tyle na ile potrafię ocenić powinno dać się uruchomić także na sprzęcie z mniejszą ilością RAMu.
Dzięki właśnie doddanemu mostkowi MQTT można w zasadzie używać go jako zamiennik zigbee2mqtt (który wymaga node.js).
Projekt jest młody, ale autor dostarcza dobrą dokumentację i przykłady. Dzięki nim nawet bez znajomości Lua (jak w moim przypadku) można łatwo dodać własne rozwiązania.

2 (edytowany przez pawol 2019-11-24 19:33:34)

Odp: zigbee-lua

Uprzejmie proszę o przyblizenie tematu.
Z opisu autora nie za bardzo można się rozeznać.
Brakuje plików .lua na jego gicie.

Możesz załączyć wszystkie wymagane .lua?

Brakuje mi przede wszystkim ffi.lua


root@OpenWrt:/overlay/zigbee-lua# lua test-environment.lua
lua: ./lib/srv-epoll.lua:4: module 'ffi' not found:
    no field package.preload['ffi']
    no file './ffi.lua'
    no file '/usr/share/lua/ffi.lua'
    no file '/usr/share/lua/ffi/init.lua'
    no file '/usr/lib/lua/ffi.lua'
    no file '/usr/lib/lua/ffi/init.lua'
    no file './ffi.so'
    no file '/usr/lib/lua/ffi.so'
    no file '/usr/lib/lua/loadall.so'
stack traceback:
    [C]: in function 'require'
    ./lib/srv-epoll.lua:4: in main chunk
    [C]: in function 'require'
    ./lib/ctx.lua:10: in function 'init'
    ./lib/ctx.lua:316: in function <./lib/ctx.lua:313>
    test-environment.lua:2: in main chunk
    [C]: ?
root@OpenWrt:/overlay/zigbee-lua#

3

Odp: zigbee-lua

To repo zawiera git 'submodules'. Upewnij się, że je wszystkie zebrałeś (jest o tym w README).

Ja miałem problem z modułem ljsyscall. Musiałem jedną łatkę nałożyć:

diff --git a/syscall/linux/fcntl.lua b/syscall/linux/fcntl.lua
index 67567c25..3fab4930 100644
--- a/syscall/linux/fcntl.lua
+++ b/syscall/linux/fcntl.lua
@@ -22,7 +22,7 @@ local fcntl = {
     [c.F.GETLK] = t.flock,
     [c.F.SETLK] = t.flock,
     [c.F.SETLKW] = t.flock,
-    [c.F.ADD_SEALS] = function(arg) return c.F_SEAL[arg] end,
+--    [c.F.ADD_SEALS] = function(arg) return c.F_SEAL[arg] end,
   },
   ret = {
     [c.F.DUPFD] = function(ret) return t.fd(ret) end,
@@ -34,7 +34,7 @@ local fcntl = {
     [c.F.GETSIG] = function(ret) return tonumber(ret) end,
     [c.F.GETPIPE_SZ] = function(ret) return tonumber(ret) end,
     [c.F.GETLK] = function(ret, arg) return arg end,

4 (edytowany przez pawol 2019-11-25 14:53:54)

Odp: zigbee-lua

tam brakuje wiecej obecnie. spakuj jak możesz skrypty i podeslij.

ffi.lua uzyskane z sub gitow mosquitto cos tam wali errory.

Chyba juz nikt nie utrzymuje tego gita

5

Odp: zigbee-lua

A robisz to jak autor przykazał?

$ git submodule init
Submodule 'lib/ffi_libmicrohttpd' (https://github.com/hwhw/ffi_libmicrohttpd.git) registered for path 'lib/ffi_libmicrohttpd'
Submodule 'lib/ffi_libmosquitto' (https://github.com/hwhw/ffi_libmosquitto.git) registered for path 'lib/ffi_libmosquitto'
Submodule 'inspect.lua' (https://github.com/kikito/inspect.lua.git) registered for path 'lib/inspect-lua'
Submodule 'json.lua' (https://github.com/rxi/json.lua) registered for path 'lib/json-lua'
Submodule 'ljsyscall' (https://github.com/justincormack/ljsyscall) registered for path 'lib/ljsyscall'
$ git submodule update
Cloning into '/mnt/src/src/zig2/zigbee-lua/lib/ffi_libmicrohttpd'...
Cloning into '/mnt/src/src/zig2/zigbee-lua/lib/ffi_libmosquitto'...
Cloning into '/mnt/src/src/zig2/zigbee-lua/lib/inspect-lua'...
Cloning into '/mnt/src/src/zig2/zigbee-lua/lib/json-lua'...
Cloning into '/mnt/src/src/zig2/zigbee-lua/lib/ljsyscall'...
Submodule path 'lib/ffi_libmicrohttpd': checked out '3bbf1c96dc99eab21cc70bae2a8b474a3ec1082c'
Submodule path 'lib/ffi_libmosquitto': checked out 'da2d707f29e8e1e6c108e4797385d3f823286a2f'
Submodule path 'lib/inspect-lua': checked out 'b611db6bfa9c12ce35dd4972032fbbd2ad5ba965'
Submodule path 'lib/json-lua': checked out 'bee7ee3431133009a97257bde73da8a34e53c15c'
Submodule path 'lib/ljsyscall': checked out 'e587f8c55aad3955dddab3a4fa6c1968037b5c6e'

6 (edytowany przez pawol 2019-11-25 15:14:27)

Odp: zigbee-lua

tak nie robiłem. po prostu recznie pobralem sub moduly i uzupelnialem braki. strasznie zamotane jest to.

Skopiuj jak możesz swoje bedzie prosciej

7 (edytowany przez pawol 2019-11-25 20:25:51)

Odp: zigbee-lua

Zrobiłem jak napisałeś
Nadal miałem brak ffi.lua

Przenazwałem ffi_libmosquitto.lua na ffi.lua

i mam tak:

root@OpenWrt:/overlay/zigbee-lua# lua test-environment.lua
lua: ./ffi.lua:21: loop or previous error loading module 'ffi'
stack traceback:
    [C]: in function 'require'
    ./ffi.lua:21: in main chunk
    [C]: in function 'require'
    ./lib/srv-epoll.lua:4: in main chunk
    [C]: in function 'require'
    ./lib/ctx.lua:10: in function 'init'
    ./lib/ctx.lua:316: in function <./lib/ctx.lua:313>
    test-environment.lua:2: in main chunk
    [C]: ?
root@OpenWrt:/overlay/zigbee-lua#


JAkiś pomysł?

8

Odp: zigbee-lua

Zdecydowanie, nie trzeba zmieniać nazw plików...
Sorry, nie wszystko pamiętam jak to ustawiałem, ale jedną różnicę widzę - ja używam luajit nie lua.
Zobacz tu - będzie potrzebna kompilacja luajit: https://github.com/hwhw/zigbee-lua/issu … -459982167

Może sprawdź też czy masz zainstalowane:
libiwinfo-lua - 2019-08-28-a9f95570-1
liblua5.1.5 - 5.1.5-3
liblucihttp-lua - 2019-07-05-a34a17d5-1
libubus-lua - 2018-10-06-221ce7e7-1
libuci-lua - 2019-05-17-f199b961-3
lua - 5.1.5-3
luabitop - 1.0.2-1
luajit - 2.1.0-beta3-1
libffi - 3.2.1-3
(trochę starsze wersje powinny być też OK)


Przesłałem Ci też źródła jakich używam na priv. Mogę przesłać luajit jeśli też używasz xiaomi 3G.

9

Odp: zigbee-lua

mam wlasnue xiaomi 3G

10

Odp: zigbee-lua

podeslij to lua. nie mam maili od ciebie. pisalem przez forum juz raz do ciebie 3 dni temu

11

Odp: zigbee-lua

używasz tego jeszcze ? chciałbym się pobawić zigbee i sprawdzam czy da się zrobić zigbee to mqtt  na openwrt

12 (edytowany przez pawol 2022-04-03 22:50:10)

Odp: zigbee-lua

szkoda czasu na jakakolwiek automatyzacje na openwrt. postaw system na terminalu np. wyse 0x0d i bedzie spokoj po wsze czasy

13

Odp: zigbee-lua

Używam cały czas, działa całkiem stabilnie (4 termometry, 2 przyciski). Jedynym problemem jest zasięg sieci zigbee. Na openwrt mam zigbee-lua i mosquitto, a reszta w chmurze. Po co marnować 10W na terminal...

14

Odp: zigbee-lua

kupiłem sobie CC2652 widzę ze nie wspiera go zigbee-lua ;(

15 (edytowany przez marek 2022-04-11 18:35:06)

Odp: zigbee-lua

Jeśli to CC2652 jest na USB, to chyba pozostaje Ci kompilacja nodejs i zigbee2mqtt (jeśli masz openwrt na sprzęcie z FPU):
https://forum.openwrt.org/t/howto-setup … nwrt/31856
lub USBIP czy coś w tym stylu...
A jeśli masz płytkę bez USB, to powinna działać tasmota:
https://github.com/arendst/Tasmota/discussions/12457

16

Odp: zigbee-lua

Witam czy ktoś komplikował openwrt z zigbee2mqtt próbowałem ale coś mi to nie idzie czy ktoś był by wstanie zrobić dla mnie kompilacje na wdr4300 np.Gargoyle .

17

Odp: zigbee-lua

lua to skrypty, tego nie musisz kompilować? O jakiem kompilacji więc piszesz?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18 (edytowany przez jonedi 2022-05-22 10:49:50)

Odp: zigbee-lua

Ten skrypt nie obsługuje mojego sonoff single plus więc skazany jestem na własną kompilacje obrazu według tego poradnika ale to mi nie wychodzi https://forum.openwrt.org/t/howto-setup … nwrt/31856

19 (edytowany przez Cezary 2022-05-22 11:35:01)

Odp: zigbee-lua

W sumie nic dziwnego że ci nie wychodzi, jak używasz mipsa, a na niego nie ma wymaganego nodejs. Użyj innego routera, czegoś z arm.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20

Odp: zigbee-lua

Dzięki Cezary za uświadomienie mi mojego błędu będę szukał innego rozwiązania .Pozdrawiam

21

Odp: zigbee-lua

Zaopatrzyłem się w "SONOFF Zigbee 3.0 USB Dongle Plus", czyli CC2652. Istotnie lepszy zasięg od CC2531. W nowym openwrt jest ser2net w wersji 4.3.5, który naprawia problemy z DTR/RTS. Dzięki temu można połączyć z zigbee2mqtt pracującym zdalnie.
U mnie działa to bardzo sprawnie z zigbee2mqtt w chmurze i wireguard. Nawet przy częstym rozłączaniu internetu zigbee2mqtt zawsze grzecznie przywraca połączenie.

22 (edytowany przez Burag 2022-10-12 10:11:09)

Odp: zigbee-lua

marek napisał/a:

Zaopatrzyłem się w "SONOFF Zigbee 3.0 USB Dongle Plus", czyli CC2652. Istotnie lepszy zasięg od CC2531. W nowym openwrt jest ser2net w wersji 4.3.5, który naprawia problemy z DTR/RTS. Dzięki temu można połączyć z zigbee2mqtt pracującym zdalnie.
U mnie działa to bardzo sprawnie z zigbee2mqtt w chmurze i wireguard. Nawet przy częstym rozłączaniu internetu zigbee2mqtt zawsze grzecznie przywraca połączenie.

Marku, opowiesz coś więcej o tym rozwiązaniu? Też myślałem nad tym aby w cloudzie trzymać zigbee2mqtt, mosquito i HA, a do MIR3G mieć podłączony tylko "gateway" na USB. Jak to skomunikowałeś ze sobą? smile

EDIT: Czy w tym stylu? https://www.zigbee2mqtt.io/advanced/rem … apter.html

23

Odp: zigbee-lua

MIR3G pociągnie HA czy jest za mało RAM?

Modem: Huawei HG8245Q2  (Servire.net)
Router: Xiaomi AX3000T,          Soft: OpenWrt 24.10-SNAPSHOT r29077-f415748

24

Odp: zigbee-lua

Tak średnio. Zadziała, ale jak zwykle nic zaawansowanego nie zrobisz bo zaraz sie okaże że faktycznie jest za mało.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25

Odp: zigbee-lua

Burag napisał/a:

EDIT: Czy w tym stylu? https://www.zigbee2mqtt.io/advanced/rem … apter.html

Tak, dokładnie. Trzeba tylko ręcznie skompilować ser2net w wersji 4 (albo spróbować ze snapshota).