Czujnik otwarcia - Develco WISZB-120 - dramatyczne opóźnienia w sieci zigbee

Nabieram coraz większego przekonania, że Twoje podejrzenie jest najbardziej prawdopodobne. Czekam na upragniony SkyConnect, żeby ostatecznie potwierdzić przyczynę makabrycznie narastających lagów w sieci zigbee… (w tej chwili kilka urządzeń już samodzielnie wypadło z sieci, re-pairing pomaga tylko na chwilę…)

Biorę sobie także do serca Twoje uwagi dot. ustawień parametrów monitorowania. Zaraz zrobię z tym porządek i pewnie odezwę się jak tylko uzbieram wystarczająco dużo wiarygodnych danych.
Tymczasem gorące dzięki dla Was obu @artpc @szopen za wszelką Waszą pomoc i czas, który na nią poświęcacie! :coffee:

To jest moje a mam sporo przepływów

RSS: "514.61"              -> twoje 1193.36         ``` uzywane przez NR```
HeapUsed: "357.81"
HeapTotal: "443.01"      ->   twoje "1235.18"   ```obiekty, ciągi znaków``` 
External C++: "37.84"

Masz sporo więcej

2 posty zostały podzielonye na nowy temat: Node Red brak możliwości konfiguracji po reinstalacji Dodatku

Witaj @szopen
Coś mnie tknęło z tą konfiguracją sieci zigbee i zajrzałem do konfiguracji dodatku Z2M. Przeżyłem dwa szoki… :wink:
Szok 1: konfiguracja wyciągnięta z dodatku (ekran poniżej)

wygląda w całości tak (nazwijmy ją C1):

data_path: /config/zigbee2mqtt
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: "-d -d"
  log: false
mqtt:
  base_topic: zigbee2mqtt
serial:
  port: /dev/ttyACM0
  adapter: deconz
external_converters:
  - tv01-tuya1e.js
devices: devices.yaml
groups: groups.yaml
homeassistant: true
permit_join: false
advanced:
  log_level: debug
  pan_id: 6754
  channel: 11
  network_key:
    - 7
    - 12
    - 13
    - 8
    - 3
    - 10
    - 2
    - 11
    - 5
    - 14
    - 9
    - 4
    - 1
    - 6
    - 15
    - 0
  availability_blocklist: []
  availability_passlist: []
device_options: {}
blocklist: []
passlist: []
queue: {}
frontend:
  port: 8099
experimental: {}

Tymczasem plik /config/zigbee2mqtt/configuration.yaml (nazwijmy go C2) wygląda tak:

external_converters: []
devices:
  - devices.yaml
groups:
  - groups.yaml
homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  user: addons
  password: Cae9Shahy8phaenaesh8aimeriuche9ahj9quoi7pheol0peil4moh5SieghuaQu
  server: mqtt://core-mosquitto:1883
serial:
  port: /dev/ttyACM0
  adapter: deconz
advanced:
  log_level: debug
  pan_id: 6754
  channel: 11
  network_key:
    - 7
    - 12
    - 13
    - 8
    - 3
    - 10
    - 2
    - 11
    - 5
    - 14
    - 9
    - 4
    - 1
    - 6
    - 15
    - 0
  availability_blocklist: []
  availability_passlist: []
device_options: {}
blocklist: []
passlist: []
queue: {}
frontend:
  port: 8099
experimental: {}
availability:
  active:
    timeout: 10
  passive:
    timeout: 1500

Nawet ślepy dostrzeże, że C1 jest różne od C2.

Konsekwencją jest:

Szok 2: po co DWIE różne konfiguracje dla jednego i tego samego dodatku? Z którego z nich korzysta dodatek Z2M?

Może moje problemy z lagami w sieci zigbee właśnie stąd się biorą?? Chyba mam tu niezły bajzel… Konfiguracja C1 to jakaś stara wersja, bo np. kiedyś używałem w niej zewnętrznego konwertera (do obsługi kilku urządzeń Tuya), który obecnie jest już zbędny (nie ma go w C2). No ale ekran powyżej pokazuje chyba, że dodatek Z2M korzysta z konfiguracji C1, zamiast z C2.
Czy mogę (czy powinienem) bezkarnie skopiować C2 do C1 i zrestartować dodatek Z2M? O co tu chodzi? Po co DWA configi?

