Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Карточки чайника и мультиварки для HA #213

Open
00svd00 opened this issue Jul 19, 2024 · 2 comments
Open

Карточки чайника и мультиварки для HA #213

00svd00 opened this issue Jul 19, 2024 · 2 comments

Comments

@00svd00
Copy link

00svd00 commented Jul 19, 2024

Сделал для себя, возможно кому-то будет полезно. Для мультиварки отложенный запуск переделан в запуск ко времени(от текущей даты\времени сервера рассчитывается время до наступления события старта и отправляется мультиварке. Если текущее время меньше установленного(т.е. если сейчас на часах 22:00, а мы ставим запуск на 23:00) - старт случится в эти сутки. Если больше(т.е. если сейчас на часах 22:00, а мы ставим запуск на 08:00) - на следующие). С мультиваркой также есть ещё одна особенность - стартует с задержкой примерно в 5 секунд, т.к. между установкой значений переменных пришлось добавить задержки.
~/.homeassistant/packages/redmond.yaml

input_datetime:
  smart_cooker_start_time:
    name: "Мультиварка. Время запуска программы"
    has_date: false
    has_time: true
  smart_cooker_work_time:
    name: "Мультиварка. Время работы"
    has_date: false
    has_time: true
input_boolean:
  smart_cooker_delayed_start:
    name: "Мультиварка. Отложенный запуск"
    initial: off
input_button:
  smart_cooker_start:
    name: "Мультиварка. Запуск программы"
    icon: mdi:pot-steam
  smart_cooker_stop:
    name: "Мультиварка. Стоп"
    icon: mdi:close-octagon
  smart_kettle_start:
    name: "Чайник. Кипячение"
    icon: mdi:kettle-steam
  smart_kettle_stop:
    name: "Чайник. Стоп"
    icon: mdi:kettle-off



input_number:
  smart_cooker_temp_input:
    name: "Мультиварка. Температура"
    initial: 100
    min: 0
    max: 230
    step: 5


script:
  smart_cooker_run:
    sequence:
    - if:
        - condition: template
          value_template: "{{ states('input_boolean.smart_cooker_delayed_start') == \"on\" }}"
      then:
        - variables:
            target_cooker_program: "{{ states('select.r4s01_cooker_program')}}"
        - service: select.select_option
          target:
            entity_id: select.r4s01_cooker_program
          data:
            option: "OFF"
        - delay: "00:00:01"
        - service: number.set_value
          target:
            entity_id: number.r4s01_cooker_d_hour
          data:
            value: >
                {% if  now() - now().replace(hour=state_attr('input_datetime.smart_cooker_start_time', 'hour'), minute=state_attr('input_datetime.smart_cooker_start_time', 'minute')) > timedelta(seconds=60) %}
                  {{ ((now().replace(hour=state_attr('input_datetime.smart_cooker_start_time', 'hour'), minute=state_attr('input_datetime.smart_cooker_start_time', 'minute')) + timedelta(days=1) - now()).seconds/3600) | round(0, 'floor')}}
                {% else %}
                  {{  ((now().replace(hour=state_attr('input_datetime.smart_cooker_start_time', 'hour'), minute=state_attr('input_datetime.smart_cooker_start_time', 'minute')) - now()).seconds/3600) | round(0, 'floor') }}
                {% endif %}
        - delay: "00:00:01"
        - service: number.set_value
          target:
            entity_id: number.r4s01_cooker_d_min
          data:
            value: >
                {{  ((now().replace(hour=state_attr('input_datetime.smart_cooker_start_time', 'hour'), minute=state_attr('input_datetime.smart_cooker_start_time', 'minute')) - now()).seconds%3600/60) | round(0, 'floor') }}
        - delay: "00:00:01"
        - service: select.select_option
          target:
            entity_id: select.r4s01_cooker_program
          data:
            option: "{{ target_cooker_program }}"
        - delay: "00:00:01"
    - service: number.set_value
      target:
        entity_id: number.r4s01_cooker_temp
      data:
        value: "{{ states('input_number.smart_cooker_temp_input') | int }}"
    - delay: "00:00:01"
    - service: number.set_value
      target:
        entity_id: number.r4s01_cooker_s_min
      data:
        value: "{{ state_attr('input_datetime.smart_cooker_work_time','minute') | int }}"
    - delay: "00:00:01"
    - service: number.set_value
      target:
        entity_id: number.r4s01_cooker_s_hour
      data:
        value: "{{ state_attr('input_datetime.smart_cooker_work_time','hour') | int }}"
    - delay: "00:00:01"
    - service: switch.turn_on
      target:
        entity_id: switch.r4s01_cooker_switch
