Urządzenia: Kompatybilność z Tasmota

Tasmota++
Nasze oprogramowanie dla urządzeń automatyki domowej działa na bazie bardzo popularnego projektu Tasmota.

Jak powstaje nasze oprogramowanie do urządzeń domowych:

  • regularnie pobieramy najnowszą stabilną wersję Tasmota,
  • dodajemy ustawienia umożliwiające automatyczne wykrywania i ułatwiające działanie z Asystentem domowym,
  • kompilujemy wersję z naszymi kodami i ustawieniami,
  • testujemy na kilkudziesięciu urządzeniach,
  • udostępniamy nasze kody oraz skompilowaną wersję do pobrania,
  • instalujemy na naszych urządzeniach, które sprzedajemy.

Wszystkie nasze poprawki udostępniamy też społeczności Tasmota, dodatkowo rozwijamy aplikację na system Android, którą zaoferowaliśmy jako oficjalną aplikację ułatwiającą Konfigurację początkową dla urządzeń z oprogramowaniem Tasmota.

Jakie ułatwienia dostarczamy

Tryb parowania

Umożliwiamy łatwe wprowadzenie w tryb parowania przez szybkie naciśnięcie przycisku na urządzeniu od 3 do 7 razy lub poprzez naciśnięcie i przytrzymanie przycisku na urządzeniu przez 4 sekundy.
W dokumentacji dodaliśmy opis krok po kroku jak to zrobić:

Motywacją do tej zmiany było umożliwienie łatwego dodawania urządzeń do naszego systemu przez osoby starsze oraz mające problem ze wzrokiem (dla części osób szybkie wciśnięcie dokładnie cztery razy w krótkich odstępach czasu tak, żeby dioda odpowiednio migała… było “troszkę” problematyczne).

Wyszukiwanie bramki

Urządzenia do sterowania nie potrzebują Internetu (serwisu w chmurze producenta). To bardzo ułatwia dostępność i przyśpiesza działanie sterowania, ale niesie ze sobą też kilka wyzwań technologicznych.

Główny problem to jak znaleźć bramkę w lokalnej sieci. Dla osób zaznajomionych z technologią ustawienie stałego IP dla bramki nie jest problemem, ale są też osoby, które nie wiedzą (i nie chcą wiedzieć) co to jest IP.

My ten problem rozwiązujemy i umożliwiamy urządzeniu wyszukanie bramki, czyli mając nasze oprogramowanie i bramkę możesz ją przełączać z Ethernet na WiFi, zmieniać jej adres IP a urządzenia i tak ją znajdą i się z nią połączą.

Tu ważne jest, żeby nazwa unikalnego klienta MQTT (którą ma każde urządzenie) zaczynała się od identyfikatora bramki. Przy takiej konfiguracji urządzenie samo będzie “szukało bramki” w sieci lokalnej. To oczywiście wysyłamy z bramki do urządzenia podczas “parowania urządzenia z bramką”.

Współpraca z Asystentem domowym

W naszej kompilacji oprogramowania Tasmota automatycznie ustawiamy na urządzeniu, żeby przedstawiało się bramce (mqtt discovery). Wszystkie urządzenia dodane są też do grupy dom. Bramka po uruchomieniu publikuje na tę grupę prośbę o przedstawienie się do urządzeń i ustala komunikację z nowymi urządzeniami. Szczegółowo opisane jest to w dokumentacji w sekcji MQTT

Udostępniamy też filmy wideo, na których pokazujemy “krok po kroku” jak dodać nowe gniazdo WiFi do bramki AIS dom korzystając z kreatora w aplikacji:

Ustawienia lokalne

W naszej kompilacji oprogramowania Tasmota ma lokalne polskie ustawienia:

  • polskie menu,
  • regionalne serwery czasu NTP (pl.pool.ntp.org, 0.pl.pool.ntp.org),
  • strefę czasową dla Polski,
  • lokalizacja to środek polski (52.069528, 19.480300) do wykorzystania podczas ustawiania charmonogramu opartego na wschodzie i zachodzie słońca.

Czy urządzenia z inną kompilacją Tasmota działają z bramką?

Tak. Na bramce jest broker MQTT dlatego każde urządzenie, które rozumie MQTT będzie działało z bramką.

Może to jednak nie być tak proste, jak w przypadku naszych urządzeń, ponieważ nie wiemy, czy kompilacja, (którą masz wgraną na urządzeniu) ma włączoną współpracę z Asystentem domowym, mDNS i czy… została prawidłowo przygotowana i wgrana.

