<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>timsa.ru: заметки с тегом mqtt</title>
<link>https://timsa.ru/tags/mqtt/</link>
<description>Моя записная книжка. Комментарии отключены из-за спама. Для вопросов используйте эту страничку</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.0 (v4079)</generator>

<itunes:subtitle>Моя записная книжка. Комментарии отключены из-за спама. Для вопросов используйте эту страничку</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Автоматизация, homeassistant + mqtt + zigbee</title>
<guid isPermaLink="false">216</guid>
<link>https://timsa.ru/all/avtomatizaciya-homeassistant-mqtt-zigbee/</link>
<pubDate>Wed, 20 Nov 2024 17:17:21 +0500</pubDate>
<author></author>
<comments>https://timsa.ru/all/avtomatizaciya-homeassistant-mqtt-zigbee/</comments>
<description>
&lt;p&gt;Немного потупил на тему как увязать три сущности homeassistant + mqtt + zigbee, но разобрался.&lt;/p&gt;
&lt;p&gt;Во-первых zigbee2mqtt отправляется на свалку истории. В нем нет вообще никакого смысла, мутное тяжеловесное, глючное дерьмо. Постоянно отваливаются датчики, срет ошибками, невменяемый и неадекватный интерфейс.&lt;/p&gt;
&lt;p&gt;HA с установленной интеграцией MQTT прекрасно выполняет все задачи.&lt;br /&gt;
Например — транслирует данные с Zigbee датчиков в MQTT брокер. Делается это очень просто.&lt;br /&gt;
Создаем файл автоматизации (тоже самое можно через gui) с таким содержимым:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;- id: 'send_voltage_on_changes'
  alias: 'Передача показаний zigbee'
  description: ''
  trigger:
  - platform: time_pattern
    seconds: '0'
  condition: []
  action:
  - service: mqtt.publish
    metadata: {}
    data:
      topic: zigbee/kitchen/voltage
      payload: &amp;quot;{{states('sensor.zb_kitchenbacklight_voltage')}}&amp;quot;
      qos: 2
      retain: true
  - service: mqtt.publish
    metadata: {}
    data:
      topic: zigbee/kitchen/power
      payload: &amp;quot;{{states('sensor.zb_kitchenbacklight_power')}}&amp;quot;
      qos: 2
      retain: true
  - service: mqtt.publish
    metadata: {}
    data:
      topic: zigbee/kitchen/waterleak
      payload: &amp;quot;{{states('sensor.zb_waterleak_kitchen_moisture')}}&amp;quot;
      qos: 2
      retain: true
  mode: single&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;По тексту всё понятно — он запускается каждую минуту и в соответствующие темы кидает значение zigbee датчиков. Не забываем указать qos и retain иначе при нескольких подписантах сообщение можно пропустить.&lt;br /&gt;
mode — отвечает за то, что будет если выполнение события затянется и наступит следующее. В случае single следующее не наступит.&lt;/p&gt;
&lt;p&gt;Или нужно отправлять MQTT по нажатию кнопки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;- switch:
      unique_id: mqtt_switch1
      name: &amp;quot;MQTT кнопка&amp;quot;
      state_topic: &amp;quot;test/switch1&amp;quot;
      command_topic: &amp;quot;test/switch1&amp;quot;
      payload_on: &amp;quot;on&amp;quot;
      payload_off: &amp;quot;off&amp;quot;
      state_on: &amp;quot;on&amp;quot;
      state_off: &amp;quot;off&amp;quot;
      optimistic: false
      qos: 2
      retain: true&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Здесь важный момент — темы state и command совпадают для того, чтобы HA оперативно отражал изменение статуса другим маршрутом (с другого устройства например).&lt;/p&gt;
&lt;p&gt;Ну и последнее действие: когда надо устройство zigbee дрыгнуть по команде mqtt. Опять идем в автоматизацию:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;- id: 'change_switch_on_mqtt'
  alias: Включение елки через mqtt
  description: ''
  trigger:
  - platform: mqtt
    topic: dom/room/pine_switch
    payload: 'on'
  condition: []
  action:
  - type: turn_on
    device_id: b6954d440bdacd9b4954aecd9ae44ec2
    entity_id: d2d540e7a4fa4d8275ec0e1510c7d944
    domain: light
  mode: single&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для выключения придется продублировать с другим payload. Делал через gui поэтому device_id и entity_id такие. Но там очевидно.&lt;/p&gt;
</description>
</item>


</channel>
</rss>