Shelly 2.5 - informacje ogólne

Witam,
Trochę bawiłem się ostatnio modułami Shelly 2.5 i nie wszystkie informację znalazłem na forum. Poniżej podsumowanie rzeczy, które się dowiedziałem (może komuś się przyda).

1. Oryginalna integracja Shelly - konfiguracja bardzo prosta (raczej nie trzeba tłumaczyć)
Uwagi: jeden z modułów mam sterowany w połączeniu z czujnikiem ruchu podpiętym pod inny moduł (PIR → Wemos → HA → Shelly). Czasami działa bardzo szybko, a czasami lagi dochodzą do 4-5 sekund. Niedługo będę wgrywać Tasmote i sprawdzę czy coś się zmieni.

Informacyjnie, poza aplikacją można sterować jeszcze przez stronę internetową po zalogowaniu się: https://home.shelly.cloud/

2. Wgrywanie Tasmota na Shelly

  • Pierwsza metoda - bezprzewodowa
    Moduł Shelly 2.5 dodajemy do naszej sieci WiFi i musimy sprawdzić jego IP (można podejrzeć w ustawieniach → Informacja o urządzeniu → IP Urządzenia)
    Zgodnie z instrukcją ze strony: https://github.com/yaourdt/mgos-to-tasmota
    Wystarczy uruchomić w przeglądarce stronę którą jest komendą dla Shelly 2.5
- w linku uzupełnić brakujące IP modułu - ???
http://192.168.0.???/ota?url=http://dl.dasker.eu/firmware/mg2tasmota-Shelly25.zip

Wyskoczy informacja:


