Broadlink i Domoticz – walki ciąg dalszy

Taki wniosek na szybko – czasem nie warto oszczędzać 😉 W sumie nie żałuję zakupu pilota Broadlink RM Mini 3, ale sposób w jaki muszę podłączać go do Domoticz jest, delikatnie mówiąc, skomplikowany.

Zacznijmy od tego, że nauka kodów wszystkich pilotów nie jest tym, co tygrysy lubią najbardziej. Ja wiem, że można zamapować kilka głównych przycisków (chociaż i to działa spontanicznie), ale w sieci są kody do wielu różnych urządzeń, które można wykorzystać. Tak jest również w przypadku Broadlink, ale w aplikacji e-Control jest to zorganizowane bardzo nieporządnie. Jako że dodają je użytkownicy, to wielokrotnie mimo szczerych chęci opisy się powtarzają, nie ma żadnego standardu – trzeba celować na przykład w kilkanaście tych samych opisów w stylu 'Samsung TV'.

Powiedzmy jednak, że znaleźliśmy wzór pilota jaki chcieliśmy. W moim przypadku podstawowe funkcje działały na prawie każdym – włączenie/wyłączenie, głośniej/ciszej/wycisz.

Mamy w nich zamapowane kilkanaście przycisków. Szkoda robić to wszystko od nowa – tym bardziej, że z nieznanych mi powodów plugin Broadlink w Domoticz przestał mi odczytywać kody IR z pilotów – zawsze są tam zera. W aplikacji działa…

Jak w takim razie wyłuskać zapisane już dane? Jest możliwość. 
Po pierwsze – potrzebujemy telefonu z Androidem. iPhone sobie z plikami nie radzi, także na nim wiele w tym przypadku nie zdziałamy. Na nim instalujemy aplikację e-Control i łączymy się z naszym pilotem Broadlink. Konfigurujemy co chcemy, wyszukujemy albo robimy to sami klawisz po klawiszu.
Wchodzimy w Opcje (po lewej, na górze)
I Share
Następnie 'Share to other phones in WLAN'

I teraz zaczyna się ciekawe. Musimy znaleźć w strukturze plików (na szczęście Android przeglądarkę takowych udostępnia) folder

/broadlink/newremote/SharedData/

I stamtąd musimy pobrać trzy pliki:

jsonSubIr
jsonButton
jsonIrCode

Najważniejszy jest jsonIrCode, ale do zaimportowania w Domoticz potrzebujemy wszystkich trzech.

Poniżej opis funkcji, za pomocą których można zaimportować dane kodów IR do Domoticz.

