Notifications
Clear all

Przełączanie Sonoffa na podstawie MQTT  

  RSS
Marcin L.
(@g_marcin-l)
Majster Donator 2018

Skonfigurowałem 2 Sonoffy (151 i 152) tak, że zamykanie i otwieranie pina GPIO14 to publish (odpowiednio):

 16:15:25 MQT: cmnd/sonoff-151-SWT/POWER2 = ON
16:15:25 MQT: cmnd/sonoff-151-SWT/POWER2 = OFF

a GPIO01 i 03 to POWER3 i POWER4.

Przekaźniki są domyślnie podpięte pod GPIO00, komunikaty w MQTT to:

 16:38:05 MQT: stat/sonoff-151/RESULT = {"POWER":"ON"}
16:38:05 MQT: stat/sonoff-151/POWER = ON
16:38:07 MQT: stat/sonoff-151/RESULT = {"POWER":"OFF"}
16:38:07 MQT: stat/sonoff-151/POWER = OFF

Każde GPIO działa jako przycisk monostabilny, każde naciśnięcie, to 2 komunikaty w MQTT, chcialbym sterować załączaniem przekaźnika Sonoff-152 poprzez GPIO14 Sonoff-151.

Obecna konfiguracja Home Assistant (fragment dla Sonoffów) to:

mqtt:
broker: core-mosquitto

binary_sensor:
- platform: mqtt
name: s151_B
state_topic: "cmnd/sonoff-151-SWT/POWER2"
device_class: connectivity
force_update: true
- platform: mqtt
name: s151_C
state_topic: "cmnd/sonoff-151-SWT/POWER3"
device_class: connectivity
force_update: true
- platform: mqtt
name: s151_D
state_topic: "cmnd/sonoff-151-SWT/POWER4"
device_class: connectivity
force_update: true

switch:
- platform: mqtt
name: "Sonoff_151"
command_topic: "cmnd/sonoff-151/power"
state_topic: "stat/sonoff-151/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true
- platform: mqtt
name: "Sonoff_152"
command_topic: "cmnd/sonoff-152/power"
state_topic: "stat/sonoff-152/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true

automation:
- alias: Wlacz-152
initial_state: false
trigger:
- platform: state
entity_id: binary_sensor.s151_B
from: "OFF"
to: "ON"
action:
- service: switch.toggle
entity_id: switch.Sonoff_152

Formatowanie jest OK, tu się źle wyświetla. Część dla automation nie jest OK (m.in. nie ma wyłączania), i tu pytanie jaka ona powinna być. Za mało nad tym posiedziałem, jak to powinno zostać skonfigurowane, aby osiągnąć efekt, o jakim piszę.

Na razie skłaniam się Home Assistant i raczej wolałbym rozgryźć ten soft niż przełączać się na OpenHAB, choć nie wykluczam.

Cytuj
Dodane : 04/03/2018 5:17 pm
adrian polubień
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

a w sonoffie jaki masz soft?

OdpowiedzCytuj
Dodane : 04/03/2018 5:34 pm
Marcin L.
(@g_marcin-l)
Majster Donator 2018

Tasmota, dlatego podaję formaty komunikatów MQTT. Sonoffy chodzą OK, skonfigurowane poprzez:

Backlog Topic sonoff-151;SwitchTopic sonoff-151-SWT;MQTTHost 10.0.0.7;GPIO1 11;GPIO3 12;GPIO14 10;SerialLog OFF;SwitchMode1 2;SwitchMode2 2;SwitchMode3 2;SwitchMode4 2

dokładnie taki efekt, jaki chciałem uzyskać - tzn. obsługa 3 klawiszy monostabilnych.

Sekcje "binary_sensor:" i "switch:" wg mnie działają ok, HA steruje bez problemu przekaźnikami, widać również z niedużym opóźnieniem (1/5 - 1/3 s) naciskanie przycisków. Z automation: jest źle, za mało czasu było na rozgryzienie. Do HA jestem o tyle przywiązany, że w Pythonie zrobiony i można pisać automatykę z poziomu skryptów w tym języku (addon AppDaemon).

OdpowiedzCytuj
Dodane : 04/03/2018 7:35 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

dla mne HA - to czarna magia, może ktoś na forum używa

OdpowiedzCytuj
Dodane : 04/03/2018 8:26 pm
Marcin L.
(@g_marcin-l)
Majster Donator 2018

Coś mi zadziałało, z poziomu HA da się przełączać oba przekaźniki sterując przez interfejs webowy, ale z GPIO już nie. Zapewne do dodania obsługa przez mqtt zamiast service. W końcu ogarnę :-).

mqtt:
broker: core-mosquitto

binary_sensor:
- platform: mqtt
name: s151_2
state_topic: "cmnd/sonoff-151-SWT/POWER2"
device_class: connectivity
force_update: true
- platform: mqtt
name: s151_3
state_topic: "cmnd/sonoff-151-SWT/POWER3"
device_class: connectivity
force_update: true
- platform: mqtt
name: s151_4
state_topic: "cmnd/sonoff-151-SWT/POWER4"
device_class: connectivity
force_update: true

switch:
- platform: mqtt
name: "Sonoff_151"
command_topic: "cmnd/sonoff-151/power"
state_topic: "stat/sonoff-151/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
- platform: mqtt
name: "Sonoff_152"
command_topic: "cmnd/sonoff-152/power"
state_topic: "stat/sonoff-152/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true