i gotowe! (oczywiście trzeba skonfigurować Tasmote)

  • Druga metoda - przewodowa
    Trzeba zakupić (posiadać) programator obsługujący flash-owanie ESP8266 i przewód do komunikacji. Przewód można też wykonać samemu (moduł Shelly ma gniazdo do programowania z rastrem 1,27mm). Ja wykorzystałem polutowane druciki od rezystorów z podstawowym przewodem łączeniowym do płytki stykowej.
    Schemat do połączenia się z Shelly:
    shelly_tasmota_17
    Do wgrywania skorzystałem z Tasmotizer:
    [Releases · tasmota/tasmotizer · GitHub (Releases · tasmota/tasmotizer · GitHub)

3. Konfiguracja Tasmota
Ręczne ustawienie konfiguracji:

Lub szablon:

{"NAME":"Shelly 2.5","GPIO":[320,0,34,0,224,129,0,0,640,128,608,225,3456,4736],"FLAG":0,"BASE":18}

4. Wgrywanie oryginalnego softu Shelly na Shelly 2.5
https://www.shelly-support.eu/forum/index.php?thread/438-shelly-2-5-restoring-the-firmware/

Metoda tylko przewodowa: (wykorzystałem posiadany programator i kabel)
Tym samym programem (Tasmotizer) wgrałem plik:

https://www.shelly-support.eu/filebase/index.php?filebase/112-shelly-2-5/
lub
shelly25.bin (2 MB)
Po wgraniu reset, parowanie z aplikacją i aktualizacja oprogramowania.
I można odsyłać na ewentualną naprawę gwarancyjną :slight_smile:

5 polubień

Jeśli nie przeszedłeś w ustawieniach modułu Shelly na komunikację lokalną po MQTT, czyli nie odłączyłeś go od chmury, to by tłumaczyło opóźnienia w działaniu .

2 polubienia

Dalsze informację o konfiguracji Shelly pod działaniem Tasmota:

  • Automatyczne wykrywanie przekaźników jako ŚWIATŁO w HA
SetOption30 1
  • Zmiana wyświetlania licznika energii dla każdego przekaźnika osobno
SetOption129 1

image

  • Zmiana temperatury awaryjnego wyłączenia przekaźnika (*80 stopni)
SetOption42 80
  • Konfiguracja działania przycisków podłączonych pod Shelly
    (jak korzystam z poniższego ustawienia)
SetOption1 1 (ograniczenie działania do pojedynczych naciśnięć)
SetOption11 0 (wyłączenie dodatkowych funkcji zmiany przycisku)
SetOption13 1 (natychmiastowa reakcja po naciśnięciu)

Szczegółowe dane pod linkiem:

1 polubienie

Jeden z modułów Shelly 2.5 testuje z funkcją przycisków Multi-Press

Chciałbym przypisać do przycisków dodatkowe akcje niezwiązane z tym modułem.
Czy np. odtworzenie powiadomienia po wciśnięciu 2 krotnym przycisku. Światło się nie zapali, ale wyśle do HA wiadomość:
MQT: stat/dom_xxxxxxx/BUTTON2T = {"TRIG":"DOUBLE"}
Zastanawiam się jak tą wiadomość najłatwiej obsłużyć?

Wyzwalaczem automatyzacji może być odebrany komunikat stat/dom_xxxxxxx/BUTTON2T = {"TRIG":"DOUBLE"}

Akcja automatyzacji - wykonanie usługi AIS AI: mob_notify lub/i AIS AI: say_it czy co tam sobie wybierzesz z listy w narzędziach deweloperskich :

Chciałbym Ci @bartas87poz polecić lekturę funkcji Backlog ~ pozwoli Ci na dowolne użycie komunikatów MQTT.
Można wykorzystać reguły Tasmota i zyskać na większej niezależności działania. Poniżej link do przykładów reguł:
Pojedyncze naciśnięcie, podwójne naciśnięcie i przytrzymanie ~
Jeśli chcesz poznać zastosowanie reguł, to koniecznie przeczytaj o zasadach ich tworzenia, łatwiej zrozumiesz ich działanie w przykładach z dokumentacji.
Można również, do sterowania w automatyzacji HA, wykorzystać usługę MQTT: Publish w połączeniu z Backlog.

Mój przykład akacji w automatyzacji HA:

service: mqtt.publish
data:
  payload: Color 107,78,0,77;  var1 107,78,0,77
  topic: cmnd/dom_722073/Backlog

Polecam dodatkową lekturę z inspirującego bloga:

1 polubienie

Trochę mnie to zainspirowało, oczywiście reguły w Tasmota znam, funkcję Backlog również.
Żeby mieć pełną kontrole wyłączyłem połączenie Button z przekaźnikiem.
Służy do tego Setoption73 1 i całość napisałem samemu.

Prawie wszystkie automatyzacje mam opisane w Node-red i nie chciałem korzystać z automatyzacji w HA (przynajmniej na razie).

Przygotowałem dodatkowy binary_sensor który sam się dodaje do urządzenia i aktywuje po podwójnym naciśnięciu (od niego już dalej wyzwalane są kolejne akcje) .

Podsumowanie.
Konfiguracja Tasmota:

  • SetOption1 1 (ograniczenie działania do pojedynczych naciśnięć)
  • SetOption11 0 (wyłączenie dodatkowych funkcji zmiany przycisku)
  • SetOption13 0 (umożliwienie podwójnego naciśnięcia)
  • SetOption42 80 (ustawienie temperatury wyłączenia przekaźnika)
  • SetOption129 1 (ustawienie licznika energii dla każdego przekaźnika osobno)
  • SetOption30 1 (ustawienie przełącznika jako światło)
  • Setoption73 1 (wysyłanie mqtt zamiast aktywacji wyjścia)

Reguły:

Rule1 ON button1#state=10 DO Power1 2 ENDON ON button1#state=11 DO Backlog RuleTimer1 2; publish stat/%topic%/LIGHT1 1 ENDON ON Rules#Timer=1 DO publish stat/%topic%/LIGHT1 0 ENDON ON button2#state=10 DO Power2 2 ENDON ON button2#state=11 DO Backlog RuleTimer2 2; publish stat/%topic%/LIGHT2 1 ENDON ON Rules#Timer=2 DO publish stat/%topic%/LIGHT2 0 ENDON
Rule2 ON Mqtt#Connected do publish2 homeassistant/binary_sensor/%deviceid%_1_light/config {"name":"Kuchnia lampa gora2","state_topic":"stat/%topic%/LIGHT1","payload_on":1,"payload_off":0,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","device_class":"light","force_update":true,"unique_id":"%deviceid%_1_light","device":{"identifiers":["%deviceid%"]}} ENDON
ON Mqtt#Connected do publish2 homeassistant/binary_sensor/%deviceid%_2_light/config {"name":"Kuchnia lampa blat2","state_topic":"stat/%topic%/LIGHT2","payload_on":1,"payload_off":0,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","device_class":"light","force_update":true,"unique_id":"%deviceid%_2_light","device":{"identifiers":["%deviceid%"]}} ENDON
Rule1 1
Rule2 1

Efekt:
image

2 polubienia

Dlaczego tak nie mogłeś zrobić? Ja tak mam switchem

MQT: stat/dom_xxxxxxx/SWITCH1T = {"TRIG":"HOLD"}

zwykły łącznik z dwiema pozycjami i albo naciskam raz to sie światło zapala toogle, albo dwa razy i automatyzacja w NR wyłącza wszystko w pokoju. jest jako HOLD. Jeden przełącznik, dwie akcje. Nie wiem ile potrzebujesz.
Teraz jak router Ci się popsuje, AP zawiesi, sprzęt z NR, mqtt padnie, to nawet światła nie włączysz.
Raz sobie niechcący zapchałem pule IP na routerze przez anonimizację MAC i wifi się skończyło :stuck_out_tongue:

2 polubienia

Chyba nie do końca sprawdziłeś zapisane reguły w wątku wyżej.
Rule1 - wykonuje akcje (lokalnie)
Rule2 - tworzy automatycznie binary_sensor, który jest aktywowany podczas podwójnego naciśnięcia.

Opis reguły:

Rule1 
ON button1#state=10 DO Power1 2 ENDON (pojedyncze naciśnięcie przycisku aktywuje TOOGLE na wyjściu)
ON button1#state=11 DO Backlog RuleTimer1 2; publish stat/%topic%/LIGHT1 1 ENDON (podwójne naciśnięcie aktywuje timer na 2 sekundy i binary_sensor ustawia na 1)
ON Rules#Timer=1 DO publish stat/%topic%/LIGHT1 0 ENDON (po 2 sekundach binary_sensor ustawiany na 0)
i to samo dla przycisku drugiego

Czyli sterowanie oświetleniem jest lokalnie, a podwójne naciśnięcie aktywuje akcje.

Faktycznie nie zauważyłem tego pierwszego :slight_smile:
Czyli masz łącznik monostabilny?

Tak mam łącznik monostabilny, w łazience mam automatyczne sterowanie światłem uzależnione od czujnika ruchu w łazience, czujnika ruchu na korytarzu i kontaktronu w drzwiach. Przy łączniku bistabilnym co chwile w innej pozycji załączałoby się światło, a to mnie osobiście denerwuje (łącznik powinien zapalić światło zawsze w jednej pozycji - dolnej).

Chwile używam już takiego rozwiązania i jedno mnie irytuje, po wciśnięciu przycisku ustawionego jako Button1 zapala się światło z opóźnieniem około 1sekundy. Można to wyłączyć za pomocą komendy SetOption13 1, ale traci się możliwość wywołania wielokrotnego naciśnięcia lub HOLD.

I tu dała mi do myślenia sugestia:

Zmieniłem Button1 na Switch1
image

I ustawiłem parametry:

  • SetOption30 1 (ustawienie przełącznika jako światło)
  • SwitchMode1 6 (ustawienie trybu działania łącznika monostabilnego)
  • SwitchMode2 6 (ustawienie trybu działania łącznika monostabilnego)
  • SetOption32 15 (czas po którym zadziała HOLD - 1,5s)

Jakie są różnice - światło zapala się od razu po naciśnięciu, a akcje dodatkową mogę aktywować przez wywołanie HOLD (do dyspozycji jest tylko jedna akcja dodatkowa). Przy Button1 miałem 6 kombinacji naciśnięć + HOLD. Ale kto spamięta, która kombinacja co robi - mnie osobiście na razie nie potrzebne

Jeśli komuś się przyda to zamieszczam reguły do powyższego ustawienia:

Rule1 
ON Switch1#state=3 DO Backlog Power1 2; publish stat/%topic%/LIGHT1 1 ENDON 
ON Power1#state=0 DO publish stat/%topic%/LIGHT1 0 ENDON 
ON Switch2#state=3 DO Backlog Power2 2; publish stat/%topic%/LIGHT2 1 ENDON 
ON Power2#state=0 DO publish stat/%topic%/LIGHT2 0 ENDON 

Rule2 
ON Mqtt#Connected do publish2 homeassistant/binary_sensor/%deviceid%_1_light/config {"name":"Lazienka_lampa_prysznic_hold","state_topic":"stat/%topic%/LIGHT1","payload_on":1,"payload_off":0,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","device_class":"light","force_update":true,"unique_id":"%deviceid%_1_light","device":{"identifiers":["%deviceid%"]}} ENDON
ON Mqtt#Connected do publish2 homeassistant/binary_sensor/%deviceid%_2_light/config {"name":"Lazienka_lampa_umywalka_hold","state_topic":"stat/%topic%/LIGHT2","payload_on":1,"payload_off":0,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","device_class":"light","force_update":true,"unique_id":"%deviceid%_2_light","device":{"identifiers":["%deviceid%"]}} ENDON
3 polubienia