找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 148|回覆: 0

    紅外線的 fan template BTW 調整電扇段數

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 2021-9-1 19:29:34 | 顯示全部樓層 |閱讀模式
    本篇文章 來自 惟家群組討論對話整理而出的文章
    如果對話當事人認為有侵權的疑慮, 隨時提出, 我們將會立即刪除文章

    紅外線的 fan template
    BTW 調電扇段數有一個大的前提是,插座的功率更新的多快

    1. fan:
    2.   - platform: template
    3.     fans:
    4.       study:
    5.         friendly_name: "書房電扇"
    6.         value_template: >-
    7.           {%- if states('sensor.study_fan_t')|int > 0 -%}
    8.             on
    9.           {%- else -%}
    10.             off
    11.           {%- endif -%}
    12.         percentage_template: "{{ states('sensor.study_fan_t')|int }}"
    13.         turn_on:
    14.           - service: switch.turn_on
    15.             entity_id: switch.study_fan_power
    16.         turn_off:
    17.           - service: switch.turn_on
    18.             entity_id: switch.study_fan_power
    19.         set_percentage:
    20.           service: script.study_fan_set_speed
    21.           data:
    22.             percentage: "{{ percentage }}"
    23.         # 前端呈現不是段數是percentage
    24.         speed_count: 7 # 7段的percentage[0,14,29,43,57,71,86,100]

    25. sensor:
    26.   - platform: template
    27.     sensors:
    28.       # 現在書房電扇風速,需先自行判斷風速對應的功率
    29.       # 風速根據段數換算成percentage
    30.       study_fan_t:
    31.         friendly_name: "現在書房電扇風速"
    32.         value_template: >-
    33.           {%- if state_attr('switch.study_plug', 'load_power') | float < 1.1 -%}
    34.             0
    35.           {%- elif state_attr('switch.study_plug', 'load_power') | float < 1.7 -%}
    36.             14
    37.           {%- elif state_attr('switch.study_plug', 'load_power') | float < 2.1 -%}
    38.             29
    39.           {%- elif state_attr('switch.study_plug', 'load_power') | float < 5 -%}
    40.             43
    41.           {%- elif state_attr('switch.study_plug', 'load_power') | float < 8 -%}
    42.             57
    43.           {%- elif state_attr('switch.study_plug', 'load_power') | float < 15 -%}
    44.             71
    45.           {%- elif state_attr('switch.study_plug', 'load_power') | float < 20 -%}
    46.             86
    47.           {%- else -%}
    48.             100
    49.           {%- endif -%}

    50. script:
    51.   study_fan_set_speed:
    52.     # 變數 for 目前的風速
    53.     variables:
    54.       fan_speed_c: "{{ states('sensor.study_fan_t')|int }}"
    55.     # fan template pass過來的參數
    56.     fields:
    57.       percentage:
    58.         description: "fan speed"
    59.         example: "[0,14,29,43,57,71,86,100]"
    60.     sequence:
    61.       - repeat:
    62.           # 重覆次數:用 (預定風量-目前風量)*7/100的絕對值
    63.           # 乘上7/100是因為要由percentage回推成次數
    64.           count: "{{ ((percentage - fan_speed_c) * 7/100)|round(0)|abs }}"
    65.           sequence:
    66.               - service: >-
    67.                   {%- if (percentage - fan_speed_c) > 0 -%}
    68.                     script.study_fan_speed_up
    69.                   {%- elif (percentage - fan_speed_c) < 0 -%}
    70.                     script.study_fan_speed_down
    71.                   {%- else -%}
    72.                     script.dummy
    73.                   {%- endif -%}
    74.               - delay: '00:00:02'
    複製代碼


    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 10:30 , Processed in 0.076329 second(s), 24 queries .

    快速回覆 返回頂部 返回列表