Switch do MQTT?

Potrzebuje porady chce wysterowac termostat boscha na zasadzie zamkniete lub otwarte 100% co wpisac w configuration.yaml abym mial encje czy switcha ktorym bym mogl zamykac i otiwerac glowice. Stworzylem taki kod ale nic mi sie nie pojawia.

switch:
platform: mqtt
name: “BOSCH-SALON-ON-OFF”
state_topic: “zigbee2mqtt/BOSCH-SALON”
command_topic: “zigbee2mqtt/BOSCH-SALON/set”
command_state: “zigbee2mqtt/BOSCH-SALON/get”
payload_on: ‘{“pi_heating_demand”: “100”}’
payload_off: ‘{“pi_heating_demand”: “0”}’
payload_available: ‘{“pi_heating_demand”: “”}’

Na początek:

Używasz starej składni, nie ma już czegoś takiego jak platform: mqtt

ok czyli tak?

mqtt:
  - switch:
    name: "BOSCH-SALON-ON-OFF"
    state_topic: "zigbee2mqtt/BOSCH-SALON"
    command_topic: "zigbee2mqtt/BOSCH-SALON/set"
    command_state: "zigbee2mqtt/BOSCH-SALON/get"
    payload_on: '{"pi_heating_demand": "100"}'
    payload_off: '{"pi_heating_demand": "0"}'
    payload_available: '{"pi_heating_demand": ""}'

Przy takim konfigu dostaje bledy praktycznie do kazdej linijki :slight_smile:

Invalid config for 'mqtt' at configuration.yaml, line 35: 'name' is an invalid option for 'mqtt', check: mqtt->0->name, please check the docs at https://www.home-assistant.io/integrations/mqtt Invalid config for 'mqtt' at configuration.yaml, line 36: 'state_topic' is an invalid option for 'mqtt', check: mqtt->0->state_topic, please check the docs at https://www.home-assistant.io/integrations/mqtt Invalid config for 'mqtt' at configuration.yaml, line 37: 'command_topic' is an invalid option for 'mqtt', check: mqtt->0->command_topic, please check the docs at https://www.home-assistant.io/integrations/mqtt Invalid config for 'mqtt' at configuration.yaml, line 38: 'command_state' is an invalid option for 'mqtt', check: mqtt->0->command_state, please check the docs at https://www.home-assistant.io/integrations/mqtt Invalid config for 'mqtt' at configuration.yaml, line 39: 'payload_on' is an invalid option for 'mqtt', check: mqtt->0->payload_on, please check the docs at https://www.home-assistant.io/integrations/mqtt Invalid config for 'mqtt' at configuration.yaml, line 40: 'payload_off' is an invalid option for 'mqtt', check: mqtt->0->payload_off, please check the docs at https://www.home-assistant.io/integrations/mqtt Invalid config for 'mqtt' at configuration.yaml, line 41: 'payload_available' is an invalid option for 'mqtt', check: mqtt->0->payload_available, please check the docs at https://www.home-assistant.io/integrations/mqtt

Wklejam przykład z dokumentacji i porównaj aby zobaczyć gdzie masz różnice we wcięciach:

# Example configuration.yaml entry
mqtt:
  - switch:
      unique_id: bedroom_switch
      name: "Bedroom Switch"
      state_topic: "home/bedroom/switch1"
      command_topic: "home/bedroom/switch1/set"
      availability:
        - topic: "home/bedroom/switch1/available"
      payload_on: "ON"
      payload_off: "OFF"
      state_on: "ON"
      state_off: "OFF"
      optimistic: false
      qos: 0
      retain: true

Wcięcia wykonujemy za pomocą dwóch spacji, tworzą one w kodzie coś co osobiście kojarzę z kolejną gałęzią drzewa katalogów. Czyli wszystko co dotyczy konfiguracji switch jak np name w tej gałęzi ma być za wcięciem, a nie na równi w kolumnie ze switch.

Fakt dziekuje za pomoc ale dalej blad zobacz moj kod teraz :

mqtt:
  - switch:
      unique_id: bosch_salon_on_off
      name: "BOSCH SALON ON OFF"
      state_topic: "zigbee2mqtt/BOSCH-SALON"
      command_topic: "zigbee2mqtt/BOSCH-SALON/set"
      command_state: "zigbee2mqtt/BOSCH-SALON/get"
      payload_on: '{"pi_heating_demand": "100"}'
      payload_off: '{"pi_heating_demand": "0"}'
      payload_available: '{"pi_heating_demand": ""}'

mam blad odnosnie 35 linijki ( unique_id: bosch_salon_on_off)

Dziwne te przykłady?..dla ostatniej wersji HA ja mam to zdefiniowane tak:

mqtt:
  switch: 
    - unique_id: sprinkler_1
      name: "Strefa 1"
      state_topic: "/Sprinkler_1/zone1/State"
      command_topic: "/Sprinkler_1/cmd/gpio/12"
      

usuń linię command_state: "zigbee2mqtt/BOSCH-SALON/get" i sprawdź ponownie.

1 polubienie

ok usunalem i bledow nie ma moglem dodac przycisk ale on nie dziala tj. jest przycisk ale sie nie przyciska jakby

Spróbuj w Narzędzia developerskie - usługi → użyć kodu dla 100% otwarcia

service: mqtt.publish
data:
  topic: "zigbee2mqtt/BOSCH-SALON/set"
  payload: '{"pi_heating_demand": 100}'

a potem dla 0%

payload: '{"pi_heating_demand": 0}'

i zobacz czy działa usługa.

Edit. A tak swoją drogą to przecież ta głowica Bosch BTH-RA (tak się domyślam bo nie byłeś tak łaskawy aby podać typ), została przez Ciebie zapewne zintegrowana z HA i jest widoczna w integracji mqtt a jak jest eksponowane % otwarcie zaworu ? może wcale nie trzeba tego switcha sztucznie tworzyć bo masz go już dotępnego ?

Tak chodzi o model Bosch BTH-RA
W narzedziach usługach nie mam pl_heating_demand - wydaje mi sie ze to jest tak ze to jest encja diagnostyczna wiec HA nie moze nia sterowac bezposrednio. Moge z poziomu MQTT wydac polecenie - zalaczam screen i dziala to ale nie wiem jak to przelac na automatyzacje - wiec dlatego kombinuje np. ze zwyklym przelacznikiem, z poziomu MQTT wchodzac w urzadzenie moge tez swobodnie sobie suwakiem regulowac otwarcie recznie. Na dashboard udalo mi sie jedynie wrzucic podglad otwarcia zaworu.




Ok chyba krok do przodu, dziala przelaczanie kodem

mqtt:
  - switch:
      unique_id: bosch_salon_on_off
      name: "BOSCH SALON ON OFF"
      state_topic: "zigbee2mqtt/BOSCH-SALON"
      command_topic: "zigbee2mqtt/BOSCH-SALON/set"
      payload_on: '{"pi_heating_demand": "50"}'
      payload_off: '{"pi_heating_demand": "0"}'
      state_on: "ON"
      state_off: "OFF"
      optimistic: false
      qos: 0
      retain: true

Chociaz po 15 minutach automatem wraca na 0. Jest problem opisany juz.