Przycisk Webstart uruchamia serwis za pomocą którego będziemy mogli przesłać pliki z telefonu do Raspberry Pi. Możemy wtedy wpisać adres naszego Raspberry Pi w przeglądarkę na telefonie z portem 9000 (np. http://192.168.1.200:9000/import). Co ważne – serwis zakończy pracę ze względów bezpieczeństwa po 10 minutach.

Jeżeli wiemy jak to zrobić sami (np. FTP czy też Samba share), to ładujemy je do folderu /import wewnątrz folderu Broadlink. WAŻNE! NIE plików folderu pluginu, ale folderu, który podaliśmy w konfiguracji!

Generate odczyta i zapisze te pliki. Odczyta wszystko w formacie json i stworzy z nich pliki *.ini z kodami IR do poszczególnych pilotów.

I teraz zaczyna się zabawa… Ja osobiście nie chciałem mieć stu nowych przycisków w Domoticz, dlatego przeniosłem je do folderu roboczego…

…i jeden po drugim (czasem domyślając się po opisie, czasem testując samemu) ładowałem je do folderu /import i przyciskałem…

Import – przeniesie pliki z folderu Import do Broadlink i założy odpowiednie 'przyciski' w Domoticz.

Tralalala, działa. Żeby sprawdzić jak to wszystko będzie pracowało na 'żywym organizmie'.

Stworzyłem Scenę

i dodałem:

Po kolei:
1. Zapal delikatne światła (po co ma mnie od razu oślepić…) w salonie – to akurat Xiaomi
2. Podnieś ekran – tutaj RFLink
3. Daj sygnał IR z Broadlink do projektora aby się wyłączył
4. Potwierdź – taki wymóg projektora
5. Wyłącz wzmacniacz

Scenę przez HABridge połączyłem z Alexą i można już po filmie powiedzieć 'Alexa, after movie' i sprawdzić jak nasze sprzęty reagują. Magia!

Włączniki Xiaomi – aktualizacja po remoncie

Stało się ! Kolejny element 'smart home' zainstalowany.

Dzięki uprzejmości i talentowi mojego drogiego teścia – Xiaomi Aqara Wall Switch w ścianie i działa!

Pierwsze testy opisałem wcześniej: http://cezarowy.blogspot.com/2018/03/sterowane-przeaczniki-od-xiaomi-w-koncu.html

Od razu na początek ważna sprawa – włączniki nie pasują do standardowych, przeważnie montowanych u nas w kraju okrągłych puszek. Musiałem kupić kwadratowe, na szczęście udało się znaleźć takie w Castoramie:

https://www.castorama.pl/produkty/instalacja/instalacje-elektryczne/systemy-i-osprzet-instalacyjny/puszki/natynkowe/puszka-podwojna-ospel-impresja-antracyt.html

Odrobinę talentu w kuciu ścian – pozdrowienia dla teścia za wykonanie pracy, podłączenie i mamy jak poniżej.

Teraz już moja praca, całkiem raczej przyjemna, na pewno czystsza. Gniazdka parujemy wybierając z aplikacji Mi Home typ gniazdka (Aqara ZigBee) i przyciskając dowolny klawisz na przynajmniej 5 sekund. Później przypisanie do pokoju, opis i możemy szaleć.

W Domoticz wystarczy włączyć rozpoznawanie nowych sprzętów na 5 minut i włączyć każdy z przycisków. Później, standardowo, przenosimy je na listę aktywnych urządzeń.

To wszystko później do HABridge i już możemy się cieszyć komunikatami w stylu 'Alexa, big lights in living room on'.

Ja sobie je jeszcze dodatkowo połączyłem w grupę, aby włączyć i wyłączyć wszystko razem.

Coś jednak z tymi gadżetami wypadałoby zrobić… Na początek zdarzenia i powiadomienia na czujnikach…

Samo czytanie danych z czujników już jest fajne.

Dobrze by jednak było jakoś tym wszystkim sterować i wykonywać pewne zadania na podstawie danych zewnętrznych, innych czujników albo przełączników.

I tym zajmę się w tym i kolejnych wpisach.

Generalnie Domoticz ma kilka możliwości notyfikacji oraz wykonywania zadań:
– bezpośrednio na samych czujnikach
– schematy blokowe w Blockly
– skrypty Lua lub Python
– dzVents

Na początek pierwszy punkt. Każdy z czujników w Domoticz ma cztery przyciski:
– Log
– Edit
– Timers
– Notifications

Nas interesują w tym momencie dwa ostatnie.

Jak widać, jeżeli 'pod nimi' jest cokolwiek stworzone, zapisane – kolor się zmienia. Znaczy to ni mniej ni więcej niż to, że gdzieś tam jest skrypt lub akcja, która ma zostać wywołana.

Tak w sumie to była jedna z pierwszych rzeczy jakie zrobiłem. Nawet nie w Domoticz, jeszcze wcześniej w małym systemie Pilight. Miałem wtedy podłączone na breadboard tani nadajnik i odbiornik, gniazdka 433MHz zakupione w Biedronce i byłem zafascynowany tym, że mogę je zdalnie włączyć z poziomu Raspberry Pi. Jak tak patrzę, to wiele się przez te dwa lata zmieniło.

Ok, dość sentymentalnych wspomnień. Cel – włączyć światła przed domem godzinę po zachodzie słońca i wyłączyć zawsze o 22. I jeszcze do tego dostać powiadomienie na e-mail.

W polu Type możemy wybrać sposób 'wyzwalania' zdarzenia. Przed/po wschodzie/zachodzie słońca, o konkretnej godzinie, w dniach parzystych/nieparzystych, miesięcznie (na przykład zawsze 3 dnia, albo w drugi wtorek miesiąca, itp.) oraz rocznie (na podobnych zasadach).

Ja wybrałem:
– włącz 1 godzinę po zachodzie słońca w każdy dzień tygodnia (można ustawić na przykład dni pracujące, weekend, albo wybrane konkretne dni)
– wyłącz zawsze o 22

No, to mamy za sobą. W lecie był czas, kiedy światła włączały się o 21:57 i gasły o 22 😉

Teraz powiadomienia e-mail. Przede wszystkim trzeba skonfigurować adres.

Setup -> Email jest odpowiednim miejscem na zrobienie tego.

Podajemy adres wyjściowy (z parametrami serwera pocztowego) oraz docelowy.

Gdy już to mamy za sobą – dalej proste ustawienie 'wyzwalacza' zdarzenia. Jeżeli przełącznik przejdzie w stan On, mam otrzymać e-mail z konkretną wiadomością.

Jak poniżej:

Dobra, skoro to już mamy, kolejny temat.

Mamy sobie odkurzacz Roomba. Świetny, rewelacyjny patent, który od razu zaczął być używany u nas w domu codziennie. Jednak drażni mnie w nim jedna rzecz – zasilasz 'strzela' co pewien czas. Nie lubię tego, denerwuje mnie to. Oczywiście rozumiem, że Roomba musi być jakoś ładowana, ale (mimo, że teoretycznie powinien) nie chcę aby zasilacz był włączony cały czas.

Tutaj pomocne było automatyczne wyłączenie przełącznika po zadanym czasie (Off Delay). Czyli – jeżeli kiedykolwiek zostanie włączony, uruchamia się timer, który wyłączy go po skończeniu odliczania. Wyłączenie i ponowne włączenie resetuje licznik.

Ok, kolejny temat z głowy.

Co by tu wymyślić…

O, na przykład temperatura. Jeżeli wzrośnie w którymś z pokojów – może warto o tym dostać informację i (jeżeli macie, ja akurat niestety nie) – włączyć klimatyzator. Albo dostać po prostu powiadomienie na e-mail.

Nic prostszego: przycisk Notifications na czujniku temperatury, później kilka kliknięć, gotowe.

Dobra. Ale skąd teraz pewność, że nie będę dostawał tych powiadomień co minutę? Przecież temperatura może taka być przez kilka godzin.

Aaaaa, na to też mamy radę: Setup -> Settings -> zakładka Notifications.

Na końcu strony mamy Notification Intervals. I dla czujników ja osobiście mam ustawione 12 godzin. Switches – natychmiastowo.

Czyli – co 12 godzin, jeżeli nie nastąpiła zmiana statusu, dostaję powiadomienia.

To samo zastosowałem w przypadku Xiaomi MiFlora.

Jeżeli wilgotność w doniczce jest mniejsza niż 50% – e-mail.

Można sobie w ten sposób zapewnić powiadamianie w przypadku otwarcia drzwi, przekroczenia zużycia energii, pogorszenia jakości powietrza (i docelowo włączenia oczyszczacza), przekroczenia ilości czasu spędzonego przy konsoli przez dziecko, włączenia jakichś urządzeń, itp., itd.

W kolejnym wpisie – proste Blockly i przejdziemy do dzVents.

Do zobaczenia. Albo 'do poczytania'.

Wracam do remontu… Co też spłodzi kilka wpisów!