Są trzy wyjścia, żeby działało:

  1. Zrozumieć jak działa MQTT i komunikacja z bramką - co dokładnie opisujemy
  1. Wgrać nasze darmowe oprogramowanie do urządzenia.
  2. Kupić nasze gotowe urządzenie i cieszyć się z tego, że wsparło się nasz projekt i wszystko magicznie i fajnie działa - do czego też bardzo zachęcamy :slight_smile:

Co wysyłamy do urządzenia podczas parowania z bramką?

Podczas parowania z bramką do urządzenia wysyłamy:

  • FriendlyName1 - przyjazną nazwę urządzenia podaną w konfiguratorze
  • SSId1 - nazwę sieci WiFi
  • Password1 - hasło do WiFI
  • MqttClient - unikalną nazwę klienta MQTT (identyfikator bramki + 6 ostatnich znaków z adresu MAC urządzenia)
  • Topic - unikalny temat MQTT
  • GroupTopic -temat grupowy dla wszystkich urządzeń dom
  • MqttHost - adres IP bramki
  • SetOption3 - włączamy MQTT na urządzeniu
  • SetOption30 - przypisanie do grupy światła (jeśli tak zostało wybrane w konfiguratorze)
1 polubienie

Cześć, a pomożecie dodać urządzenia supli? Jest fajny klient supli dla mqtt ale za cholerę nie potrafię dodać urządzenia do asystenta :frowning:

supla/channels/status/dimmer/41349

{

“id”: 41349,

“brightness”: 100,

“online”: 1

}

Typ i id urządzenia jest publikowany w temacie po status/

Jak dodać te urządzenia do HA abym je widział jako encje ?

EDIT: Zapomniałem dodać że jest integracja ale nie widzi wszystkich urządzeń.

jeżeli urządzenie nie wysyła komunikatu “discovery” (a tak chyba jest w przypadku SUPLA mqtt)
MQTT - Home Assistant to nie można go automatycznie dodać, trzeba ręcznie podać w konfiguracji definicje tego urządzenia (opisać jak z nim gadać)

Najpierw proponuje pogadać z urządzeniem za pomocą jakiegoś MQTT klienta, np:

czyli definujemy połaczenie z bramką AIS dom

i publikujemy do brokera MQTT (do którego podłaczone jest urządzenie supla) wiadomości

o temacie/topic: supla/channels/command/41349
i o treści/payload która rozumie urządzenie: {“idx”: 41349, “on”: false}

jeżeli uda nam się w ten sposób komunikować z urządzeniem, to możemy dodać definicję w pliku konfiguracyjnym Asystenta domowego

zakładają, że
topic to: supla/channels/command/41349
payload: { “idx”: 41349, “on”: false } → wyłącza światło
payload: { “idx”: 41349, “on”: true } → włącza światło

logujemy się po ssh do bramki
https://sviete.github.io/AIS-docs/docs/en/next/ais_bramka_remote_ssh.html

i dodajemy definicję urządzenia w pliku ~/AIS/configuration.yaml

light:
  - platform: mqtt
    schema: template  
    name: "światło"
    state_topic: "supla/channels/status/41349"    
    command_topic: "supla/channels/command/41349"
    command_on_template: ' { "idx": 41349, "on": true } '
    command_off_template: ' { "idx": 41349, "on": false } '

Nie mamy takiego urządzenia więc ta instrukcja jest nie sprawdzona.

Jeżeli się uda to będziemy wdzięczni za opis (proszę dodać do FAQ)- przyda się dla innych użytkowników SUPLA :slight_smile:

Powodzenia

1 polubienie

Dopiero dziś miałem czas powalczyć, i nie działa :frowning: Nie dodają się urządzenia, wydaje mi się że problemem jest format komunikatów, chyba powinien być json
Klient supli przyjmuje payload w takiej postaci
{
“id”: 34347,
“caption”: “Światło”,
“on”: 0,
“online”: 1
}

Ta publikacja mówi że “id”: 34347 w Supla Cloud jest ustawiona jako “włącznik zasilania”


“caption”: “Światło” - to podpis danego kanału w Supla Cloud który sam ustawiłeś

czyli masz ustawione jako - “włącznik zasilania” o nazwie “Światło”
Jolka nie będzie widziała tego kanału jako “light” tylko “switch”
Z taką konfiguracją w configuration.yaml powinno działać jako przełącznik:

switch:
  - platform: mqtt
    name: "Światło"
    state_topic: "supla/channels/status/switch/34347"  
    command_topic: "supla/channels/command/34347"
    payload_on: '{ "ident": { "id": 34347 }, "on": 1 }'
    payload_off: '{ "ident": { "id": 34347 }, "on": 0 }'
    state_on: '{"id": 34347, "caption": "Światło", "on": 1, "online": 1}'
    state_off: '{"id": 34347, "caption": "Światło", "on": 0, "online": 1}'

