ホーム » T-Saitoh (ページ 12)
「T-Saitoh」カテゴリーアーカイブ
ブレーカー落ちた
洗濯機の乾燥機能が動かなくなり、修理に来てもらって無事動いたのはいいけど、夜にブレーカーが落ちた。
自宅サーバへの被害も考え、UPS電源の電圧を APCUPSD でモニタリングしていて、電源電圧が下がると、google-home で警告メッセージが流れるようにしてあるんだが、動作せずに落ちてる。nagios4 の LOG をみると、電圧低下は検出しているけど、通知が発動していない。なんでやねん。
(2023-12-03追記)
別のタイミングでは、警告メッセージの読み上げは動いていた。夜間はスピーカ音量を落としているので、気づきにくい音になってたけど。
Kindle Fire HD
ママが、電子書籍で読む機会が増えた…ということで、Kindle Fire HD を購入した。早速セットアップ。自宅ネットワークに登録し、アカウントの設定やら Netflix アカウントの登録やらを終える。
Alexa
んで、Alexa も使えるし「Alexa, 今日の天気は?」を試してる。まあ、我が家はすでに Homebridge が動いていて「Hey Siri」、「OK Google」で、温湿度確認やらTVのON/OFFやら色々なことができる状態。でも、homebridge オタ状態なので「Alexa, テレビをつけて!」もやりたくなってくる。
homebridge-alexa
ググると、当然のように「Alexa経由で家の外からRaspberry Pi(Homebridge)に指示」というページが見つかる。このページに記載されているように、(1) homebridge-alexa をインストール、(2) 中継用のクラウドのアカウント作成、(3) Kindle 側に homebridge スキルのインストールを行う。
Switchbot Plug の制御
電気毛布が必要な時期、外出時の電源を切り忘れるのを防ぐために、昨年導入していた Switchbot Plug 。
スマホの SwitchBot アプリのタイマー機能で朝に強制オフの制御していたけど、寝る時にスイッチを入れるのは、自分が不在の時だとムダだし、homebridge や cron で制御するのも面白そう。
switchbot-utility のインストール
ということで、Raspberry-Pi に、switchbot-utility をインストール。
((( 事前にSwitchbot アプリは設定済み ))) $ sudo pip3 install switchbot-utility $ cd /usr/local/lib/python3.9/dist-packages/switchbot_utility
制御するには、Switchbot アプリのトークンと秘密鍵が必要なので、アプリを起動して「プロフィール」、「設定」の画面を開いて、「アプリバージョン」の表示を 10 回連打すると、「開発者向けオプション」を表示できる。この画面を開いてトークンとクライアントシークレットをコピーし、上記の switchbot_utility のフォルダ内に、settings.json のファイル名で保存。
Python で以下のスクリプトを実行すると、switchbot-utility で扱えるデバイスの一覧 deviceList.txt が作られる。
((( settings.json ))) // Switchbot アプリで取得したトークンとシークレットを、 // switchbot_utilitiy のフォルダに settings.json で保存しておく { "token": "xxxxx....", "secret": "yyyyy...." } ((( devicelist.py ))) // Python で以下のスクリプトを実行すると、deviceList.txt が作られる。 // 以下を devicelist.py で保存し、python3 devicelist.py で実行! from switchbot_utility.switchbot import Switchbot switchbot = Switchbot() switchbot.devicelist() ((( deviceList.txt ))) 441793xxxxxx, 電気毛布, Plug, 000000000000 C5B496xxxxxx, エアコン, Bot, 000000000000
実際に、Switchbot Plug を動かすために、下記のscriptでスイッチを制御できるようにしてみた。
#!/usr/bin/python3 # -*- mode: python; coding: utf-8; tab-width: 4 ; -*- # SwitchBot をON/OFFする import sys import time import os from switchbot_utility.switchbot_plug import SwitchbotPlug # ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ # 制御するSwitchBot に合わせて、上記~~~ を書き換える。 sb_dir = '/usr/local/lib/python3.9/dist-packages/switchbot_utility' # Switch Bot Plug MAC ADDR # deviceList.txt 調べた MACアドレスを記入 sb_plug_macaddr = '441793xxxxxx' # コマンドライン引数プロセス名 script_file_name = sys.argv.pop( 0 ) # コマンドライン引数 -d <デバイスID> while len( sys.argv ) >= 2 and sys.argv[0] == '-d' : sys.argv.pop( 0 ) sb_plug_macaddr = sys.argv.pop( 0 ) # setting.jsonを読み込むため os.chdir( sb_dir ) # SwitchBot Plug に接続 sb_plug = SwitchbotPlug( sb_plug_macaddr ) # ~~~~~~~~~~~~~ この部分に制御対象用のコンストラクタを書けばいい if len( sys.argv ) == 0 : # 引数なしは、状態を表示 print( sb_plug.get_power() ) elif len( sys.argv ) == 1 : # status | on | off | toggle or turn arg = sys.argv.pop() if arg == 'status' : # exitでスイッチ状態を返す sys.exit( 0 if sb_plug.get_power() == 'on' else 1 ) elif arg == 'on' : sb_plug.turn_on() # ON elif arg == 'off' : sb_plug.turn_off() # OFF elif arg == 'toggle' or arg == 'turn' : # スイッチを反転 pw = sb_plug.get_power() if pw == 'on' : sb_plug.turn_off() elif pw == 'off' : sb_plug.turn_on()
このプログラムを、homebridge-cmdswitch2 の設定に加える。
{ "platform": "cmdSwitch2", "name": "cmdSwitch2", "switches": [ { "name": "電気毛布", "on_cmd": "/usr/local/bin/switchbot-plug.py on", "off_cmd": "/usr/local/bin/switchbot-plug.py off", "state_cmd": "/usr/local/bin/switchbot-plug.py status" } ] }
ということで、「OK Google, 電気毛布を点ける」でON、朝は起床時間にあわせたタイマーでOFF完成。
空気品質センサーの挙動
空気品質センサー CCS811 を設置しているけど、夜中だけ値が上がるのなぜなんだろうなぁ?
このセンサーは、CO2センサーといいながら、有機ガスでCO2値を予想するタイプなので、灯油ストーブを使う季節になると、気化した灯油で値が高くなる。ストーブが点いているいる時は、有機ガスを燃焼させるのか値が下がる。だから、夜中はセンサー値が上がっていく。ただ、仕事で不在でストーブを使っていない時間にも値があがるはずなんだけど、夜中ほどじゃないんだよなぁ~!?!?
ウィルスバスターのライセンス追加購入
自宅では、ウィルスバスターのライセンスを家族で使ってる。最近あ~の新しいPCが増えたけど、マカフィーの無料ライセンスが切れアンインストール。でも、早々にウィルス感染を警告する詐欺のポップアップ広告を踏んだみたい。PCに慣れてれば標準Defenderでもなんとかできるかと思ってたけど、やっぱり対策ソフトは必要かな。
ウィルスバスターは1ライセンスで3台使えるけど、ママPC, あ~古PC、あ~スマホと使い切ってるし、お古のPCもまだそれなりに使ってるみたいだし、追加ライセンスを購入することにした。その結果、あと2台使えることになったので、自分のPCにも久々にウィルスバスターをインストールとなった。Windowsの標準Defenderでなんとかなるけど、たまに、うざぃポップアップ広告を踏むたびに、履歴削除とか面倒だったし。
Raspberry Pi のUSB電源ケーブルを交換
MZ80C筐体の Raspberry-Pi に温湿度センサーBME280をつけてトイレに置いてあるけど、ボードを Raspberry-Pi 3 model A+に替えたら、電圧不足の記録が残ってて週に1度のペースでフリーズしてる。USBの電源アダプターも2A以上だせる物に替えても効果なし。ただ、USB電源ケーブルの長さが足りなくて、古いUSB延長ケーブルを挟んでいるんだけど、これが怪しいのかな。長い太目のUSB電源ケーブルに交換し、延長ケーブルを取り外す。効き目あるかな。
交換して半日たったけど “vcgencmd get_throttled” を見ても、電圧低下の警告が出ていない。効果ありかな。
(追記)2日間運用して、電圧低下の警告が1度も発生していない。これで安心