環境
- raspi 3B+
- Raspberry Pi OS 32bit
- 32GB SDカード
OS書き込み
Windowsにて、Raspberry Pi Imager v1.7.2で書き込み
書き込み時に以下を設定
- Wi-Fiは設定無し(有線で接続)
- ssh有効化
- パスワード変更
ssh接続
入ろうとしたら以下のように怒られた
PS C:\Users\username> ssh username@ipaddress
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
以前同じipでラズパイを触っていて、今回OSを入れ直したために発生した
なので、以下を参考にしてホスト鍵を消す
参考 : https://qiita.com/hnw/items/0eeee62ce403b8d6a23c
PS C:\Users\username> ssh-keygen -R ipaddress
# Host ipaddress found: line 1
C:\Users\username/.ssh/known_hosts updated.
Original contents retained as C:\Users\username/.ssh/known_hosts.old
これでおk
アップデートとか
ラズパイにssh接続していつものヤツを実施
sudo raspi-update
はプレリリース版(安定版ではない)にアップデートしてしまうのでやらない
(参考 : https://qiita.com/takeaship/items/5861660c11d9d434368f)
$ sudo apt update
$ sudo apt full-upgrade
$ sudo apt clean
Home Assistant のインストール
参考2 : https://qiita.com/Olykoek/items/385c8c7ee6b1d2434188
OSはraspberry pi OSですが、Home Assistantも全部入りでほしいので、Home Assistant Supervised にする
これはオススメではない方法らしい
Dockerがインストールできたことを確認
$ docker --version
Docker version 20.10.17, build 100c701
OS-Agent
参考2を参照して、
model name : ARMv7 Processor rev 4 (v7l)
参考2と同じcpuなので、os-agent_1.3.0_linux_armv7.deb をダウンロード
WindowsでダウンロードしてFileZilla(FTPクライアント)でラズパイに転送
それをラズパイ上でインストール
Step 4: Install the Home Assistant Supervised Debian Package:
raspberrypi3 を選択
終わったら再起動
起動しない。dockerがおかしい
後々思ったが、SDカードがすでに死んでいたのかもしれない
homeassistantOSにする
そうそうに諦め
ラズパイOSも使いたかったが、homeassistantOSにして、専用機にする
参考 : https://www.home-assistant.io/installation/raspberrypi
Raspberry Pi 3 32-bit
SDカードに焼き終わったらこちらにアクセス : http://homeassistant.local:8123/
アクセスでき20分くらい設定がかかる旨が書いてあったので待っていた
その間に出かけていたが、帰ってきたら以下のエラーが表示されていた
500 Internal Server Error
調べたが、皆突然なっただ、原因がわからないだ、で正確な解決方法が無いようだった
なので焼き直し。今度は64bitにしてみた(64bitがrecommendedのよう)
https://github.com/home-assistant/operating-system/releases/download/8.5/haos_rpi3-64-8.5.img.xz
しばらく待ったが、safariにて「ページが開けません」と出た
pingは通るが、ラズパイの緑LEDは周期的に点滅していて、何かおかしそうな動きに見える
SDカードを変更してみる
公式ではbalenaEtcherにて「Flash from URL」でOSイメージを取ってくるようにとあったが、OSイメージは予めダウンロードした(何度も焼き直して時間がかかったため)
今度はちゃんと起動した
20分も待たず5分程で画面が移行した
tapoを動かしたい
TP-Linkのネットワークカメラである 使うのはC200 カスタムコンポーネント(カスコン)が必要
https://github.com/JurajNyiri/HomeAssistant-Tapo-Control
Installation
Copy contents of custom_components/tapo_control/ to custom_components/tapo_control/ in your Home Assistant config folder.
tapoのカスタムコンポーネントをhomeassistantのディレクトリに入れたい
windowsでダウンロードして、FileZilla(FTPクライント)で転送すれば良い
SSHでFTPする(SFTP)
そのためにhomeassistantにsshを導入
入れているadd-on
- File Editor
- Terminal & SSH(Advanced Modeを有効にしてから)
Terminal & SSH
https://www.youtube.com/watch?v=w743_mabE1Q
https://maky-ba.hatenablog.com/entry/2020/08/15/232023
ユーザはroot
パスワードを設定するだけでwindowsPCからSSHいけた
ホントは鍵を作るべしだがお試しなので。
homeassistantにカスコンを転送できた
Installation using HACS
HACS is a community store for Home Assistant. You can install HACS and then install Tapo: Camera Control from the HACS store.
install HACS
HACS自体もカスコン
HACSをダウンロードする https://hacs.xyz/docs/setup/download
sshでHACS download scriptを実行する
ダウンロードが完了したらhomeassistantを再起動 https://www.youtube.com/watch?v=zlaJrepZl2E
サイドメニューの「設定」→「デバイスとサービス」→「統合を追加」→「HACS を検索」 4つ全部チェック
githubとHACSを関連付け
サイドメニューにHACSが追加される
install Tapo: Camera Control from the HACS store.
サイドメニューの「HACS」→「Integrations」→「右下のプラスマーク」→「camera」でサーチすると Tapo: Cameras Control があるので、ダウンロード 3.7.2
と、ここで勘違い判明 直接カスコンをディレクトリに入れるかHACS経由で入れるかを選択できるっぽい 先にディレクトリに入れたがHACSには出てこなかったため、一旦先に入れたのは消してHACS経由で入れてみた そしたらtapoが出た
カメラの発見
tp-linkのアプリでカメラアカウントを作成(nasに画像を保存できるやつ)
ダッシュボードにカメラ映像が表示された
PTZも動作した
動画は良いが、写真は撮れるのか?→撮れた https://community.home-assistant.io/t/custom-component-tapo-cameras-control/231795/93
ラズパイのCPU温度と周波数も表示した https://www.home-assistant.io/integrations/sensor.command_line
wake on lan
DS118があるのでwolを導入 起動はできたのでシャットダウンも実装してみたい ダッシュボードの表示誤差(起動中はスイッチオンにならない)があるためちゃんと起動したか不安になる(起動しているが) 別の表示カードを使うか https://www.home-assistant.io/integrations/wake_on_lan/ https://community.home-assistant.io/t/switch-creation-wake-on-lan/367200/2
起動は押しボタンでワンショットおして、ステートは別で表示させたい Input Buttonを使う 普通のスライドスイッチはONとOFFのステートがあるが、NASが完全に起動しないとスイッチはオンにならないので、気持ちが悪い なので、ワンショットで押して「Button Pressed!起動中!」みたいなメッセージを出したい automationと組み合わせる模様 https://www.home-assistant.io/integrations/input_button/
水平スタックカードで左カードにオンオフのステータス、右カードにwolボタンを配置 ボタンを押したときの動作は押したことの通知とwolの2つを行いたかったが一つしかできない様子 なので、automationのアクションで通知とwolを実現し、ボタンを押したときにはこのautomationを実行するようにした automationはアクションだけ設定
# 水平スタックカード
type: horizontal-stack
cards:
- type: entity
entity: switch.ds118
theme: clear
icon: mdi:nas
- show_name: true
show_icon: true
type: button
entity: input_button.ds118wol
show_state: true
theme: clear
tap_action:
action: call-service
service: automation.trigger
data: {}
target:
entity_id: automation.ds118_wol
hold_action:
action: none
# automation.yaml
alias: DS118 WOL
description: ""
trigger: []
condition: []
action:
- service: notify.notify
data:
message: DS118 booting ⚡
title: ⚡WOL⚡
- service: switch.turn_on
data: {}
target:
entity_id: switch.ds118
mode: single
# configuration.yaml
wake_on_lan:
switch:
- platform: wake_on_lan
mac: "XX-XX-XX-XX-XX-XX"
name: "DS118"
host: "XXX.XXX.X.X"
input_button:
ds118wol:
name: DS118 wol
定期再起動
automationに記載した
HACS is disabled - Ratelimited
このエラーが出ていた そんなにapiをコールした覚えはないのだが 設定はアップデートしたらfalseに戻ってしまう様子 なのでアップデート後は再確認する 何度かhomeassitantを再起動したらエラーが消えたのでこれはやってない もしかして、HACSのアップデート通知が何度も通信してapiのratelimitを超えたとか? だからアップデートしたら解消したとか。 https://community.home-assistant.io/t/github-rate-limit-error-hacs/229709/118 https://hacs.xyz/docs/configuration/options/ https://github.com/hacs/integration/issues/1864#issuecomment-858135207 https://github.com/hacs/integration/issues/1864#issuecomment-865450376
tapoのipアドレスを固定
変わるとhomeassistant側でエラーになるのでルーターで固定する ルーターはsynologyのMR2200ac ルーターにログインしてネットワークセンター ローカルネットワーク DHCPクライアントタブ tapoのipアドレスが表示されているので選択してから「アドレス予約に追加」をクリック これがipを固定することに相当する クリックしたのちDHCP予約タブを見てtapoが入っていればおk
tapoのwanへの通信を遮断する(LANだけで運用)
デフォルトだとモバイル回線でも動画が確認できた ということはtp-linkの中国のサーバに動画が上がっているということで、確か価格コムがAmazonのレビューで動画を第三者が見ますよ的なプライバシーポリシーがあるから気をつけろ的なのがあって、急にカメラが動くだとかもあった なのでwanへの通信は切り、lanだけで運用する 後ほどvpnサーバを入れるので外部からはvpn経由でつなぐことにする ルーターで、tapoのwanへの通信を遮断する設定をする mr2200acにログインし、ネットワークセンター トラフィックコントロール 全般タブからtapoを探す 地球にバツがついたマークを押す どうやらこれがインターネット接続を拒否する設定の様子 ファイアウォールでtapoのipを遮断しようと思っていたが、これで簡単にできた モバイル回線からは繋がらなくなり、wi-fiからはつながったのでwanは遮断できlanのみの運用ができそう
tailscale(VPN)
デフォルトのやつは外から接続できない stateが表示されるだけ
①さきにadd-onに表示されるこっちを試す https://github.com/hassio-addons/repository/tree/master/tailscale
②だめならこっちを試す https://github.com/tsujamin/hass-addons/blob/main/tailscale/DOCS.md
①が行けた デフォルトでexit nodeが有効になっていた tailscaleのadmin consoleでexit nodeとsubnet routerを有効にした モバイル回線からlanのhomeassistantに接続できた おk tapoのカメラ映像も見れた
google driveにバックアップ
https://github.com/sabeechen/hassio-google-drive-backup バックアップ頻度は毎日
LINE Notify
https://sympapa.hatenablog.com/entry/2021/10/30/084303 動体検知した際にtapoでスクショを撮って、それをLINEで送信する pythonで書いてスクリプト実行しようと思っていたが、home assistantから扱えるようなので使用した https://github.com/maxmacstn/HA-Line-Notify Windowsでnotify_lineフォルダをダウンロードして、FileZillaでラズパイのcustom_componentsフォルダにアップロードした その後homeassistantを再起動
/media/cameratapohdsnapshot{{ now().strftime("%Y-%m-%d-%H%M%S") }}.jpg
スナップショットは保持するつもりはないので、全部同じ名前になるように以下のようにした
/media/snapshot.jpg