|
|
本篇文章 來自 惟家群組討論對話整理而出的文章
如果對話當事人認為有侵權的疑慮, 隨時提出, 我們將會立即刪除文章
紅外線的 fan template
BTW 調電扇段數有一個大的前提是,插座的功率更新的多快
- fan:
- - platform: template
- fans:
- study:
- friendly_name: "書房電扇"
- value_template: >-
- {%- if states('sensor.study_fan_t')|int > 0 -%}
- on
- {%- else -%}
- off
- {%- endif -%}
- percentage_template: "{{ states('sensor.study_fan_t')|int }}"
- turn_on:
- - service: switch.turn_on
- entity_id: switch.study_fan_power
- turn_off:
- - service: switch.turn_on
- entity_id: switch.study_fan_power
- set_percentage:
- service: script.study_fan_set_speed
- data:
- percentage: "{{ percentage }}"
- # 前端呈現不是段數是percentage
- speed_count: 7 # 7段的percentage[0,14,29,43,57,71,86,100]
- sensor:
- - platform: template
- sensors:
- # 現在書房電扇風速,需先自行判斷風速對應的功率
- # 風速根據段數換算成percentage
- study_fan_t:
- friendly_name: "現在書房電扇風速"
- value_template: >-
- {%- if state_attr('switch.study_plug', 'load_power') | float < 1.1 -%}
- 0
- {%- elif state_attr('switch.study_plug', 'load_power') | float < 1.7 -%}
- 14
- {%- elif state_attr('switch.study_plug', 'load_power') | float < 2.1 -%}
- 29
- {%- elif state_attr('switch.study_plug', 'load_power') | float < 5 -%}
- 43
- {%- elif state_attr('switch.study_plug', 'load_power') | float < 8 -%}
- 57
- {%- elif state_attr('switch.study_plug', 'load_power') | float < 15 -%}
- 71
- {%- elif state_attr('switch.study_plug', 'load_power') | float < 20 -%}
- 86
- {%- else -%}
- 100
- {%- endif -%}
- script:
- study_fan_set_speed:
- # 變數 for 目前的風速
- variables:
- fan_speed_c: "{{ states('sensor.study_fan_t')|int }}"
- # fan template pass過來的參數
- fields:
- percentage:
- description: "fan speed"
- example: "[0,14,29,43,57,71,86,100]"
- sequence:
- - repeat:
- # 重覆次數:用 (預定風量-目前風量)*7/100的絕對值
- # 乘上7/100是因為要由percentage回推成次數
- count: "{{ ((percentage - fan_speed_c) * 7/100)|round(0)|abs }}"
- sequence:
- - service: >-
- {%- if (percentage - fan_speed_c) > 0 -%}
- script.study_fan_speed_up
- {%- elif (percentage - fan_speed_c) < 0 -%}
- script.study_fan_speed_down
- {%- else -%}
- script.dummy
- {%- endif -%}
- - delay: '00:00:02'
複製代碼
|
|