中華IPカメラ A9をHomeBridgeで使えるようにする

投稿者: | 9月 19, 2023

はじめに

以前に、AliExpressの「3点でUS $5.99」でたくさん買ってみたのでレビューA9カメラというのを紹介しました。今回はそれをHTTP経由で見て、更にHomeBridgeに接続します。

使用するツール

A9 V720 Naxclow Camera

色々な機能が入っていて全部入りです。自動接続・Liveストリーミング機能・スナップショットの取得・WiFiへの接続などなどができます。

手順

大まかな手順としては

A9用のフェイクサーバの立ち上げ

HomeBridgeのプラグインCamera FFmpegで設定

自動起動の設定

って感じです。

フェイクサーバの立ち上げ

事前準備としてMQTT broker(mosquitto)とPython3をインストールしてください。MQTT brokerは立ち上げておいてください。必要なライブラリは、pil、opencv、netifaces、xmltodict、tqdmでした。git cloneで先ほどのツールをコピーします。

git clone https://github.com/intx82/a9-v720.git

あとは、ディレクトリを移動した後、

sudo python3 src/a9_naxclow.py -s

で実行するだけです。

DNSサーバの設定が必要で、OpenWRTを使用している場合は、ネットワーク→DHCPおよびDNS→一般設定→アドレス一覧でnaxclow.comにサーバのIPアドレスを設定します。こんな感じになると思います。

中華IPカメラ A9をHomeBridgeで使えるようにする
OpenWRT DNS IP naxclow.com
DNSサーバの設定

OpenWRTでなくて、ルータにカスタムDNSの設定が存在しない場合は、A9専用のネットワークを建てたり、ローカルDNSサーバを立てたりして頑張ってください。

フェイクサーバの使い方

A9カメラが同じネットワークに接続されると自動的に実行している画面にカメラにアクセスした旨が表示されます。あとは、ブラウザで表示されたURLのlocalhost(127.0.0.1:80)の部分をサーバのIPアドレスに置き換えてアクセスすれば、Liveストリーミングやスナップショットが見れます。

中華IPカメラ A9をHomeBridgeで使えるようにする
A9 V720 fake-server
カメラにアクセスした旨が表示される
中華IPカメラ A9をHomeBridgeで使えるようにする
A9 V720 fake-server
実際にアクセスしたところ

Homebridge側の設定

HomebridgeにはCamera FFmpegをインストールします。サーバ本体にffmpegもインストールしたください。configのplatforms以下を追加します。

"platforms": [
{
            "platform": "Camera-ffmpeg",
            "name": "Camera FFmpeg",
            "cameras": [
                {
                    "name": "A9カメラ",
                    "unbridge": true,
                    "videoConfig": {
                        "source": "-re -i http://172.0.0.1/dev/フェイクサーバに出てきたID/live",
                        "stillImageSource": "-i http://172.0.0.1/dev/フェイクサーバに出てきたID/snapshot",
                        "maxFPS": 30,
                        "maxWidth": 640,
                        "maxHeight": 480
                    }
                }
            ]
        },

これで、Homebridgeからの設定は完了です。あとは、iPhone、iPad等でホームアプリを開いて、アクセサリの追加で「コードがないか、スキャンできませんか?」あたりを押すと出てきます。

中華IPカメラ A9をHomeBridgeで使えるようにする
A9 V720 fake-server
ホーム HomeKit
ホームアプリ上での表示
中華IPカメラ A9をHomeBridgeで使えるようにする
A9 V720 fake-server
Homebridge
ホーム HomeKit
ホームアプリ上での表示

フェイクサーバの自動起動設定

使用できることが分かったら、今度は自動起動の設定です。まず初めにシェルスクリプトを書きます。適当な場所にstart.shとかで

#!/bin/bash

while true; do
    python3 /適当なパス/a9-v720/src/a9_naxclow.py -s
done

などを書きます。その後、chmod +x start.shで実行権限を付けて、systemdに登録します。

sudo vim /etc/systemd/system/a9server.service

内容は

[Unit]
Description=Start A9 Fake server

[Service]
ExecStart=/適当なパス/start.sh

[Install]
WantedBy=multi-user.target

とかです。リロードして、自動起動に設定します。

sudo systemctl daemon-reload
sudo systemctl enable a9server.service

これで、起動時にフェイクサーバが実行されるようになりました。フルのログは

journalctl -u a9server.service

で、ログの最後の部分のみのは

journalctl -u a9server.service -f

で見れます。

おまけ

UART

A9カメラ自体にはUARTがついており、Bootログが見れたり、コンソール?に入れたりします。今回自分が持っているA720アプリ対応のA9カメラでは分解するとこんな感じになりました。(AliExpressの「3点でUS $5.99」でたくさん買ってみたのでレビューで分解しています。)

中華IPカメラ A9をHomeBridgeで使えるようにする
a9 camera IP 分解
分解したところ(押すと記事に飛びます)

RXとTX、RX2とTX2、の2つのセットがあります。信号が出ているのはRX2、TX2です。ボーレートは115200で接続できます。

中華IPカメラ A9をHomeBridgeで使えるようにする
a9 camera IP 分解
UART
UARTを接続したところ

しばらくすると、コンソールが現れますが、ほとんど使えるコマンドがなく、WiFiの接続くらいしかできません。

中華IPカメラ A9をHomeBridgeで使えるようにする
A9 IP camera
RT Thread Operating System
起動ログの一部

Liveストリーミング機能

今回使用したA9 V720 Naxclow CameraにはLiveストリーミング機能があって、Web画面を通すことなく直接Liveストリーミングをできます。A9カメラをModeボタン長押しでAPモード(青LEDが素早く点滅)にし、そのWiFiに直接接続します。SSIDはNax_数字みたいな感じです。その後、PCで

python3 src/a9_naxclow.py -l

で見れます。ただ、自分の環境では色が反転しており、色を反転させるコードを1行追加しました。

中華IPカメラ A9をHomeBridgeで使えるようにする
追加した1行 last_img = cv2.cvtColor(last_img, cv2.COLOR_BGR2RGB)

おわりに

手順・関わる機材がそこそこ多くてちょっと手間でしたが無事にできました。AliExpressで買って眠らせてたA9 cameraの有効活用ができそうです。ただ、V720を使用しないA9 cameraも持っているのでそれの使い道はなさそうです…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)