Integracja z zamkiem tedee

  • Numer dokumentu: PO-059
  • Wersja: 2.0
  • Data publikacji: 30 stycznia 2023


UWAGA Obecna wersja integracji jest tymczasowa. Wymaga ona internetu, przez co mogą występować opóźnienia. Pod koniec 2021 roku przez producenta zamka wdrożone ma zostać API lokalne i wtedy przygotujemy nową integrację – już docelową – wówczas trzeba będzie się na nią przenieść, bo metoda autoryzacji, z której tu korzystamy (ROPC) może wtedy przestać działać.

Pliki do pobrania:

Bezpieczeństwo

Metoda autoryzacji przez nas użyta wymaga podania loginu i hasła do chmury tedee w parametrach bloczka – wykorzystujemy te dane poprzez metodę opisaną w oficjalnej dokumentacji producenta. Wszystko, co jest w bloczku jest widoczne – każdy może sobie podejrzeć, co z tymi danymi skrypt robi. Hasło jest zagwiazdkowane przez Node-RED, sam dostęp do Node-RED na MSERVach jest również zabezpieczony hasłem. Generalnie w naszej opinii integracja jest bezpieczna, ale przezornym polecamy ustawić solidne hasło dostępu do MSERVa i SmartHomeManagera – to jest podstawa.

Co jest potrzebne?

  • Zamek tedee
  • Bramka tedee
  • Moduł M-SERV-s z Node-REDem – upewnij się, że jest najnowszy soft w konfiguratorze i najnowszy soft aplikacji. Będziemy wykorzystywać flagi liniowe, które zostały niedawno wprowadzone.
  • nowy CAN konfigurator – wersja 5

Etapy integracji

Przygotowanie obiektów w SHM

W SHM powinniśmy dodać 2 obiekty typu czujnik – jeden będzie nam pokazywał stan, a drugi poziom baterii w zamku. Zapisujemy ich ID. Następnie dodajemy do SHM 2 flagi zwykłe (dodajemy obiekt, wybieramy z listy po lewej, do którego modułu ma być przypisany, a w kolumnie Numer wpisujemy numer flagi w tymże module) – mogą być przypisane do obojętnie jakiego modułu, najlepiej MSERV ale to żaden wymóg. One posłużą nam za ‘wywoływacz’ akcji ‘Otwórz’ i ‘Zamknij’. Tutaj musimy sobie zapamiętać, które to flagi i który moduł. Najlepiej je opisać w konfiguratorze, żeby ich nie użyć do czego innego. Nadajemy im czas włączenia równy ‘100′ – wtedy flaga będzie działała jak przycisk, czyli wysyłała tylko impuls.

Uwaga: w najbliższym czasie zostanie to zaktualizowane i będziemy dodawać do MSERVa flagę liniową. Na razie czekamy na dodanie jednej funkcjonalności do aplikacji.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Opcjonalnie można również dodać obiekt powiązany w celu uporządkowania tych wartości w jednym polu.

Flaga liniowa

W nowym CAN konfiguratorze możemy zobaczyć, że w M-SERV-s dostępne są flagi liniowe. Jedną z nich sobie opiszmy (nadajmy nazwę), żeby nie wykorzystać jej później gdzieś indziej nieświadomie. Flaga liniowa nam będzie przechowywała stan zamka w postaci liczbowej, zgodnie z legendą (z oficjalnej dokumentacji):

Number Name
1 Uncalibrated
2 Calibrating
3 Unlocked
4 SemiLocked
5 Unlocking
6 Locking
7 Pulled
8 Pulling
9 Unknown
18 Updating

Od takiej flagi liniowej możemy później zrobić warunek i np. zapalić światło, podświetlić panel na zielono, czerwono lub inaczej, itd.

Node-RED

Kolejny krok integracji jest w Node-REDzie. Odpalamy Node-RED pod adresem http://ADRES_IP_MSERV:1880. Odrobina doświadczenia z Node-RED jest wskazana.

Za pomocą funkcji Import dostępnej w prawym górnym rogu ekranu, importujemy plik tedee.json. Uzyskamy taki oto bloczek:

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Po wejściu w niego uzupełniamy parametry:

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Wpisujemy kolejno login, hasło do konta Tedee. W aplikacji Tedee przechodzimy do naszego zamka, następnie na dole ekranu wciskamy koło zębate, przechodzimy do zakładki Informacje i w parametrach bloczka przepisujemy z aplikacji ID urządzenia.

W polu SHM State object ID wpisujemy obiekt, który stworzyliśmy w SmartHomeManagerze do przechowywania stanu zamka.

W polu SHM Battery level object ID wpisujemy obiekt, który stworzyliśmy w SmartHome Managerze do przechowywania stanu baterii.

W polu Linear flag ID wybieramy numer flagi liniowej, którą wykorzystamy.

Teraz podłączamy bloczek:

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Na wejściu bloczek będzie oczekiwał w msg.payload stringa ‘open’ albo ‘close’. Dlatego podpinamy dwa bloczki Ampio IN – jeden od flagi ‘otwórz’, drugi od flagi ‘zamknij’. Następnie za nimi dajemy bloczek switch oraz change. Switch weryfikuje, czy msg.payload jest równy 1, a change ustawia odpowiednio stringa ‘open’ lub ‘close’.

Osobom, które nie czują się pewnie z tym krokiem integracji, polecamy wczytać przykład zawarty w pliku tedee_example.json i sobie podejrzeć, jak to powinno być zrobione.

Na wyjściu mamy 4 ‘kropki’, stanowiące wyjścia. Pierwsza wysyła stan w formie liczbowej. Druga wysyła poziom baterii. Trzecia wysyła nam komendę RAW do ustawienia flagi liniowej, zaś czwarta wysyła żądania HTTP do API.

Do integracji wystarczy podpiąć wyjście trzecie i czwarte. Pod wyjście trzecie podpinamy bloczek Ampio, w którym wybieramy MSERVa (lub inny moduł z flagą liniową, tą samą którą przygotowaliśmy sobie w kroku 2 „Flaga liniowa”) i typ wyjścia – RAW CAN broadcast. Pod wyjście czwarte podpinamy bloczek HTTP Request i konfigurujemy go zgodnie ze zrzutem:

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Jako login i hasło podajemy dane do SmartHome Managera.

Test

Po przypisaniu obiektów w SHM do jakiejś grupy, wchodzimy do aplikacji mobilnej i testujemy, Powinno to wyglądać mniej więcej tak:

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Aktualizacja stanu i baterii może chwilkę zająć – aktualizacja następuje co 10 sekund. Po kliknięciu przycisku otwórz lub zamknij zamek powinien wykonać tę akcję i zaktualizować stan. Po wywołaniu akcji otwórz/zamknij z Ampio, zamek przez 10 kolejnych sekund będzie się aktualizował co 1 sekundę, aby szybciej raportować stan. Następnie powróci do aktualizacji co 10 sekund.

Stan baterii

Najnowsza wersja bibliotek Tedee może nie wspierać powyższego podejścia do wyświetlenia stanu baterii. W takim przypadku należy pobrać stan baterii z drugiego wyjścia bloczku Tedee Lock i wyświetlić stan w aplikacji mobilnej przy użyciu flagi liniowej. Do tego zadania może być przydatny poradnik Integracja systemu Ampio z Node-RED.

Możliwość tworzenia warunków z panelami

Jeśli chcemy, możemy sterować zamkiem z panelu lub wejścia jakiegoś modułu. W tym celu wystarczy stworzyć warunek przepisania stanu wejścia na flagę, którą sterujemy otwarciem lub zamknięciem zamka. Dodatkowo możemy robić warunki od stanu zamka – wystarczy zrobić warunek od flagi liniowej, przykładowo, jeśli jest ona równa 2, to znaczy, że zamek jest otwarty i możemy coś wtedy wywołać.