R02/09/01
R02/09/02 スクリプト内のユーザ名が間違っていたので訂正
素人が作成しました。使う場合は自己責任でお願いします。
Hardware 他:
macOS Catalina 10.15.6
tp-link HS105
Mitshbishi EX-25LFH
Lingon 3 3.1.4
tplink-smartplug: https://github.com/softScheck/tplink-smartplug
tplink-smartplug のライセンス等はURL 先の記載に従います。
COVID-19感染症対策のため居間の換気を25cm 換気扇で行っております。計算上、 Ventilation frequency と言うのでしょうか6 回/h あれば感染を有る程度、抑制できそうです。また6 回/h は我が家では25cm 換気扇で適切に行われている用です。
しかしながらこのVentilation frequency だと5 月頃までは問題は少なかったのですが、8 月になると冷暖房負荷が高くなっている状況に至りました。そこでtp-link HS105 とMac のLaunchd を使い、換気扇をON/OFF して見ることとなりまし換気回数を屋外が暑い時間帯に3 回/h 程度まで落とし冷暖房負荷を減らす作戦です。スケジュールは下記。
9:00 から13:00 までは連続運転
13 :00 から18:00 までは15 分停止、15 分運転
18:00 から21:00 は連続運転
21:00 から翌日9:00 は停止
と、してみました。
本来なら、1 分毎程度にON/OFF を繰り返せば、よいのですがMitshbishi に確認したところ、この換気扇は1 日50 回の回転開始を想定しているとの事。1 分毎では近々、故障してしまう可能性が高いです。なので感染症防止と冷暖房負荷の低減の平行をとって上記のスケジュールとしてみました。
plist 達、7 file。
File Name: 09StartHS105.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>09StartHS105</string>
<key>ProgramArguments</key>
<array>
<string>python</string>
<string>/Users/apple/tplink-smartplug/tplink_smartplug.py</string>
<string>-t</string>
<string>10.0.1.62</string>
<string>-c</string>
<string>on</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
<!-- @@@@LingonWhatStart:python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -c on@@@@LingonWhatEnd -->
File Name: 13IntermittentHS105.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>IntermittentStartHS105</string>
<key>ProgramArguments</key>
<array>
<string>/Users/apple/Documents/FanCon/HS105launchLoad.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>12</integer>
<key>Minute</key>
<integer>45</integer>
</dict>
</dict>
</plist>
<!-- @@@@LingonWhatStart:/Users/apple/Documents/FanCon/HS105launchLoad.sh@@@@LingonWhatEnd -->
13StopHS105.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>13StopHS105</string>
<key>ProgramArguments</key>
<array>
<string>python</string>
<string>/Users/apple/tplink-smartplug/tplink_smartplug.py</string>
<string>-t</string>
<string>10.0.1.62</string>
<string>-c</string>
<string>off</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>13</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
<!-- @@@@LingonWhatStart:python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -c off@@@@LingonWhatEnd -->
16IntermittentStopHS105.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>IntermittentStopHS105</string>
<key>ProgramArguments</key>
<array>
<string>/Users/apple/Documents/FanCon/HS105launchunLoad.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>17</integer>
<key>Minute</key>
<integer>55</integer>
</dict>
</dict>
</plist>
<!-- @@@@LingonWhatStart:/Users/apple/Documents/FanCon/HS105launchunLoad.sh@@@@LingonWhatEnd -->
18StartHS105.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>18StartHS105</string>
<key>ProgramArguments</key>
<array>
<string>python</string>
<string>/Users/apple/tplink-smartplug/tplink_smartplug.py</string>
<string>-t</string>
<string>10.0.1.62</string>
<string>-c</string>
<string>on</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>18</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
<!-- @@@@LingonWhatStart:python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -c on@@@@LingonWhatEnd -->
21StopHS105.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>21StopHS105</string>
<key>ProgramArguments</key>
<array>
<string>python</string>
<string>/Users/apple/tplink-smartplug/tplink_smartplug.py</string>
<string>-t</string>
<string>10.0.1.62</string>
<string>-c</string>
<string>off</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>21</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
<!-- @@@@LingonWhatStart:python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -c off@@@@LingonWhatEnd -->
HS105Countdown.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>HS105Countdown</string>
<key>ProgramArguments</key>
<array>
<string>/Users/apple/Documents/HS105Countdown.sh</string>
</array>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>
<!-- @@@@LingonWhatStart:/Users/apple/Documents/HS105Countdown.sh@@@@LingonWhatEnd -->
Shell Command 等、5 file。
HS105continuous4h.sh
#!/bin/bash
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -j '{"count_down":{"delete_all_rules":null}}'
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -c on
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -j '{"count_down":{"add_rule":{"enable":1,"delay":14400,"act":0,"name":"turn off"}}}'
HS105continuous3h.sh
#!/bin/bash
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -j '{"count_down":{"delete_all_rules":null}}'
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -c on
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -j '{"count_down":{"add_rule":{"enable":1,"delay":10800,"act":0,"name":"turn off"}}}'
HS105Countdown.sh
#!/bin/bash
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -j '{"count_down":{"delete_all_rules":null}}'
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -c on
python /Users/apple/tplink-smartplug/tplink_smartplug.py -t 10.0.1.62 -j '{"count_down":{"add_rule":{"enable":1,"delay":900,"act":0,"name":"turn off"}}}'
HS105launchLoad.sh
#!/bin/bash
launchctl load /Users/apple/Library/LaunchAgents/HS105Countdown.plist
HS105launchunLoad.sh
#!/bin/bash
launchctl unload /Users/apple/Library/LaunchAgents/HS105Countdown.plist
やってみて、
もっと簡単な方法が有る気がします。