Shelly 2.5 - stan przycisku "momentary" w Node-RED

Witam,

Dwa tygodnie temu przeniosłem się z Domoticz na HA i próbuje ogarnąć cały system.
Obecnie utknąłem na z czytaniu stanu przycisku z modułu Shelly 2.5.
Integracje wykonałem nie przez MQTT tylko zgodnie z instrukcją na stronie:

Poustawiałem nazwy, zmieniłem typ na “light” i urządzenie zostało dodane automatycznie pod integracje w HA. Jak ustawiłem przycisk w Shelly na “Toggle Switch” to stan wejścia dodał się automatycznie, jak zmieniłem na “momentary” znowu zniknął.

Zgodnie ze stroną idzie się do tego odnieść przez automatyzację (rozróżniane są różne typy naciśnięć).
Niestety nie wiem jak ten kod przenieść do Node-RED, aby wywołać akcje od odpowiedniego typu naciśnięcia:

  • alias: “Toggle living room light”
    trigger:
    platform: event
    event_type: shelly.click
    event_data:
    device: shellyswitch25-AABBCC
    channel: 1
    click_type: single
    action:
    service: light.toggle
    entity_id: light.living_room

Ściągnij ten program :http://mqtt-explorer.com/
polacz z MQTT HA sprawdzisz jakie stany daje przycisk.
Shelly masz jako light ?
Przykładowy flow: shelly.json (5,7 KB)

Ściągnąłem zaproponowany program, połączyłem się z siecią i w bardzo przejrzysty sposób można podglądnąć ruch po MQTT (bardzo fajne narzędzie).

Zastanawiam się jedynie czemu pokazuje urządzenia, które nie są podłączone do sieci (takich których już nie używam)?

Odnośnie Shelly 2.5 to połączone z HA jest wykonane za pomocą wbudowanej już integracji opisanej na stronie powyżej. W samym module mam wyłączone MQTT. O ile dobrze rozumiem to połączenie jest realizowane za pomocą API.

W wbudowanych automatyzacjach HA przy wybraniu urządzenia Shelly sam podpowiada możliwe akcje (po konwersji na YAML):
platform: device
device_id: b2cc141659319c5a0d6cacf305905a55
domain: shelly
type: long
subtype: button1

Czy powyższy kod można jakoś wykorzystać w Node-RED?

[quote=“bartas87poz, post:3, topic:1540”]
Zastanawiam się jedynie czemu pokazuje urządzenia, które nie są podłączone do sieci (takich których już nie używam)?
[/quote] Pewnie pozostały jakieś encje
Tak kod jest do nodered import → select a file to import i ładujesz podany plik

Plik shelly.json przeglądałem w Node-RED i tam są odwołania do modułu przez MQTT.

Ja w Shelly mam wyłączone MQTT, nie za bardzo wiem jak ma mi to pomóc?

Zmień wejście i wyjście na to co masz .

Próbowałem korzystać z nodu “mqtt in” na wzór pliku shelly.json
Tylko nie wiem, czy to powinno działać skoro mam wyłączone mqtt w shelly?
Według wbudowanej intergracji Shelly z HA komunikacja nie odbywa się przez API?
Bez tytułu4

Przetestowane nody:
Bez tytułu

Różne warianty próbowałem i działa jedynie automatyzacja wbudowana w HA:
alias: Lazienka_swiatlo_umywalka_longpush
description: Shelly_button2
trigger:
- platform: device
device_id: b2cc141659319c5a0d6cacf305905a55
domain: shelly
type: long
subtype: button2
condition: []
action:
- type: turn_on
device_id: b2cc141659319c5a0d6cacf305905a55
entity_id: light.lazienka_swiatlo_channel_2
domain: light
mode: single

Przy tak utworzonej automatyzacji sprawdziłem odczyt stanu światła
Bez tytułu2

Zauważyłem, że w przypadku wciśnięcia przycisku “momentary” na czas “long”
zwracane są różne wartości, w przypadku naciśnięcia “single” zwracany jest “null”
Bez tytułu3

Pokaz jakie masz encje shelly HA

Dostępnych jest 14 encji

Masz 2 użyteczne kanały _channel_1 _channel_2
Reszta to są kanały informacyjne. Jezeli chcesz zmienić typ przycisku musisz zrobić to w oprogramowaniu shelly. Przeglądając specifikacje shelly nie znalazłem informacji aby obsługiwał inne stany jak On Off i tylko takie odczytasz z wyjścia tego przełącznika. Jeżeli istnieje taka możliwość to tylko przez momentary i trzeba to oprogramować jakąś automatyzacja lub w node red