data_path: /config/zigbee2mqtt według mnie reszta w C1 jest ignorowana.
Jeżeli zajrzysz do /config/zigbee2mqtt i masz katalog data to tam też jest config. Nie wiem czy resztki po starym.
Na pewno tu jest oryginalny plik config i reszta zawartości Z2M

Nie mam tu katalogu data. Powinienem mieć?
obraz

Konfigurację C2 odnajduję jedynie w folderze /config/zigbee2mqtt/configuration.yaml
Ciekawe, gdzie zapisuje się C1… wyszukiwarka znalazła tylko to:
obraz
Wskazany przycisk Request z2m backup tworzy archiwum zawierające C2 (sprawdziłem).
Nadal więc pytanie otwarte: czy mogę/powinienem bezczelnie i bezkarnie skopiować zawartość C2 do ekranu konfiguracyjnego dodatku Z2M?

Mój ekranu konfiguracyjny dodatku Z2M YAML

data_path: /config/zigbee2mqtt
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: "-d -d"
  log: false
mqtt: {}
serial:
  port: /dev/ttyACM0
  adapter: deconz


Jeżeli o tym samym mówimy

A to configuration.yaml

homeassistant: true
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: 
serial:
  port: /dev/ttyACM0
  adapter: deconz
frontend:
  port: 8099
devices:
  '0x842e14fffe15e11a':
    friendly_name: Drukarka
    description: Switch Drukarka
  '':
    friendly_name: Pokoj_tw
    description: Czujnik wilgotności/temperatury pokój
  '':
    friendly_name: Smart knob
    description: Pokrętło rozjaśniania smart knob
  '':
    friendly_name: Kuchnia_rgbw
    description: Kuchnia podświetlenie dół RGB+CCT (pro)
  '':
    friendly_name: gniazdko_z_korytarz
    description: Gniazdko (3 klawisze) KORYTARZ
  '':
    friendly_name: ''
  '':
    friendly_name: downlight_z_komputer
    description: Oświetlenie komputer RGBW+CCT
  '':
    friendly_name: Termostat_P
    description: Termostat Pokój
  '':
    friendly_name: kuchnia_tw
    description: Temperatura/Wilgotność  Kuchnia
  '':
    friendly_name: CR_kuchnia
    description: Czujnik ruchu kuchnia
  '':
    friendly_name: anita_tw
    description: Temperatura/Wilgotność  Anita
  '':
    friendly_name: Czujnik_swiatla_anita
    description: Czujnik swiatla anita LUX
  '':
    friendly_name: czujnik_z_swiatla_pokoj
    description: czujnik swiatla pokoj LUX
  '':
    friendly_name: pogoda_balkon
    description: Czujnik pogody balkon
  '':
    friendly_name: drzwi_balkon
    description: Sensor drzwi balkon
  '':
    friendly_name: ''
  '':
    friendly_name: czujnik_swiatla_kuchnia
    description: Czujnik światła kuchnia
  '':
    friendly_name: Czujnik_z_zalania_kuchnia
    description: Czujnik zalania KUCHNIA
  '':
    friendly_name: CR_z_lazienka
    description: Czujnik ruchu łazienka
    occupancy_timeout: 20
  '':
    friendly_name: drzwi_korytarz
    description: Czujnik Drzwi Korytarz
  '':
    friendly_name: Czujnik_z_zalania_lazienka
  '0x60a423fffee65879':
    friendly_name: WallS3
    description: Przełącznik x 3
  '':
    friendly_name: P_Komputer_light
  '':
    friendly_name: drzwi_z_lazienka
    description: Czujnik drzwi łazienka zapal światło góra
  '':
    friendly_name: Czujnik_z_Dymu_kuchnia
    description: Czujnik Dymu Kuchnia
  '':
    friendly_name: anita_2_switch
    description: ANITA PRZEŁACZNIK ŚWIATŁA
  '':
    friendly_name: CR_z_anita
    description: Czujnik ruchu anita
  '':
    friendly_name: Gniazdko_TV
    description: Gniazdko zigbee TV
  '':
    friendly_name: lazienka_z_tw
  '':
    friendly_name: oswietlenie_z_kuchnia
  '':
    friendly_name: NEO_CR_z_anita
    description: Czujnik ruchu NEO  zigbee Anita
  '':
    friendly_name: downlight_z_lazienka
  '':
    friendly_name: czujnik_zig_temp_light_hum
    description: czujnik światła,temp,wilgotność
  '':
    friendly_name: okno_z_anita
    description: czujnik ogna zigbee anita
  '':
    friendly_name: okno_z_kuchnia
    description: Okno kuchnia
  '':
    friendly_name: pokoj_z_naroznik
    color_sync: true
  '':
    friendly_name: SNZB-03
  '':
    friendly_name: kuchnia_z_aquara
  '':
    friendly_name: ''
  '':
    friendly_name: choinka_z_pokoj
    voltage_calibration: 4
  '':
    friendly_name: ''
  '0x00158d00058a40b3':
    friendly_name: ''
    device_temperature_calibration: ''
  '':
    friendly_name: ''
  '':
    friendly_name: cover_switch
  '':
    friendly_name: Syrena_zig
    description: Syrena zigbee
advanced:
  log_syslog:
    app_name: Zigbee2MQTT
    eol: /n
    host: localhost
    localhost: localhost
    path: /dev/log
    pid: process.pid
    port: 123
    protocol: tcp4
    type: '5424'
  last_seen: ISO_8601_local
  log_level: info
external_converters:
  - TYZB01_2b8f6cio.js
  - NAS-PD07_TZ3000.js
  - nowy.js

Tak, mówimy o tym samym. To, co widać na Twoim ekranie, u siebie nazywam konfiguracją C1. Jest ona dramatycznie odmienna od zawartości plku /config/zigbee2mqtt/configuration.yaml czyli od C2, choć niektóre sekcje powtarzają się w obu. W jakim celu? Zupełnie tego nie rozumiem… Jestem chyba przesadnie logiczny (dlatego czasem nie rozumiem także kobiet… co czasem przeszkadza w życiu… :wink: ) i właśnie to powoduje, że nie qumam sensu dwóch konfiguracji w jednym dodatku. Czy mógłbym Cię prosić o krótkie wyjaśnienie, po co dwie konfiguracje? Czy one powinny być rozłączne znaczeniowo (powinny obejmować rózne, niepokrywające się sekcje)? Dopytuję o to wszystko, żeby robiąc porządek w ustawieniach Z2M nie zrobić sobie większej krzywdy i bałaganu, niż mam teraz…

C1
U mnie już dalej nic nie ma jak widać, jest tylko do adapter: deconz

Może przeoczyłeś jedną z aktualizacji (było o niej dość głośno) - obecnie konfiguracja Dodatku zasadniczo odbywa się z GUI (częściowo z GUI HA jak widać w poście, ale głównie w GUI Z2M, oczywiście dodatkowe pliki wciąż mogą być załączane).

Podczas tej aktualizacji był importowany (wtedy bieżący) plik konfiguracyjny.
Niestety nie umiem “odkręcić” tego co masz u siebie, ale przypuszczalnie plik C2 jest zbędny (mając wiedzę o tym, że jego zawartość nie odpowiada faktycznej działającej konfiguracji wykonałbym backupy na wszelkie sposoby, a następnie… go usunął :stuck_out_tongue: i zrestartował całą maszynę)…

Konfiguracja zapisana jako C2 pochodzi właśnie z folderu /config/zigbee2mqtt i jest zawartością GUI w Z2M, C1 to zawartość GUI w HA. Czy na pewno mogę usunąć C2, skoro właśnie tam powinna się znajdować zasadnicza część konfiguracji całego Dodatku?:

Przepraszam, że tak natarczywie dopytuję, ale saper może pomylić się tylko raz…

I jeszcze pytanie: jak zaimportować zbackupowaną konfigurację z pliku do Z2M? Nie ma przycisku typu Upload config

Saper może się pomylić wiele razy, jeśli ma dodatkowe życia (backupy).

Możliwe, że nie wgryzłem się dostatecznie w to co już napisałeś - usuń ten plik, który nie zgadza się z działająca konfiguracją…
Zamiast usuwać możesz go przenieść (choćby na swój komputer albo w jakieś miejsce w jednym z udostępnionych udziałów)


Koenkk
on Oct 22, 2022

Maintainer

The backup is everything inside the data directory. So if you want to move to e.g. a different system simply move the data folder.

https://home-assistant-guide.com/changelog/zigbee2mqtt/zigbee2mqtt-1-26-0/you-can-now-back-up-your-complete-zigbee2mqtt-configuration/

Zrobiłem wszystkie backupy i … usunąłem C2 z folderu /config/zigbee2mqtt, nieświadomie otwierając chyba tym samym puszkę Pandory…
Nie dosyć, że Z2M utracił kontakt z rzeczywistością (nie rozpoznał ani jednego sparowanego wcześniej urządzenia), to jeszcze tym razem mój NR zalicza masakryczne lagi podczas przepychania flowu z noda do noda (wcale niekoniecznie obsługującego urządzenia zigbee).
Ale, jak @szopen słusznie zauważył, saper jest nieśmiertelny :wink: … bo wie, co to jest restore. Odzyskałem więc wszystko z zachowanych kopii i jestem znów w tym samym punkcie. Z małym wyjątkiem: lagi w NR, których dotychczas prawie nie obserwowałem, oraz szaleństwa pamięci NR.
Zasiałem więc temat na github… Zobaczymy, może ktoś się ulituje i pochyli nad problemem, udzielając jakiejś światłej wskazówki :bulb:
W miedzyczasie czekam niecierpliwie na przesyłkę z nowym donglem SkyConnect…

Zrobiłem triple check - absolutnie nigdzie nie mam folderu data w zasobach HA. Chyba, że jest on gdzieś ukryty i potrzebna jest jakaś specjalna dyrektywa, która pozwoli go odnaleźć…

Proszę później o opinię na jego temat, wątek już jest, czeka na recenzję pierwszego użytkownika :slightly_smiling_face:.

Zła interpretacja, backup Z2M polega na backupie wszystkiego co jest w zmiennej data w pliku konfiguracyjnym Z2M czyli w przypadku addona w HA:
data_path: /config/zigbee2mqtt

Wczoraj wyruszył w drogę… Oczywiście podzielę się recenzją, niech tylko dostanę go w swoje ręcę…
Jednak już dziś wiem, że nie da się zarejestrować i uruchomić równocześnie dwóch (lub więcej) kooordynatorów Zigbee w jednej instancji HA. Są sposoby aby to obejść (osobne sieci zigbee dla każdego koordynatora), jednak wówczas mesh zigbee nie będzie tworzyć środowiska homogenicznego, tzn., że urządzenia z jednej sieci nie będą widziane w drugiej sieci. Czyli payload z urządzenia w sieci A nigdy nie trafi do urządzenia w sieci B.

Przy okazji: dziękuję za wyprowadzenie mnie z błędu myślowego… byłem przekonany, że @artpc mówił o fizycznym folderze data a nie o zmiennej zdefiniowanej w data_path.

Taki folder istnieje w moim Z2M
Screenshot - 30.01.2023 , 02_32_23

Screenshot - 30.01.2023 , 02_34_21

Widząc zawartośc Twojego katalogu data domniemywam, że robiąc jego backup backupujesz tylko jeden plik: configuration.yaml. Domyślam się też, że plik ten jest tożsamy z plikiem configuration.yaml umieszczonym w folderze /config/zigbee2mqtt. Jeśli tak jest, to jako stary PM powiem, że ryzykowne jest utrzymywanie tej samej informacji w dwóch (lub wiecej) różnych miejscach. Nigdy nie wiadomo bowiem, które z tych miejsc zawiera informację najbardziej aktualną.

W data config…yaml jest:

 homeassistant: true
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: 
serial:
  port: /dev/ttyACM0
  adapter: deconz
frontend:
  port: 8099
devices:
urządzenia

Szukałem trochę o strukturze plików/katalogów Z2M ale nic niestety ciekawego nie znalazłem.

To dotyczy tylko integracji ZHA, w przypadku Z2M możesz uruchomić ile chcesz instancji Z2M, opisywał to @rafkan ale nie potrafię znaleźć tego wątku.