X
Forum

Forum

Notifications
Clear all

Zigbee nad RPi4

184 Posts
15 Users
14 Likes
19.4 K Views
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@smotek7 

Fajn, aspoň s tím tlačítkem jsme se posunuli. Žárovku nemám a nemůžu testovat, ale zkus ji odpárovat (pokud to nejde, zkus "forced" remove). Potřebuju vidět log.


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
Topic starter  

Tak zigbee suita upgradnuta. Len 5 hodin prace a stacilo len:

  • preflashovat antenu
  • zmenit pan_id (cize komplet rozpad siete a nove parovanie)
  • upgradovat raspbian (toto mi zabralo 4 hodiny. Teda nie samotny upgrade, ale po upgradnuti zigbee2mqtt docker image v nom kompletne nefungovala siet. Googlil som a pokus-omyloval som okolo toho hodiny, problem je v nekompatibilite posledneho alpinelinuxu a 32bit dockeru (resp. jeho security). Navody ma smerovali do slepych, alebo hrozne zlozitych uliciek, nakoniec pomohlo aktualizovat hosta, kde uz asi bol patricne upraveny defaultny security profil dockeru.

Vzhladom na to, ze som zigbee vlastne nikdy nepouzival, to nie je az taky pruser, proste zacnem znovu. Vo vysledku som prisiel na to, ze sa mi vybili aj tak vsetky teplomery a jediny usecase co momentalne na zigbee mam je spinana zasuvka za telkou na zapnutie reprakov.

Ma niekto tip na nieco ako "zigbee dialkove ovladanie", nech to ma viac (aspon 10) tlacitok, a zigbee nastenne tlacitko s aspon 4 segmentami?


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
Topic starter  

Mam prekopnuty proof of concept noveho bridge medzi zigbee a loxone, postavenom stale na zigbee2mqtt a node-lox-mqtt-gateway. Zatial je to fakt len kus neucesaneho kodu natvrdo medzi jednym vypinacom v loxplane a jednou lidl zasuvkou, kazdopadne je to bez akehokolvek vytvarania nejakych udp vstupov a podobne. Proste vlozim do loxplanu tlacitko, sparujem zasuvku, v mapperi co programujem (upravujem povodny) spojim, hotovo. Funguje obojsmerne, tzn. kliknem v loxone, zasuvka sa zapne. Tuknem na tlacitko na zasuvke, v loxone sa supatko prepne do off.

Nechapem preco som na to neprisiel uz davno (resp. chapem, z predbeznej opatrnosti som pouzival mqtt bridge v readonly mode), je to super elegantne a jednoduche. Este tomu spravit nejaky pouzitelny web xicht a mozno ma to motivuje zigbee zacat doma pouzivat nejak viac (vyvstali poziadavky na umiestnenie nejakych multitlacitok a dratovat to uz fakt nemienim).

Budem priebezne informovat.


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

Shodou okolností jsem před 2 týdny taky programoval Lidl zásuvku....

Posted by: @dusanmsk

Funguje obojsmerne, tzn. kliknem v loxone, zasuvka sa zapne. Tuknem na tlacitko na zasuvke, v loxone sa supatko prepne do off.

Myslíš třeba takto?

Tasmota --> Loxone (UDP vstup)

Loxone (HTTP výstup) --> Tasmota

zasuvka

Já nevím, ale přijde mi, že je jednodušší udělat UDP vstup + HTTP výstup než programovat nějaký vlastní mapper.

EDIT: Doporučuju ještě vložit blok "Zpoždění zapnutí a vypnutí" kvůli debouncingu.

zasuvka 2

   
ReplyQuote
 L
(@l)
Famed Member Admin
Joined: 9 years ago
Posts: 3067
 

@dusanmsk a v cem se to pak lisi od toho, kdyz mas mapper v NodeRED ;-). Tam ho navic muzes napsat polo-univerzalne, takze uz jen pridavas IDcka a mapujes je na virtualni vstupy/vystupy v Loxone.

To prime napojeni na tlacitko osobne nemam rad, protoze po case nevis kdo/co ti to spina. Lepsi tam dat mezivrstvu formou toho virtualniho IO


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
Topic starter  

No pokial to myslis takto tak tomu sa presne chcem vyhnut, to je zlozite (resp. pracne) jak prasa. Cielom je nasledovne flow:

  • v loxone vytvorim tlacitko (kategoria zigbee)
  • v zigbee2mqtt naparujem zasuvku
  • v mapperi vyberiem nazov zigbee zariadenia, nazov loxone tlacitka, zvolim mapovaciu sablonu (budu nejake preddefinovane + moznost vytvarat vlastne)
  • hotovo

Obdobne s teplomerom

  • v loxone vytvorim virtualny analogovy vstup (ziadne udp, http, proste len slider)
  • v zigbee2mqtt naparujem teplomer
  • v mapperi vyberiem nazov teplomeru, cestu k loxone virtualnemu vstupu, mapovaciu sablonu
  • hotovo

Ziadne udp/http virtualne vstupy/vystupy, ktore by bolo treba v loxone vytvarat a spajat s tym tlacitkom a podobne.

Uvidim, naprogramujem, poladim, ublognem. Kto bude chciet, pouzije, kto nie, nie.


   
ReplyQuote
 L
(@l)
Famed Member Admin
Joined: 9 years ago
Posts: 3067
 

@dusanmsk nn, to je stare parovani, ted to mam nove takto: https://www.vodnici.net/2022/09/zigbee-tasmota-a-nodered/

z toho jak to popisujes tak je to presne to co ted delam v tom nodeRedu


   
ReplyQuote
(@zelvan)
Eminent Member
Joined: 4 years ago
Posts: 21
 
Posted by: @budulinek

Vybila se mi baterie v ZigBee senzoru, takže ještě k monitorování baterie v ZB senzorech přes Tasmotu a Loxone.

Tasmota mi posílá UDP zprávy, kdykoliv se změní stav senzoru (kontakt u oken, teplota a vlhkost u jinýcg senzorů atd), ale občas se hodí, že můžu poslat z Lox na Tasmotu dotaz, jaký je aktuální stav senzoru. Dělám to přes HTTP virtuální výstup, instrukce při zapnutí:

/cm?cmnd=Backlog ZbStatus3 ZB1.01_Loznice; ZbStatus3 ZB1.02_Pracovna; ZbStatus3 ZB1.03_Koupelna_pat; ZbStatus3 ZB1.04_Deti_ulice; ZbStatus3 ZB1.05_Deti_stresni; ZbStatus3 ZB1.06_Deti_spodni; ZbStatus3 ZB2.02_Digestor

Backlog znamená, že je to série příkazů (oddělených středníkem) pro Tasmotu. Pro úplnost: tenhle příkaz neposílá dotaz přímo ke koncovému senzoru, je to vlastně dotaz na Tasmotu, jaké jsou její poslední informace o daném senzoru. Výstup vytáhněte do configu a znegujte (všimněte si toho prázdného kroužku) a dejte interval opakování dle libosti.

HTTP out

Zpátky mi Tasmota pošle ke každému příkazu samostatnou UDP zprávu. Ke každému senzoru mám vlastní UDP zprávu (JSON), takže se to dobře parsuje.  Co v těch JSONech dostanu:

"BatteryPercentage"

Úplně k hovnu. Baterie zdechne třeba i ve 40%....

"LastSeen"

To je mnohem lepší. Senzory, co mám (např. okenní kontakty Sonoff) komunikují s Tasmotou i když se nic neděje, podle mého odhadu každé 4 hodiny. To je super, takže vím, že když je "LastSeen" větší než 4 hodiny, tak buďto je senzor nedostupný (špatný signál)  nebo se vybila baterka.

Takže ke každému ZB senzoru samostatný UDP virt. vstup, rozeznání příkazu:

"Name":"ZB1.01_Loznice"\i"LastSeen":\i\v

a pak už jenom stačí nastavit ve validaci maximální hodnotu 86400 (= 24 hodin) a Loxone vám bude ve statusových zprávách hlásit, pokud bude senzor nedostupný (tj. senzor se Tasmotě neozve po dobu delší než 24 hod).

No a jak vypadá vybitý senzor v Tasmotě:

