Przekształcenie zwykłego switcha na światło roletę i bramę

Witam ostatnio zakupiłem na testy moduł 4wej 4wyj MQTT dingtian komunikujący się przewodowo, udało mi się go skomunikować z HA i działa bardzo fajnie. Ale teraz chciałbym go wykorzystać do sterowania oświetleniem roletami i bramą. Udało mi się ze światłem ale nie mam pojęcia co dalej. Jakieś pomysły?

switch:

platform: mqtt
name: “lan relay 1”
state_topic: “/dingtian/relay1916/out/relay1”
command_topic: “/dingtian/relay1916/in/control”
payload_on: ‘{“type”:“ON/OFF”,“idx”:“1”,“status”:“ON”,“time”:“0”,“pass”:“0”}’
payload_off: ‘{“type”:“ON/OFF”,“idx”:“1”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
state_on: ‘{“idx”:“1”,“status”:“ON”}’
state_off: ‘{“idx”:“1”,“status”:“OFF”}’

name: “lan relay 2”
state_topic: “/dingtian/relay1916/out/relay1”
command_topic: “/dingtian/relay1916/in/control”
payload_on: ‘{“type”:“DELAY”,“idx”:“2”,“status”:“ON”,“time”:“1”,“pass”:“0”}’
payload_off: ‘{“type”:“ON/OFF”,“idx”:“2”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
state_on: ‘{“idx”:“2”,“status”:“ON”}’
state_off: ‘{“idx”:“2”,“status”:“OFF”}’

platform: mqtt
name: “lan relay 3”
state_topic: “/dingtian/relay1916/out/relay3”
command_topic: “/dingtian/relay1916/in/control”
payload_on: ‘{“type”:“DELAY”,“idx”:“3”,“status”:“ON”,“time”:“30”,“pass”:“0”}’
payload_off: ‘{“type”:“ON/OFF”,“idx”:“3”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
state_on: ‘{“idx”:“3”,“status”:“ON”}’
state_off: ‘{“idx”:“3”,“status”:“OFF”}’

name: “lan relay 4”
state_topic: “/dingtian/relay1916/out/relay1”
command_topic: “/dingtian/relay1916/in/control”
payload_on: ‘{“type”:“DELAY”,“idx”:“4”,“status”:“ON”,“time”:“30”,“pass”:“0”}’
payload_off: ‘{“type”:“ON/OFF”,“idx”:“4”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
state_on: ‘{“idx”:“4”,“status”:“ON”}’
state_off: ‘{“idx”:“4”,“status”:“OFF”}’

light:

  • platform: switch
    name: Lampa TEST
    entity_id: switch.digitian.relay1

Czy twoja brama i żaluzje już posiadają swoje sterowniki ?

żaluzje sterowane są przez ten moduł ale nie wiem jak przerobić zwykłego switcha na roletowy. Aby zrobić lampę odwołuje się do encji switcha i działa to fajnie, czy podobnie da się zrobić z roletą. Bramę steruje przez ten moduł a kontaktron mam wpięty na in2 (wejście nie pobudza relay2)

Chodzi ci o switch w HomeAsssistant ? Pokaz jakiś schemat jak to podłączyłeś

Chodzi mi o przekształcenie programu.
np aby

platform: mqtt
name: “lan relay 1”
state_topic: “/dingtian/relay1916/out/relay1”
command_topic: “/dingtian/relay1916/in/control”
payload_on: ‘{“type”:“ON/OFF”,“idx”:“1”,“status”:“ON”,“time”:“0”,“pass”:“0”}’
payload_off: ‘{“type”:“ON/OFF”,“idx”:“1”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
state_on: ‘{“idx”:“1”,“status”:“ON”}’
state_off: ‘{“idx”:“1”,“status”:“OFF”}’

było widziane w HA
musiałem posłużyć się https://www.home-assistant.io/integrations/light.switch/
i wyszło

light:

  • platform: switch
    name: Lampa TEST
    entity_id: switch.digitian.relay1

aby zrobić bramę powinienem użyć tego przykładu https://www.home-assistant.io/integrations/cover.template/
ale z tym już nie idzie tak łatwo do rolet nie doszedłem.
Dodam że bramą steruje jedno wyjście relay 2 GÓRA/STOP/DÓŁ

chyba to powinienem przekształcić

cover:

  • platform: template
    covers:
    garage_door:
    device_class: garage
    friendly_name: “Garage Door”
    position_template: “{{ states(‘sensor.garage_door’) }}”
    open_cover:
    service: switch.turn_on
    target:
    entity_id: switch.garage_door
    close_cover:
    service: switch.turn_off
    target:
    entity_id: switch.garage_door
    stop_cover:
    service: switch.turn_on
    target:
    entity_id: switch.garage_door
    icon_template: >-
    {% if states(‘sensor.garage_door’)|float > 0 %}
    mdi:garage-open
    {% else %}
    mdi:garage
    {% endif %}

A silnik żaluzji chcesz sterować przekaźnikami tego modułu czy chcesz to podpiąć pod naścienny przełącznik żaluzji?

Żaluzje sterowane są napięciem przez przekaźniki, moduł na wejściach ma zabezpieczenie o wciśnięciu 2 naraz. Relay 3 Góra 30s i Relay4 Dół 30s. Przy sterowaniu z MQTT będę musiał jeszcze napisać logikę zabezpieczającą przed wywołaniem naraz Góra i Dół.

U mnie wygląda to tak
cover:

  • platform: mqtt
    name: “Balcony Blinds”
    availability_topic: “tele/zaluzja_prawa/LWT”
    state_topic: “stat/zaluzja_prawa/RESULT”
    command_topic: “cmnd/zaluzja_prawa/Backlog”
    value_template: ‘{{ value | int }}’
    qos: 1
    retain: false
    payload_open: “ShutterOpen1”
    payload_close: “ShutterClose1”
    payload_stop: “ShutterStop1”
    state_open: “ON”
    state_closed: “OFF”
    payload_available: “Online”
    payload_not_available: “Offline”
    optimistic: false
    tilt_command_topic: ‘cmnd/zaluzja_prawa/ShutterPosition1’
    tilt_status_topic: ‘cmnd/zaluzja_prawa/ShutterPosition1’
    set_position_topic: ‘cmnd/zaluzja_prawa/ShutterPosition1’
    position_topic: “stat/zaluzja_prawa/SHUTTER1”
    tilt_min: 0
    tilt_max: 100
    tilt_closed_value: 0
    tilt_opened_value: 100

Sterownik Sonoff Dual R2 przekaźniki w trybie inerlock

W twoim przypadku musisz napisać jakieś skrypty lub poszukać w necie i wtedy utworzyc wirtualne przelaczniki w HA i nimi wywoływać skrypt dla żaluzji

https://community.home-assistant.io/t/script-to-toggle-cover/18799/6

W przypadku sonoffa na pewno jest łatwiej bo sama Tasmota ma funkcje rolet w sobie. A czy są jakieś inne moduły przewodowe które można zastosować do rolet. Mam jeszcze Satela Integrę wpiętego do HA, ale tam też wyjścia widoczne są jako switch.

Aliexpress
https://www.houseiq.pl/pl/c/Sterowniki-przekaznikowe/18

https://www.houseiq.pl/pl/searchquery/sterownik+bramy/1/phot/5

No właśnie w tym problem, w całym tym sklepie niema ani jednego rozwiązania przewodowego. A jak już są to bardzo drogie (lexon, grenton itp.) Dlatego próbuje z tym modułem.

Powinieneś użyć tego przykładu MQTT Cover - Home Assistant skoro korzystasz z MQTT, dla switcha też przecież skorzystałeś z MQTT Switch - Home Assistant.

P.S. Zakładam, że wklejane przez Ciebie konfiguracje HA są testowe bo mają sporo literówek, napewno ze switch platform: mqtt nie mogła powstać light.Lampa_TEST bo nie ma czegos takiego jak switch.digitian.relay1 (raz używasz dingtian, a potem digitian).
To też wg mnie błąd:

Dzięki właśnie na taką pomoc liczyłem. Na tom chwilę taką mam konfigurację działa światło i mam cover na bramę. Relay1 Lampa, Relay2 Brama, Relay3 i 4 ma być roleta

  • platform: mqtt
    name: “lan relay 1”
    state_topic: “/dingtian/relay1916/out/relay1”
    command_topic: “/dingtian/relay1916/in/control”
    payload_on: ‘{“type”:“ON/OFF”,“idx”:“1”,“status”:“ON”,“time”:“0”,“pass”:“0”}’
    payload_off: ‘{“type”:“ON/OFF”,“idx”:“1”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
    state_on: ‘{“idx”:“1”,“status”:“ON”}’
    state_off: ‘{“idx”:“1”,“status”:“OFF”}’

  • platform: mqtt
    name: “lan relay 2”
    state_topic: “/dingtian/relay1916/out/input2”
    command_topic: “/dingtian/relay1916/in/control”
    payload_on: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“ON”,“time”:“1”,“pass”:“0”}’
    payload_off: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“OFF”,“time”:“1”,“pass”:“0”}’
    state_on: ‘{“idx”:“2”,“status”:“LOW”}’
    state_off: ‘{“idx”:“2”,“status”:“HIGH”}’

  • platform: mqtt
    name: “lan relay 3”
    state_topic: “/dingtian/relay1916/out/relay3”
    command_topic: “/dingtian/relay1916/in/control”
    payload_on: ‘{“type”:“DELAY”,“idx”:“3”,“status”:“ON”,“time”:“10”,“pass”:“0”}’
    payload_off: ‘{“type”:“ON/OFF”,“idx”:“3”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
    state_on: ‘{“idx”:“3”,“status”:“ON”}’
    state_off: ‘{“idx”:“3”,“status”:“OFF”}’

  • platform: mqtt
    name: “lan relay 4”
    state_topic: “/dingtian/relay1916/out/relay4”
    command_topic: “/dingtian/relay1916/in/control”
    payload_on: ‘{“type”:“DELAY”,“idx”:“4”,“status”:“ON”,“time”:“10”,“pass”:“0”}’
    payload_off: ‘{“type”:“ON/OFF”,“idx”:“4”,“status”:“OFF”,“time”:“0”,“pass”:“0”}’
    state_on: ‘{“idx”:“4”,“status”:“ON”}’
    state_off: ‘{“idx”:“4”,“status”:“OFF”}’

light:

  • platform: switch
    name: “lampa relay 1”
    entity_id: switch.lan_relay_1

cover:

  • platform: mqtt
    name: “Brama relay 2”
    command_topic: “/dingtian/relay1916/in/control”
    state_topic: “/dingtian/relay1916/out/input2”
    qos: 0
    retain: true
    payload_open: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“ON”,“time”:“1”,“pass”:“0”}’
    payload_close: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“OFF”,“time”:“1”,“pass”:“0”}’
    payload_stop: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“OFF”,“time”:“1”,“pass”:“0”}’
    state_open: ‘{“idx”:“2”,“status”:“HIGH”}’
    state_opening: “opening”
    state_closed: ‘{“idx”:“2”,“status”:“LOW”}’
    state_closing: “closing”
    optimistic: false
    value_template: “{{ value.x }}”

Na szybko spróbuj przerobić z tego poniżej dodając dodatkowy sensor sensor.stan_rolety:

cover:
  - platform: template
    covers:
      garage_door:
        device_class: garage
        friendly_name: "Roleta"
        value_template: >-
          {% if is_state('sensor.stan_rolety', 'ON') %}
            open
          {% else %}
            closed
          {% endif %}
        open_cover:
          service: mqtt.publish
          data:
            topic: cmnd/xxx/relay3
            payload: ON
        close_cover:
          service: mqtt.publish
          data:
            topic: cmnd/xxx/relay4
            payload: ON

Mam nadzieję, że ogarniesz, w razie czego moge pomóc ale zdecydowanie poźniej.

Zmieniłem trochę swoją konfigurację i wszystko wyświetla się ok stan bramy się zmienia może tylko 3 przyciski to aż za dużo jak na sterowanie 1 przekaźnikiem. Została jeszcze roleta ale już nie dzisiaj Wielkie Dzięki za pomoc.

cover:

  • platform: mqtt
    name: “Brama relay 2”
    device_class: garage
    command_topic: “/dingtian/relay1916/in/control”
    state_topic: “/dingtian/relay1916/out/input2”
    payload_open: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“ON”,“time”:“1”,“pass”:“0”}’
    payload_close: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“OFF”,“time”:“1”,“pass”:“0”}’
    payload_stop: ‘{“type”:“JOGGING”,“idx”:“2”,“status”:“ON”,“time”:“1”,“pass”:“0”}’
    state_open: ‘{“idx”:“2”,“status”:“HIGH”}’
    position_open: 100
    state_closed: ‘{“idx”:“2”,“status”:“LOW”}’
    position_closed: 0

A jak wyciągnąć stan rolety albo opuszczać ją np do połowy. Tam nie mam kontaktronów i pozostaje określać na podstawie czasu?