環境

  • 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 のインストール

参考 : https://smartlife99.netlify.app/home-assistant%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7-%E3%81%9D%E3%81%AE-4

参考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://community.home-assistant.io/t/use-pan-tilt-function-for-tp-link-tapo-c200-from-home-assistant/170143

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