automation:
  - alias: "Smart cooker start"
    trigger:
      platform: state
      entity_id: input_button.smart_cooker_start
    action:
      - service: script.smart_cooker_run
  - alias: "Smart cooker stop"
    trigger:
      platform: state
      entity_id: input_button.smart_cooker_stop
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.r4s01_cooker_switch
  - alias: "Smart kettle start"
    trigger:
      platform: state
      entity_id: input_button.smart_kettle_start
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.r4s02_kettle_boil
  - alias: "Smart kettle stop"
    trigger:
      platform: state
      entity_id: input_button.smart_kettle_stop
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.r4s02_kettle_boil

Карточка чайника:

      - type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - show_name: true
                show_icon: true
                type: button
                tap_action:
                  action: toggle
                entity: input_button.smart_kettle_start
              - show_name: true
                show_icon: true
                type: button
                tap_action:
                  action: toggle
                entity: input_button.smart_kettle_stop
          - type: entity
            entity: water_heater.r4s02_kettle_wh_temp
          - type: thermostat
            entity: climate.r4s02_kettle_temp
          - type: horizontal-stack
            cards:
              - type: entity
                entity: sensor.r4s02_kettle_volume
              - type: entity
                entity: sensor.r4s02_kettle_volumelast
          - type: horizontal-stack
            cards:
              - type: entities
                entities:
                  - entity: switch.r4s02_kettle_heat
                  - entity: switch.r4s02_kettle_beep
                  - entity: switch.r4s02_kettle_backlight
                  - entity: light.r4s02_kettle_light
              - type: entities
                entities:
                  - entity: sensor.r4s02_kettle_energy
                  - entity: sensor.r4s02_kettle_ontime
                  - entity: sensor.r4s02_kettle_oncount
                  - entity: sensor.r4s02_kettle_rssi

Карточка мультиварки:

      - type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - show_name: true
                show_icon: true
                type: button
                tap_action:
                  action: toggle
                entity: input_button.smart_cooker_start
              - show_name: true
                show_icon: true
                type: button
                tap_action:
                  action: toggle
                entity: input_button.smart_cooker_stop
          - type: entity
            entity: sensor.r4s01_cooker_state
          - type: gauge
            entity: input_number.smart_cooker_temp_input
            max: 230
            needle: true
            severity:
              green: 95
              yellow: 160
              red: 200
          - type: entities
            entities:
              - entity: select.r4s01_cooker_program
              - entity: select.r4s01_cooker_auto_warming
                secondary_info: none
              - entity: input_datetime.smart_cooker_work_time
              - entity: input_boolean.smart_cooker_delayed_start
              - entity: input_datetime.smart_cooker_start_time
              - entity: sensor.r4s01_cooker_rssi
          - type: horizontal-stack
            cards:
              - type: entity
                entity: sensor.r4s01_cooker_hour
              - type: entity
                entity: sensor.r4s01_cooker_min
@alutov
Copy link
Owner

alutov commented Jul 26, 2024

Спасибо за информацию!

@alutov alutov pinned this issue Jul 30, 2024
@00svd00
Copy link
Author

00svd00 commented Oct 3, 2024

UPD
Оказывается с отложенным запуском мультиварки есть бага. Если сначала выбрать программу - отложенный запуск не срабатывает(соотв. срабатывает только в случае если сначала выставить время отложенного запуска, а затем уже выбирать программу и всё остальное). Поправил скрипт, теперь все параметры выставляются в правильном порядке, отложенный запуск работает

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants