Friendly name get

Cześć,
czy wiecie jak w NR z takiego noda:
image

pozyskać nazwę urządzenia?

Debug pokazuje coś takiego:

chdzi mi dokładnie o ten element:
image

[{"id":"d370c0b7f77bcb69","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"01564ac5a2c92d5b","type":"zigbee2mqtt-in","z":"d370c0b7f77bcb69","name":"Z Salon drzwi","server":"264e6b06d3c56e54","friendly_name":"Z Salon drzwi (MCCGQ11LM)","device_id":"0x00158d00091c481f","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":350,"y":120,"wires":[["fbf4badc46dba9b7"]]},{"id":"fbf4badc46dba9b7","type":"debug","z":"d370c0b7f77bcb69","name":"debug 8","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":580,"y":120,"wires":[]},{"id":"264e6b06d3c56e54","type":"zigbee2mqtt-server","name":"zigbee2mqtt","host":"192.168.50.201","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","mqtt_qos":"0","tls":"","usetls":false,"base_topic":"zigbee2mqtt"}]

W dalszej części chciałem zrobić powiadomienie o spadku baterii tj. żeby NR wysłał email że poziom batrii dla urządzenia XYZ wynosi tyle…

Trochę off topic, ale jak dla mnie gra nie warta świeczki.
W Z2M jest kompletnie skopana kontrola stanu baterii urządzeń w sieci.
Dla tego samego czujnika:
tak wygląda odczyt z integracji z2m


a tak z integracji ZHA

Od kiedy używam dwóch integracji jednocześnie, kontrola baterii zaczęła wreszcie mieć jakikolwiek sens dzięki ZHA

2 polubienia

tak czy inaczej dobrze by było wiedzieć jak to przypisać

Nie ma sensu co chwilę dostawać powiadomień o stanie baterii, zamiast tego ustal sobie jakiś próg po przekroczeniu którego będziesz otrzymywał powiadomienie o niskim stanie baterii. Utwórz sobie sensor binarny w HA i potem go wykorzystaj w NR.

https://community.home-assistant.io/t/binary-sensor-that-triggers-if-any-battery-level-goes-beyond-a-threshold-broken-in-2022-09/458841

1 polubienie

próg już mam ustawiony, faktycznie było by to bez sensu.
Ale chciałem ominąć HA bo w moim ostatnim wątku zasugerowano że lepiej pominąć pośrednika HA i można ciągnąć dane od razu z Z2M

Pomijając wcześniej poruszaną kwestię braku dokładności kontroli baterii przez integrację Z2M, to i tak nie rozumiem po co chcesz pozyskać nazwę urządzenia, skoro nod który przedstawiłeś odpytuje konkretne urządzenie, gdzie dane pozyskane po odpytaniu dotyczą tego konkretnego urządzenia, którego de facto nazwę znasz od początku. Czyli w ewentualnej wiadomości będącej kontynuacją zapytania nazwę można zadeklarować przecież na sztywno.
Niemniej takie podejście do tematu kontroli stanu baterii jest raczej mało racjonalne. Można proces zautomatyzować, kontrolując jednocześnie wszystkie urządzenia za pomocą prostego flow, nawet bez konieczności tworzenia dodatkowych sensorów.
Ja mam to rozwiązne np. tak:


Pierwszy nod inicjuje flow w okreslonych odstępach czasu, u mnie akurat każdej doby o 2:10 w nocy. Nod drugi odpytuje wszystkie urządzenia w których klasa encji to “battery” i jeśli któregoś stan jest równy lub poniżej 40, to generowana jest odpowiednia wiadomość za pomocą noda trzeciego. na jego wyjściu pojawia się komunikat z nazwą urządzenia i poziomem baterii. Ważne jest tylko aby encjom, które zwracają poziom baterii nadać odpowiednie nazwy, współgrające z nazwą samego urządzenia.
W drugim nodzie dodatkowo wykluczam encje kontrolujące stan baterii telefonów.
Dalej jest to wysyłane do odrębnego subflow, które obsługuje u mnie cały system powiadomień, czy to głosowych czy tekstowych. W tym przypadku akurat mam generowane komunikaty wystawiane bezpośrednio na dashboard w odpowiednim oknie.
Co Ty z tym zrobisz dalej to tylko kwestia Twojej inwencji twórczej.
flows.json (2,2 KB)

2 polubienia

Dzięki
chyba to będzie lepsze od mojego. Powiedz mi jak/skąd znalazłeś to: attributes.device_class gdzie tego szukać w HA? Widze że jest coś podobnego attributes.battery_level - to jest gorsze?

W narzędziach developerskich, we właściwościach encji które chcesz odpytywać. Czyli w tym konkretnym przypadku encji, które pokazują procentowy stan poziomu baterii.

1 polubienie

Hej, powiedz mi jeszcze to co napisałeś w NOD wiadomość to jest JSON? Jak się tego nauczyć? Jest tu na forum jakiś poradnik taki od podstaw?