ZB1

 

ZB2

Senzor v ložnici se neozval už 6 dní. Tenhle senzor byl dlouho mimo signál, podle mě se vybil tím, kak se snažil navázat komunikaci s hubem. Poslední stav baterie je 42%...

Všechny ostatní senzory mají lastseen menší než 4 hodiny.

BTW koukám, že ZB1.03_Koupelna_pat se sám dokázal připojit přes repeater. Takže to co jsem psal minule (že je potřeba senzor ručně odebrat a znovu spárovat) není potřeba.

Čus bus

EDIT: koukám, že v mrazáku mi stoupla teplota

Prosím o pomoc. Je tady někdo, kdo mi poradí jak se dotazovat jednotlivých sensoru na stav přes MQTT? Jasné přes UDP to je jednoduché použiju:

/cm?cmnd=Backlog ZbStatus3 ZB1.01_Loznice; ZbStatus3 ZB1.02_Pracovna; ZbStatus3 ZB1.03_Koupelna_pat; ZbStatus3 ZB1.04_Deti_ulice; ZbStatus3 ZB1.05_Deti_stresni; ZbStatus3 ZB1.06_Deti_spodni; ZbStatus3 ZB2.02_Digestor

Dokážu se zeptat na stav tasmota_1EDE0C krabičky ale ne na jednotlivé sensory (třeba "Device": "0xFC37","Name": "ZB1.02_Water Sensor") . Nemůžu na to přijít. Postupuju takto:

 

1
2
3

 Pro někoho to je prkotina a jednoduché, ale já začínám a učím se. Předem děkuji za pomoc.


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
Topic starter  

V zigbee2mqtt zigbee2mqtt/FRIENDLY_NAME/get a pockat na state message (a bacha, moze prist nacacheovana hodnota). Hromada senzorov sa neda dotazat priamo, pretoze su v sleepe a cas odoslania stavu si riadia sami.


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

Přesně tak. Bateriových senzorů se na nic nezeptáš, protože chrápou.

Jenom bych doplnil, že jim můžeš říct, jak dlouho mají chrápat, tj. jak často a při jaké změně měřených proměnných se mají probouzet a posílat data. V Tasmotě se do dá udělat (viz https://www.vodnici.net/wiki/zigbee-pres-tasmotu-4-automaticke-posilani-dat-senzorem/ ) a to samé můžeš naklikat pokud používáš ZigBee2MQTT (hledej Configure Reporting)


   
ReplyQuote
(@zelvan)
Eminent Member
Joined: 4 years ago
Posts: 21
 

Chlapi dík za rady, už jsem na to přišel. Hlavně jsem si pořádně přečetl články 🙂


   
ReplyQuote
(@zelvan)
Eminent Member
Joined: 4 years ago
Posts: 21
 

 

Mám ještě jeden dotaz. Nainstaloval jsem Sonoff zigbee mini pod vypínač, spároval s Tasmotou. Při zapnutí nebo vypnutí mi přijdou po sobě klidně i tři stavové zprávy viz. obrázek.

4
5

Nastavil jsem minLimit a Maxlimit plus citlivost na jedna a pořád se to děje. Je možnost nastavit vypínač tak aby poslal zprávu jen při změně stavu? Jak na to? Děkuji

This post was modified 1 year ago 7 times by zelvan

   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
Topic starter  

To je otazka, ci chodia 3 spravy z toho tlacitka, alebo z tej gw. Je totiz dost pravdepodobne, ze chodia spravy

power:1

endpoint:1

linkquality:92

a gateway k tomu vzdy prida ostatne nacacheovane hodnoty. Minimalne zigbee2mqtt to (v defaultnom nastaveni) takto robi.


   
ReplyQuote
(@zelvan)
Eminent Member
Joined: 4 years ago
Posts: 21
 

@dusanmsk 

Mohl bys mě prosím nasměrovat jak to nastavit? Nepotřebuji správy s qw. Jak to vypnout?


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
Topic starter  

Neviem co mas za gw. V zigbee2mqtt je to nieco ako 'send cached state'.


   
ReplyQuote
Page 12 / 13
Share: