YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-05-13 (月)


[一語一絵/IT系]

SwitchBot API / 2022-06-25 (土)

IFTTT不発事故に起因する2021年版AirconShutdownの善後策。

SwitchBotハブミニ
[External]SwitchBotハブミニ

これまではTwitter経由IFTTT家電リモコンSwitchBotを制御していたところ、2022年版IRKitでは直接APIを叩くようにできたので、SwitchBot[External]SwitchBot Open APIを叩くことに。

[External]SwitchBot Open API

https://api.switch-bot.com/v1.0/devices/<deviceId>/commands
というRESTエンドポイントに制御データをPOSTする枠組み。<deviceId>で指定する対象装置は
curl --request GET 'https://api.switch-bot.com/v1.0/devices' \
  --header 'Authorization: 認証トークン' \
  --header 'Content-Type: application/json; charset=utf8'
で一覧を取得できる。なお、認証トークン[External]SwitchBotをHub経由でAPIから操作するに倣い、SwitchBotアプリの「開発者向けオプション」から取得できる。

ちなみに、エアコンの制御データのパラメータは

deviceTypeAir Conditioner
commandTypecommand
CommandsetAll
command parameter{temperature},{mode},{fan speed},{power state}
e.g. 26,1,3,on
Description the unit of temperature is in celsius;
modes include 1 (auto), 2 (cool), 3 (dry), 4 (fan), 5 (heat);
fan speed includes 1 (auto), 2 (low), 3 (medium), 4 (high);
power state includes on and off
…となっているので、、エアコン停止用の
{  "command": "setAll", "parameter": "25,1,1,off", "commandType": "command"}
というデータを"switchbot_aircon_off.json"というファイルにして
#!/bin/bash

BASEPATH=$(dirname $0);

SWITCHBOT_API="https://api.switch-bot.com/v1.0"
SWITCHBOT_TOKEN="90edf....3431"

hdr_auth="Authorization:${SWITCHBOT_TOKEN}"
hdr_type="Content-Type: application/json"
# BODY="@${BASEPATH}/switchbot_aircon_off.json"
BODY='{"commandType": "command", "command": "setAll", "parameter": "25,1,1,off"}'

AIRCON_1F="01-2020XXXXXXXX-32"  # 1F
AIRCON_2F="01-2020YYYYYYYY-52"  # 2F
AIRCON_3F="01-2020ZZZZZZZZ-82"  # 3F

for DEVICE_ID in $AIRCON_1F $AIRCON_2F $AIRCON_3F;
do
    URL="${SWITCHBOT_API}/devices/${DEVICE_ID}/commands"
    curl "${URL}" \
         --silent -O /dev/null \
         -H "${hdr_auth}" -H "${hdr_type}" \
         -X POST -d "${BODY}"
done
というスクリプトを回せばエアコン3台が順次停止になる運びだ。

ローカルAPIな2022年版IRKitとは違って https://api.switch-bot.com/ に繋がらなかったらアウトだが、それは2021年版AirconShutdownと同じ。TwitterIFTTTのサービスを経由しない分だけ障害点に起因するリスクは減った、という理解でOKだ。

【参照】
●しずかなかずし https://shizuka-na-kazushi.style/
SwitchBot APIの使い方。エアコンをコントロールするプログラムをJavaScriptで書いた! 2021年8月9日
●kTech123|note https://note.com/klayer123/
SwitchBotまとめ
【SwitchBot】API を使って Python でエアコンの操作してみた
●Qiita https://qiita.com/
SwitchBot
SwitchBotAPI
curl で SwitchBotAPI を叩いて SwitchBotを動かす 2021年1月9日
SwitchBotをHub経由でAPIから操作する 2021年7月12日
●GitHub https://github.com/
OpenWonderLabs/SwitchBotAPI: SwitchBot Open API Documents
●SwitchBot https://www.switchbot.jp/
SwitchBotハブミニ
SwitchBotプラグミニ
●Wikipedia https://ja.wikipedia.org/wiki/
Representational State Transfer
スマートホーム
ECHONET Lite


[一語一絵/IT系]

アクセシビリティ / 2022-06-24 (金)

以前、[External]MdNの記事[External]第8回 音声読み上げとWebライティングに触発されて、価格表示としての¥100を100円に変更した。

要旨としては[External]【アクセシビリティ向上】Webサイトの音声読み上げの注意点と必要性

まず1つ目は、テキストの表記によって意図した通りに読み上げられないことがある点です。記号や省略記号も、音声読み上げ機能では正しく内容を伝えられません。たとえば、3000などの数字は、全角で「3000」のように記述すると「さんぜろぜろぜろ」と読み上げられてしまいます。また、※や¥などの記号も読み上げられないので、注意が必要です。
と書いてある通りなのだが、そうは言っても[External]その記事自体、投稿日表記"2020/09/01"というダメな形式になっていて「お前が言うな」と言いたいところだが、実際のところはフレームワークがあるので「言うは易し行うは難し」ところだ。

実際のところ"YYYY/MM/DD"の日付表記を"YYYY年MM月DD日"表記に整理しようとしたのだがURLに含まれる部分などを除外する事ができずに断念して今に至るのだが、よく考えると本文中には"YYYY/MM/DD"という日付表記は無さそうなので、再び立ち上がることに。

というわけで、参考リンク行の日付表記だけ"YYYY年MM月DD日"表記に整理する観点で、以下のsedスクリプトによる対処を実施。

#!/bin/bash

PID=$$;

for f in $*;do
  OUTPUT=$f.${PID}
  sed -e 's/ *\(19[0-9][0-9]\)\/\([0-9]*\)\/\([0-9]*\)*$/ \1年\2月\3日/' \
      -e 's/ *\(20[0-9][0-9]\)\/\([0-9]*\)\/\([0-9]*\)*$/ \1年\2月\3日/' \
      -e 's/ *\([12][0-9][0-9][0-9]\)年0*\([0-9]*\)月0*\([0-9]*\)日$/ \1年\2月\3日/' $f > $OUTPUT
  touch --refer=$f $OUTPUT
  diff -q $f $OUTPUT > /dev/null
  if [ $? -ne 0 ]; then mv $OUTPUT $f; fi
  rm -f $OUTPUT
done
3つ目の正規表現で01月や01日の不要なゼロを削除するのが地味なポイントかな。

【参照】
●MdN Design Interactive https://www.mdn.co.jp/di/
第8回 音声読み上げとWebライティング 2008年4月15日
●Webmedia https://www.itra.co.jp/webmedia/
【アクセシビリティ向上】Webサイトの音声読み上げの注意点と必要性 2020年9月1日
●東海総合通信局 https://www.soumu.go.jp/soutsu/tokai/
ウェブアクセシビリティ
●Wikipedia https://ja.wikipedia.org/wiki/
アクセシビリティ
スクリーンリーダー


[一語一絵/IT系]

povo利用停止予告 / 2022-06-23 (木)

昨年12月に移行した、povo回線。

【povo2.0】長期間トッピング未購入による利用停止予告
予告メール

6月1日で[External]月額0円の条件とされた180日間を超えていたはずなのだが、ようやく『長期間トッピング未購入による利用停止予告』メールが着弾。

いつもpovoをご利用いただきありがとうございます。

ご契約のpovo2.0サービスは6月22日時点でトッピングを長期間未購入のため、このままトッピングのご購入が確認できない場合、7月4日より順次ご利用を停止いたします。

povo2.0ではトッピングを多数ご用意しており、お客様のご利用状況に合わせて自由にお選びいただけます。

ぜひ7月3日までにご購入をお願いいたします。
との事。

モバイル回線は0円運用中のpovoのみとなってしまったものの、「auひかり」やら「auでんき」やらで毎月2万円以上の支払いが続いているので"お得意様お目溢し"ルールが適用されているのかと思ったのだが、やっぱりそんなに都合の良い事は無かったらしい。

というわけで、220円[External]smash.使い放題パック(24時間)か、390円[External]データ追加1GB(7日間)のどちらを購入しようか、7月まで悩むことに。

【参照】
●ケータイ Watch https://k-tai.watch.impress.co.jp/
au povo
「povo2.0」、トッピングの有効期限が切れたらどうなる? 2021年9月27日
●ITmedia Mobile https://www.itmedia.co.jp/mobile/
povo2.0、月額0円の条件は180日以内に「トッピングの購入」か「660円を超える課金」 2021年9月27日
●povo2.0 https://povo.jp/
トッピング一覧
smash.使い放題パック(24時間) 220円
データ追加1GB(7日間) 390円
●povoサポート https://kdlsupport.zendesk.com/hc/ja
トッピングの購入を一定期間実施しなかった場合、どうなりますか?
●Wikipedia http://ja.wikipedia.org/wiki/
KDDI
au (携帯電話)
povo


[一語一絵/IT系]

PLEX PX-Q3PE4 / 2022-06-21 (火)


[一語一絵/IT系]

Celeron G5905調達 / 2022-06-20 (月)

[External]Yahoo!おトク宝箱[External]PayPayフリマの「1,111円引きクーポン」をGet。

☆未使用品☆Intel Celeron G5905 LGA1200☆純正クーラー付き☆
[External]PayPayフリマより

…なわけで、[External]PayPayフリマASUS Pro H510M-C/CSM用に[External]LGA1200対応のCPUを物色していたところ、[External]LGA1200対応の『☆送料無料☆未使用品☆Intel Celeron G5905 LGA1200☆純正クーラー付き☆#4』を発見。

2コア/2スレッドのローエンドだが、UHD Graphics 610なGPU内蔵なのでCore i3 10105のバックアップ要員として役に立ちそうだ。

送料込3,869円ならば悪くないよね、というわけでポチッとな。

【参照】
●価格.com https://kakaku.com/
ソケット形状:LGA1200 インテル(intel)のCPU 比較 2022年人気売れ筋ランキング (世代:第10世代,世代:第11世代,統合グラフィックス:あり)
インテル Celeron G5905 BOX 6,160円
インテル Pentium Gold G6400 BOX 7,480円
インテル Core i3 10105 BOX 14,580円
●AKIBA PC Hotline! https://akiba-pc.watch.impress.co.jp/
第10世代Coreプロセッサーが計14製品発売、省電力モデルやCore i3など 2020年5月27日
Intelの安価なCPU「Celeron G5925/G5905」がデビュー、LGA1200対応 2020年9月4日
●Intel https://www.intel.com/
インテル® Core™ i3-10105 プロセッサー
インテル® Celeron® プロセッサー G5905
●Intel https://ark.intel.com/
製品の開発コード名 Comet Lake
Intel Core i3 10105 Processor 6M Cache up to 4.40 GHz
Intel Celeron Processor G5905 4M Cache 3.50 GHz 製品仕様
●Wikipedia https://ja.wikipedia.org/wiki/
インテル
マイクロプロセッサ
ハイパースレッディング・テクノロジー
Intel Quick Sync Video
Intel Celeron
LGA1200