Pilot Tradfri - Pełne wykorzystanie funkcji

Witam Was serdecznie,

z góry przepraszam jak palne jakieś głupstwo jednak jestem bardzo, bardzo początkujący.

Do sedna!

Wziąłem się za node-red i pilota Tradfri ( tego starego ) by wykorzystać to co znalazłem w tym poradniku

https: //notenoughtech.com/home-automation/mapping-ikea-tradfri-remote-in-nodered/

Mam nadzieję że mogę wkleić tutaj tego linka, problem polega na tym że po przepisaniu zgodnie z tym poradnikiem odnoszę wrażenie jakby nie sczytywało statusu STATE

NIe mam niestety bladego pojęcia co robię źle i byłbym niesłuchanie wdzięczny za podpowiedź sugestie bo już mnie krew zalewa :slight_smile:

Zrzut ekranu 2023-02-7 o 13.15.38

Trudno powiedzieć na podstawie wycinka - kluczowe są trzy pierwsze linijki.
Co zawierają i czy w ogóle istnieją zmienne activeDevice device_state ?
Czy w swoim kodzie masz gdzieś zapis to tych zmiennych?

OK, źle zacząłem. Wkleję to co mam w nodach

Zrzut ekranu 2023-02-7 o 13.15.38




Tam masz taki ZigbeeDevices ustaw to w trybie “once at …” bo prawdopodobnie nie istnieje zmienna “Zigbee Lights”.
Co dzieje się ze zmiennymi można zobaczyć w taki sposób
https://nodered.org/docs/user-guide/editor/sidebar/context
Wiem, że już egipcjanie używali pisma obrazkowego… ale staraj się na przyszłość zamieszczać kod, który można edytować - a obrazek pomocniczo. Istnieje też możliwość dołączania procesu jako plik .json

Chyba, że chodzi o podkreślony czerwonym wężykiem state ? - to trzeba w sposób jawny zadeklarować var state="" na początku. Nie jest to aż tak błąd aby uniemożliwić działanie.

W HA masz gotowca instalowanego z HACS ► Integracje
Screenshot - 07.02.2023 , 19_14_58

Screenshot - 07.02.2023 , 19_15_51

2 Likes

Są gotowce do obsługi przycisków ale to co chce uzyskać @Kamil_Latański to sterowanie tym pilotem kilkoma urządzeniami czyli tak jak jest opisane na stronie Mapping IKEA TRADFRI remote in NodeRED - NotEnoughTech - naciśniecię przycisku left/right powoduje zmianę urządzenia sterowanego przez pilot, wtedy możesz sterować on/off przyciskiem toggle, zmieniać brightness przyciskiem up/down. Naciskając kolejny raz na przycisku left/right zmieniasz urządzenie do sterowania, np sterowanie roletą. Wniosek końcowy: wystarczy jeden taki pilot na pokój aby sterować kilkoma urządzeniami w tym pokoju - żarówki, roleta, itd.

Właśnie przeglądam te HACS możliwości ale jak wspomniałeś troszkę inaczej to działa a w tym opisanym przez NotEnoughTech daje świetne możliwości. Tylko zupełnie nie wiem o co chodzi ;/

chyba że ktoś jest w stanie mi wytłumaczyć co i jak za jakąś niewielka kaską :slight_smile: Bo “niby” robie to samo a tu d*pa :stuck_out_tongue:

Dopóki nie załączysz całego procesu pozostaje wierzyć na słowo :slight_smile: Mogę Ci to zrobić również zdalnie.

Czy coś takiego wystarczy ? Bo nie wiem co miałbym eksportować by ułatwić

flows.json (7,6 KB)

Wystarczy … zaraz zobaczę co tam siedzi.
Po pierwsze - jak już z resztą napisałem pisałem

zmień w taki sposób aby inicjacja zmiennych wykonała się raz po starcie procesu. Bez tego zmienna nie istnieje i nigdy to nie będzie działać (autor z linku o tym zapomniał jako oczywistość)

… cdn

Uporządkuj nazwy swiatlox na takie używane- bo są różne i niespójne swiatlo5, swiatlo3

… i pokaż efekt i linku

…cd
Co więcej… z analizu kodu wynika, że nazwy devices muszą być zgodne z nazwami których użyłeś w
w integracji Zigbee2Mqtt

msg.topic = "zigbee2mqtt/" + device + "/set"; 

Powinno działać :slight_smile:

1 Like

A co masz na myśli mówiąc uporządkuj nazwy, w ZigbeeDevices poprawiłem na zbiór żarówek swiatlo5,swiatlo3 i tak też jest w fav devices i nodach do save value

A czy można zmienić z wpisania pojedynczych źródeł ( żarówek ) na grupę którą mam w zigbee2mqtt ?

Grupa składa się z 4 żarówek

w jednym miejscu (inject) masz

["swiatlo5","swiatlo1","swiatlo2"]

…a w innym używasz

zigbee2mqtt/swiatlo3
  • swiatło3, którego nie ma

Tak tak, już poprawiłem. Tutaj świadomo bo testowałem czy cokolwiek się zmieni :slight_smile:

… tak w ogóle to nie ma pewności czy tematy mqtt, które używasz w procesie są zgodne w tym gdzie zapisuje integracja.

Użyj MqttExplorer aby to ustalić i usystematyzować - czyli zacznij od źródła.

msg.topic = "zigbee2mqtt/" + device + "/set";

Bardzo dziękuję za pomoc muszę dotrzeć do domu bo w pracy mam vpn-a i nie mam jak tego sprawdzić.

edt

Działa!

teraz kolejne pytanie, teraz mam jakby 1 żarówkę " nad stołem" a druga ( która działa - jest w szynoprzewodzie) jednak w nim mam jeszcze 3 pozostałe. Czy jest opcja użycia Grupy którą mam w mqtt czy muszą to zrobić analogicznie do źródeł światła ? tylko jak to wtedy “zaszeregować” bo przecież zarówno w fav device mam jako pojedyncze źródła światła to tak samo w wyzwalaczach " światło nad stołem, światlo3"

… nic a nic nie zrozumiałem :wink:

OK piszę wyraźniej

Szynoprzewód ma 4 źródła światła:

  • swiatlo1
  • swiatlo2
  • swiatlo3 - to te które zostały dodane do ZigbeeLights, Fav Devices i jako nody save Value
  • swiatlo4

Swiatło nad stołem ma 1 źródło światła

  • swiatlo5

GRUPA:

w z2m mam utworzoną grupę ze świateł szynoprzewodu stialo1-4

PILOT:

obecnie można sterować swiatlo5 i swiatlo3 ( swiatlo3 to jedna z 4 źródeł światła z grupu ) jednak chciałbym by zamiast swiatlo3 można było dodać grupe

Myślę o tym jak dodać grupę bo “po kolei” myślę że nie przejdzie bo można zapisać kilka ActiveDevices ? NIe mam pomysłu

To będą tylko wnioski na podstawie dokumentacji. Jeśli utworzyłeś grupę na poziomie ZigBee2Mqtt to powinno się sterować normalnie jak w przypadku pojedynczego źródła
Do devices dodaj nazwę grupy zamiast swiatlo3

Niestety, jak dodałem nazwę grupy zgodną z z2m tj. salon i zmieniłem wszędzie tam gdzie występowało swiatlo3 brak reakcji. podstawienie innego źródła zaświeca i kontroluje w sposób prawidłowy

Działa! choć jakby strasznie się lagowało… Testuje!

@RobinI30 Jesteś MASTEREM!

Dobrze, że dopisałeś bo już zacząłem kopać :slight_smile:“jak k… nie działa?”

1 Like