Умный дом на Home Assistant и 3D печать.
 
Telegram-канал FoxJoy
Почта: dm@foxjoy.ru
Оповещение - стиральная машина закончила стирку

Оповещение - стиральная машина закончила стирку

Стиральная машинка у нас установлена в отдельном помещении - по окончании стирки она конечно же сигнализирует, но совершенно не слышно, особенно если ты ещё и на другом этаже дома :) Жена попросила что-нибудь придумать и сделать оповещение, чтобы было слышно.
Проще, чем подключить машинку через через умную розетку с энерго-мониторингом - наверное ничего нет :)
Розетка на 16А не подошла, а вот розетка на 20А вполне справляется.


Мы хотим отслеживать состояние стиральной машины через умную розетку. Если потребление выше 15 Вт — машина работает. Если упало ниже 15 Вт, мы ждём 2 минуты, чтобы исключить кратковременные паузы (например, полоскание или смену режима), и только потом переключаем статус на "Не стирает".

Для начала нам нужно создать сенсор в /homeassistant/configuration.yaml

template: 

  - sensor:
    - default_entity_id: sensor.washing_machine_status
      icon: "{% if states('sensor.washing_machine_status') == 'Стирает' %}   mdi:washing-machine {%
        else %}   mdi:washing-machine-off {% endif %}"
      name: Стиральная машина
      state: "{% if states('sensor.rozetka_zigbee_5_power') | float > 15 %}   Стирает {%
        elif (states('sensor.rozetka_zigbee_5_power') | float <= 15) and now() - state_attr('sensor.rozetka_zigbee_5_power',
        'timestamp') > 2 * 60 %}   Не стирает {% else %}   Стирает {% endif %}"

Вот пример автоматизации:

Ну или тоже самое более подробно в YML:

alias: Стиральная машина закончила стирку 

description: Отправляет уведомление на колонки и в Telegram, когда стирка завершена
triggers:
  - entity_id:
      - sensor.rozetka_wifi_2_moshchnost
      - switch.rozetka_wifi_2
    below: 15
    for:
      hours: 0
      minutes: 10
      seconds: 0
    trigger: numeric_state
conditions:
  - condition: time
    after: "05:00:00"
    before: "21:00:00"
actions:
  - action: media_player.volume_set
    target:
      entity_id:
        - media_player.esp32_s3_esphome_pcm5102a_media_player
        - media_player.esp32_s3_3_esphome_pcm5102a_media_player_3
    data:
      volume_level: 0.45
  - action: media_player.play_media
    target:
      entity_id:
        - media_player.esp32_s3_esphome_pcm5102a_media_player
        - media_player.esp32_s3_3_esphome_pcm5102a_media_player_3
    data:
      media:
        media_content_id: media-source://media_source/local/mpd/media/airport-bell.mp3
        media_content_type: audio/mpeg
        metadata:
          title: airport-bell.mp3
          thumbnail: null
          media_class: music
          children_media_class: null
          navigateIds:
            - {}
            - media_content_type: app
              media_content_id: media-source://media_source
            - media_content_type: ""
              media_content_id: media-source://media_source/local/mpd
            - media_content_type: ""
              media_content_id: media-source://media_source/local/mpd/media
  - action: tts.google_translate_say
    metadata: {}
    data:
      cache: false
      message: Енот Геннадий работу закончил
      entity_id: media_player.esp32_s3_esphome_pcm5102a_media_player
  - action: tts.google_translate_say
    metadata: {}
    data:
      cache: false
      message: Енот Геннадий работу закончил
      entity_id: media_player.esp32_s3_3_esphome_pcm5102a_media_player_3
  - action: tts.google_translate_say
    metadata: {}
    data:
      entity_id: media_player.yandex_station 
      message: Енот Геннадий работу закончил
  - action: notify.send_message
    data:
      message: Енот Геннадий работу закончил
    target:
      entity_id:
        - notify.telegram_bot_НОМЕР_БОТА 
mode: single