Komendy dla światła i gniazd z command.yaml dla supla-mqtt-client

# template for power switch 
# payload: { "ident": { "id": 2 }, "on": 1 }
- topic: 'supla/channels/command/#'
  id: '/ident/id'
  on_off: '/on'
  on_value: 1
  off_value: 0

# template for light switch
# payload: { "idx": 4, "on": true }
- topic: 'supla/channels/command/#'
  id: '/idx'
  on_off: '/on'
  on_value: true
  off_value: false

Aby dany kanał ustawić jako oświetlenie musisz w Supla Cloud zmienić “włącznik zasilania” na “włącznik światła”
i configuration.yaml dodać taki wpis:

light:
  - platform: mqtt
    schema: template  
    name: "Światło"
    state_topic: "supla/channels/status/relay/34347"  
    command_topic: "supla/channels/command/34347"
    command_on_template: '{ "idx": 34347, "on": true }'
    command_off_template: '{ "idx": 34347, "on": false }'
    state_template: '{{ "on" if value_json.on else "off" }}'

@Celina, a czy byście mogli skompilować soft dla rolet? Ja osobiście potrzebuję ten soft do elektrozaworów wody. Tu Rolety są źródła, ale bym wolał mieć wszytko na Waszym sofcie :slight_smile:

2 polubienia

@Cino111 Myślę, że można to wrzucić do kategorii “Pomysły” :slight_smile:

Dajcie sobie spokój z suplą. Nie komplikujcie sobie życia. Ja juz wszystkie moduły z supla sflashowalem softem Jolki, a serwer z cloudem i skryptami fracza leży w szufladzie. Jolka to duzo bardziej stabilny soft, a o mozliwosciach nawet nie mówię. Supla nie dorasta Jolce do pięt. 2 lata się mordowalem z Suplą, a tu w miesiąc zrobiłem wszystko dużo lepiej. Automatyzacja na Jolce działa wręcz fantastycznie. W Supli może namiastka automatuzacji będzie za jakieś 2 lata. Jeżeli czegoś nie mozesz zrobic na Jolce to napisz. Postaram się pomóc. Jak czasowo dam radę to jutro opiszę jak zrobic licznik impulsów, a na roboczo wygląda to tak

2 polubienia

W 100% się z Tobą @cino111 zgadzam, mamy podobne doświadczenia :+1::+1::+1: Cały czas jestem pod ogromnym wrażeniem AISpeaker i jego możliwości, tu można zrobić dosłownie wszystko. Dawaj opis softu do liczników oraz hardware do niego bo chyba pora na zamontowanie u mnie :wink:

1 polubienie

Nie przesadzajcie, mam SUPLĘ na RPI od ponad 2 lat i 0 problemów, nie licząc tych które samemu spowodowałem, pozostałe moduły które mam na supli od profesjonalnych producentów też nie sprawiają żadnych problemów. A ponad to nie da się porównać HA do Supli są to dwa różne rozwiązania supla jest zamkniętym środowiskiem a HA agreguje różne rozwiązania mni suplę.

W HA tez trzeba się na początku nagłówkowa żeby ogarnąć wiele zagadnień.

1 polubienie

@Michal.S jak masz produkty ZAMELa to faktycznie to działa, ale jak chcesz już samemu coś zrobić to jest tragedia. Brak softu, który by działał bez błędów (np. na Sonoff mini - zapalałem światło w łazience a odpalała się lampka w pokoju - masakra. Na tasmocie ani razu mi się coś takiego nie zdarzyło. Drugie to brak automatyzacji i to mówi samo przez siebie. Kolejne to brak wsparcia pomysłodawcy - na każdą prośbę jest jedna odpowiedź “brak zasobów czasowych”. Zespół Jolki w kilka godzin od prośby o soft do rolet przygotował to co potrzebne. Jeżeli masz już bramkę AIS to po co Supla? Jedyny plus jaki znajduję to własne ikonki :slight_smile:
Każdy zrobi jak woli - Ja polecam Jolkę :+1:

2 polubienia

@Cino111

I tu co do pracy z Supla to tylko się zgadzam co do ikonek.

1 polubienie

Ach te ikonki, ich twórca powinien jakąś premie dostać :wink:
Ale tak na serio w Supli jak zamontowałem wszystkie włączniki to nastała nudaaa…
Co z tych przełączników? Włączanie z apki i tylko harmonogramy a na Jolce taki kombajn że szok, zwłaszcza jak ktoś ma zintegrowany alarm Satela.
No i ten soft, stabilny, zdalny update (ile ja się na rozkręcałem i na wymieniałem oprogramowania w gniazdkach i włącznikach). Ogólnie Supla fajny projekt, dużo zdolnych ludzi ale uważam że Jolka ma ogromną przewagę bo oparta na HA.
Każdy ma inne potrzeby i jest na innym etapie wiedzy w zakresie Inteligentnego Domu. Może jakbym trafił na Jolkę z 2 late temu to miałbym inne spojrzenie. Czas pokaże czy dokonałem dobrego wyboru :wink:

1 polubienie

Z tymi ikonami nie jest tak do końca że nie możemy mieć własnych, nie testowałem tych konfiguracji ale popatrzcie na parametr icon_template i entity_picture_template:

cover:
  - platform: template
    covers:
      cover_group:
        friendly_name: "Cover Group"
        open_cover:
          service: script.cover_group
          data:
            modus: 'open'
        close_cover:
          service: script.cover_group
          data:
            modus: 'close'
        stop_cover:
          service: script.cover_group
          data:
            modus: 'stop'
        value_template: "{{is_state('sensor.cover_group', 'open')}}"
        icon_template: >-
          {% if is_state('sensor.cover_group', 'open') %}
            /local/cover-open.png
          {% else %}
            /local/cover-closed.png
          {% endif %}
light:
  - platform: template
    lights:
      theater_volume:
        friendly_name: "Receiver Volume"
        value_template: >-
          {% if is_state('media_player.receiver', 'on') %}
            {% if state_attr('media_player.receiver', 'is_volume_muted') %}
              off
            {% else %}
              on
            {% endif %}
          {% else %}
            off
          {% endif %}
        icon_template: >-
          {% if is_state('media_player.receiver', 'on') %}
            {% if state_attr('media_player.receiver', 'is_volume_muted') %}
              /local/lightbulb-off.png
            {% else %}
              /local/lightbulb-on.png
            {% endif %}
          {% else %}
            /local/lightbulb-off.png
          {% endif %}
        turn_on:
          service: media_player.volume_mute
          data:
            entity_id: media_player.receiver
            is_volume_muted: false
        turn_off:
          service: media_player.volume_mute
          data:
            entity_id: media_player.receiver
            is_volume_muted: true
switch:
  - platform: template
    switches:
      garage:
        value_template: "{{ is_state('cover.garage_door', 'on') }}"
        turn_on:
          service: cover.open_cover
          data:
            entity_id: cover.garage_door
        turn_off:
          service: cover.close_cover
          data:
            entity_id: cover.garage_door
        entity_picture_template: >-
          {% if is_state('cover.garage_door', 'open') %}
            /local/garage-open.png
          {% else %}
            /local/garage-closed.png
          {% endif %}

I tutaj ciekawy projekt interfejsu HA:

2 polubienia

tak na szybko, własnie testuje własne ikonki w Jolce
nie wiem jak tylko zrobić zmianę ich stanu, trzeba poczytać
tylko czasu brak :wink:

1 polubienie

@mariusz_70 dziękuje za linki, dzięki nim udało mi się zrobić zmianę stanu ikonek :+1:

2 polubienia

@Tomasz bardzo ciekawy projekt sam usiłowałem dostosować ikony pod moje potrzeby i nie mogłem sobie z tym poradzić, proszę załóż w chwili wolnego czasu nowy temat i opisz jak tego dokonałeś - gdzie umieściłeś ikonki, jakiej są wielkości (piksele) podaj podstawową konfiguracje dla oświetlenia,bram i przełączników.
Forum zaczyna nam się rozrastać a widzę że wątki zaczynają się mieszać temat poświęcony “Kompatybilności z Tasmota” a tu takie ciekawe info o ikonach dlatego prośba do wszystkich użytkowników zakładajmy konkretne tematy to i forum będzie bardziej czytelne. Wiem że jest temat odnośnie kamer ip jeden znalazłem Dzwonek z Biedronki + kamera = zdjęcie na Slack'a ale wydaje mi się że czytałem gdzieś podobny wątek i nie mogę go zlokalizować i tu druga moja prośba do autorów wpisów odnośnie kamer ip czy możecie założyć nowy temat dotyczący konfiguracji kamer będzie dla potomnych. Z góry bardzo dziękuje!!

Jak tylko znajdę chwilę to opiszę.

Kolejny temat z kamerą masz tu. Zaraz właśnie do tego siadam :slight_smile:

Mały ale dokładny opis jest tu : Integracje Supla