automation:
- alias: Switch_152
trigger:
- platform: state
entity_id: binary_sensor.s151_2
action:
- service: switch.toggle
entity_id: switch.Sonoff_152
- alias: Switch_151
trigger:
- platform: state
entity_id: binary_sensor.s151_3
action:
- service: switch.toggle
entity_id: switch.Sonoff_151

Jak wyglądałaby odpowiednia konfiguracja OpenHAB ? Łatwiejsze w zabawie ?

OdpowiedzCytuj
Dodane : 04/03/2018 9:04 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

tutaj masz napisane jak mniej wiecej to się robi w OH

https://www.smartnydom.pl/afe-firmware-pl/konfiguracja/openhab/

OdpowiedzCytuj
Dodane : 04/03/2018 9:11 pm
Marcin L.
(@g_marcin-l)
Majster Donator 2018

Czytałem 2 tygodnie temu i mnie odrzuciło, ale wtedy nie bylem świadom, że na HA też to nie jest 5 linijek na krzyż :-).

OdpowiedzCytuj
Dodane : 04/03/2018 9:31 pm
adrian polubień
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

nie ma lekko

OdpowiedzCytuj
Dodane : 04/03/2018 9:37 pm
Marcin L.
(@g_marcin-l)
Majster Donator 2018

OK, trywialna automatyka ogarnięta, aby ktoś nie odkrywał sam, dorzucam sterowanie z GPIO z jednego Sonoffa przekaźnikami. Jedna konfiguracja Sonoffa, a określenie czy bistabilny, czy monostabilny w konfiguracji HA. W sumie prosta sprawa była, nie doczytałem ze zrozumieniem, że trigger/state/payload ma wartości "on"/"off" małymi literami, podczas gdy payload w MQTT to zupełnie inna bajka.

Zamówiłem pakiet Sonoffów, szkoda, że pewnie 2 m-ce czekania.

# plik switches.yaml
- platform: mqtt
name: "Sonoff_151"
command_topic: "cmnd/sonoff-151/power"
state_topic: "stat/sonoff-151/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true

- platform: mqtt
name: "Sonoff_152"
command_topic: "cmnd/sonoff-152/power"
state_topic: "stat/sonoff-152/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
# plik binary_sensors.yaml
# Sonoff-151 - 3 GPIOs as switches
- platform: mqtt
name: s151_SWT2
state_topic: "cmnd/sonoff-151-SWT/POWER2"

- platform: mqtt
name: s151_SWT3
state_topic: "cmnd/sonoff-151-SWT/POWER3"

- platform: mqtt
name: s151_SWT4
state_topic: "cmnd/sonoff-151-SWT/POWER4"
# plik automation.yaml
- alias: switch_152 ON
trigger:
- platform: state
entity_id: binary_sensor.s151_SWT2
to: "on"
action:
- service: switch.turn_on
entity_id: switch.Sonoff_152

- alias: switch_152 OFF
trigger:
- platform: state
entity_id: binary_sensor.s151_SWT2
to: "off"
action:
- service: switch.turn_off
entity_id: switch.Sonoff_152

- alias: switch_151 ON
trigger:
- platform: state
entity_id: binary_sensor.s151_SWT3
to: "on"
action:
- service: switch.toggle
entity_id: switch.Sonoff_151

OdpowiedzCytuj
Dodane : 05/03/2018 10:21 pm
adrian polubień
eathan
(@eathan)
Stażysta Donator 2018

Marcin L. lekko ot, ale tutaj  https://pl.aliexpress.com/item/Itead-Sonoff-Inteligentny-Wifi-Prze-cznik-DIY-Inteligentny-Pilot-Bezprzewodowy-Prze-cznik-W-cznik-wiat-a/32846287403.html zamawiałem i od chwili zamówienia do doręczenia minęło 10 dni. W Polsce szło przez MyMeest a finalnie wylądowało w Ruchu.

OdpowiedzCytuj
Dodane : 06/03/2018 7:27 am
Marcin L.
(@g_marcin-l)
Majster Donator 2018

Mój rekord to 12 dni z Chin.

Cena ok, i tak potrzebuje jeszcze z 10, - nie chciałem zamawiać 20szt., aby mi cła/VAT nie naliczyli.

Wybrałeś dostawę z Chin czy USA ?

OdpowiedzCytuj
Dodane : 06/03/2018 10:19 pm
eathan
(@eathan)
Stażysta Donator 2018

Jak zamawiałem to nie było wyboru.

OdpowiedzCytuj
Dodane : 07/03/2018 5:09 am
Marcin L.
(@g_marcin-l)
Majster Donator 2018

No i rekord prawie pobity - zamówione 3 III, dziś odebrałem paczkę z 10 szt. Sonoff (byłoby szybciej, gdyby nie szło w Polsce przez "paczka w Ruchu" (pierwszy raz widzę taki patent - firma sama wybrała miejsce, i wcale nie najbliżej). Coraz szybciej paczki z Chin przychodzą :-).

Czyli weekend na lutowanie pinów i wgrywanie FW, a malinka z HA już czeka.

OdpowiedzCytuj
Dodane : 16/03/2018 7:08 pm
adrian i eathan polubień
Udostępnij: