Git Product home page Git Product logo

atomcam_tools's Introduction

atomcam_tools

これはATOMCam/ATOMCam2/AtomSwing/WyzeCamV3の機能を拡張するツールキットです。
標準的な機能に満足できないユーザーが、各自の責任において機能を拡張するためのツール・スクリプトをまとめたものです。
利用にあたって、当然のことながらカメラメーカへの問い合わせなどは厳に慎んでください。
それ以外、自由に利用できますが、仮に悪用し、他人へ迷惑をかけた場合の責任は、その設定を行った者が負うべきものであることを理解してください。
質問、動作不具合、機能のリクエストは Issues を立ててください。


Important

Ver.2.3.xからVer.2.4.0以降へのVer. Upは設定を記録しているhack.iniが変換されます
Ver. 2.3.x以下にVer.Downする場合はSD-Cardに保存されているhack.ini_0_9_9.bakファイルをhack.iniに上書きしてください。

設定項目が増えてきて分かりにくくなってきたのでVer.2.4.0からメニュー構成を変更しました。


AtomSwingの画面

WyzeCamV3の画面


実現される機能

  • WebUI (Port: 80)

    • ATOMCamのアプリから設定できない追加機能について設定します。
    • アカウントとパスワードを設定可能です。
  • CIFS(Samba4.0)サーバー(Port:137,138,139,445)

    • SD-Cardの保存されている映像のフォルダーをLAN内にguestアカウントで共有します。
  • Web経由でSD-Cardの記録映像を見ることができます。

  • NASへの保存

    • CIFS(smb)プロトコルでNASへSD-Cardへ保存している映像と同じものを保存します。
    • SMB1.0はSecurity的に非推奨のため対応しません。2.0以上に対応のNASを使用してください。
  • Time Lapse録画

    • 定期的に周期と回数を指定してTime Lapse録画を実行します。
    • SD-Cardのtime_lapse/フォルダに中間ファイルを生成し、最後にmp4に変換して指定メディアに記録します。
  • RTSPServer(Port:8554,8080)

    • RTSP streaming を送出します。
    • AtomCamの場合、Main(video0)に1080p AVC/HEVC、Sub(video1)に360p HEVCを出しています。
    • WyzeCamV3の場合、Main(video0)に1080p AVC、Sub(video1)に320p AVCを出しています。
  • avahi(mDNS)機能(Port:5353)

    • microSDカードのhostnameファイルを編集することでデバイス名を変更できます(WebUIからも変更可能)
    • hostnameの命名規則は英数と-(hyphen)のみ(RFC952,1123で規定)です。_(underscore)は使用できません。defaultはatomcamになっています。
    • mDNS対応しているOS(Windows10以降/MacOS/avahi入りlinux)からは[hostname].localでアクセスできるようになります。
  • sshd (Port:22)

    • microSDカードのroot directoryにsshの公開鍵をauthorized_keysの名前のファイルで置いてください。rootアカウントなのでパスワードではloginできない設定になっています。
    • ssh root@[ATOMCamのIPアドレス] or ssh root@[hsotname].local でloginできます。
  • webHook機能

    • 各種イベント発生時に指定したURLにpostで通知します。
  • 動体検知アラームの不感知期間を短縮

    • Atomcamの動体検知は一度検知すると5分間検知しない仕様ですが、この検知しない期間を30秒に短縮します。
    • メーカーへの迷惑防止のためCloudへの通知、video/jpegのuploadは5分以内の再送をブロックしています。このため、アプリへの通知も5分以内の再検知時は通知されません。
    • SD-Card, NASには記録されます。(検知時の12秒間のファイル、検知時を含む1分間のファイル共)
    • webHook機能もイベントごとに発生します。必要な場合はwebHook経由で通知を組んでください。RasberryPi上でNode-REDを動かすのがお手軽です。
  • atomcam_toolsのupdate機能

    • GitHubのLatestイメージをダウンロードして更新する機能です。
    • 回線状況にもよりますが、3分程度かかります。
    • AtomCamのFWのupdateはWebUIからはできません。アプリからupdateをしてください。
  • AtomCamのFW update対応

    • アプリからAtomCamのFW updateをするときにSD-Cardを抜かなくてもできるようになりました。
    • 商品とのubootと同じシーケンスでflashメモリ内の領域の消去と書き込みが行われます。
    • update途中で電源が落ちることがないよう気をつけてください。
  • AtomSwingのpan/tilt制御

    • WebUIからのpan/tilt操作

      但し自動追跡をonにしていると映像が動くことで物体認識して取り合いになります。

    • pan/tilt座標系の初期化のためのリセット動作をするボタンをメンテナンスに追加

  • AtomSwingのクルーズシーケンス制御

    • WebUIからのpan/tiltと待ち時間の登録
    • 待ち時間中の動体検知、動体追尾の選択
  • iCamera_app起動後に実行するshell-scriptの追加

    • SD-Cardにpost_icamera.shファイルが存在すると実行
    • RootFSがReadOnlyになったため、hook pointとして追加
  • FAT32+exFAT構成に対応(FAT32上限の2TB以上のSD-Cardを使いたい場合)

    • 但し、256MB以上のメディアではAtomCamのFWのbugでSD-Cardのrecordフォルダのファイルが消されていきます

    • u-bootがFATFSしか見えないので、以下の構成でSD-Cardにpartitionを切った構成に対応

    • 1st partition : FATFS boot 将来の余裕をみて16MB以上

      • factory_t31_ZMC6tiIDQNのみ入れる
    • 2nd partition : ExFAT atomtools (残りのサイズ)

      • 残りのrootfs_hack.squashfs, hostname, authorized_keys, etcを入れてください
  • Videoのbitrateの設定

    • MainのHDのチャンネルは300~2000bpsの範囲
      • 高い値にすると負荷が増えます
    • Subの360p/320pのチャンネルは100~500bpsの範囲
      • 高い値にすると負荷が増えます
  • Videoのframerateの設定

    • 1~30fpsの範囲
      • 25くらいまでが妥当、それ以上を設定するとたまに間に合わなくなって動作がおかしくなります
  • HomeKit対応

    • Apple HomeKitのアクセサリーとして機能します
    • 登録の途中で認証されていないデバイスとでますが、そのまま登録してください。

セキュリティに関わる重要事項

上記項目に書いてある各ポートが利用可能となります。
現時点ではこのポートはセキュリティ上の懸念材料となりますので、
ネットワークのセキュリティーを各自十分に保つように心がけてください。 WebUI、video、jpegに関してはLAN内からは自由に見える設定になっています。 sshは物理的にSD-Cardへアクセスして公開鍵を書かないとloginできないようにしています。 ただし、ATOMCamはSSID,passwordを平文でカメラ内のフラッシュメモリ(SD-Cardではない)に保存しているのでカメラを盗難されて中を見られるとWiFiにアクセスされる可能性がありますのでご注意ください。


ファームウェアの更新の注意

atomcam_toolsは以下のATOMCamのVersionで動作確認しています。更新した場合機能が使えなくなることもあるのでご注意ください。

ATOMCam Ver. 4.33.3.68, 4.33.3.73

ATOMCam2 Ver. 4.58.0.100, 4.58.0.104, 4.58.0.108, 4.58.0.115, 4.58.0.120

ATOMSwing Ver. 4.37.1.106, 4.37.1.108, 4.37.1.117, 4.37.1.122, 4.37.1.142

WyzeCamV3 Ver.4.36.9.139 (Experimental release) 4.36.10.xx以降のVer.では動作しません。

WyzeCamV3は未検証/未対応の機能があります。また、H.265は対応していません。


関連記事

Qiitaに少し解説を書いています。

Qiita.com ATOMCam2を少し改造して導入してみた

Qiita.com AtomSwingを少し改造して遊んでみた

atomcam_toolsのtimelapseの負荷低減


使用法

https://github.com/mnakada/atomcam_tools/releases/latest

からatomcam_tools.zipをダウンロードし、適当なツールで解凍します。

解凍されて出てきたすべてのファイルを、ATOMCamで使用可能なmicroSDカードのルートフォルダに保存します 。

複数台運用する場合はhostnameを修正して重複しない様に設定してください。

保存したmicroSDカードをATOMCamに入れて電源を入れます。

SD-Cardはできるだけ高速なものをFAT-FSで使用してください。

AtomCamのu-bootがexFATに対応していないため、exFATだとhackが認識されず起動されません。

また、メモリ不足をSD-Card上のswapで補っているため、遅いメディアだと負荷が高くなりすぎてうまく動かない事があります。(Class10以上を推奨)


Web設定画面

http://atomcam.local を開くと設定画面にアクセスできます。

mDNS未対応で開けない場合は、ATOMCam純正アプリや、IPアドレス確認ツールなどでATOMCamのIPアドレスを確認し、 ブラウザで http://[ATOMCamのIPアドレス] を開きます。

上のタイトル帯には左にタイトルとtoolsのVer.、真ん中にCameraの種類とVer.、その右にカメラ内の時間、右端に言語設定とこの説明ページへのlinkボタンがあります。

左側には各ページの切り替えのタブがあります。ここを選択する事でページが切り替わります。

以下、各タブのページの説明になります。


カメラ画像

最初に上記のカメラ画像のページが開きます。

AtomSwingの場合はPan/Tiltのスライダーがカメラ画面の左と下に表示され、つまんで動かす事ができます。

AtomCam / WyzeCamV3の場合はスライダーは表示されません。

右下にはナイトビジョンのon/auto/offの切り替えボタンがあります。


SD Card

カメラ内のSD-Cardの映像記録のフォルダーにアクセスできます。

alarm_recordはモーション検知録画、recordは連続録画、time_lapseはタイムラプスの保存されているフォルダーです。

ファイルをクリックすることでmp4, jpegファイルを開くことができます。

smbアクセスでSD-Cardを開くよりもこちらで開く方が負荷が少ないです。


録画設定

連続録画

SD-Card/NASのrecordフォルダーに1分ごとのファイルが記録されます。

モバイルアプリからアクセスされるためSD-Cardのファイル名は変更できません。そのため保存するパスの設定はできません。

モーション検知録画

ATOMCamアプリで設定した検出時にクラウドサーバーに保存される12秒の映像と静止画をSD-Card/NASにも記録します。記録されるフォルダーは alarm_record です。

!!! 「録画ファイルの自動削除」で保存日数を指定しないと一杯になっても削除されません !!!

以下、各録画項目内の設定です。

- SD-Card録画

SD-Cardへの記録をします。

- NAS録画

NASへの記録をします。

- 保存するPATH

指定フォルダ以下のファイルのPATHを指定します。最後に拡張子が自動的に付加されます。

書式はstrftimeの指定形式です。最後の/以降はファイル名として後ろに.mp4が付加されます。

例えば %Y%m%d/%H%M%S を指定すると/alarm_record/20211128/223000.mp4 というようなファイルが作られます。

フォルダがない場合は自動で作成します。

- ファイルの自動削除

保存日数で指定した日を超えたファイルを自動削除する機能です。

自動で削除したくない場合はoffにしてください。

容量にご注意ください。

- 保存日数

録画ファイルを保存しておく日数です。この日数経過すると自動的に削除されます。

- 録画スケジュール

スケジュールを選ぶと、曜日と時間帯を指定する項目が追加されます。

映像を記録する時間帯を設定します。

右端のー/+で指定項目を削除/追加できます。複数の項目はor条件で効きます。


タイムラプス設定

SD-Card/NASに指定した一定時間毎に映像を記録します。早送りのような映像が作成できます。

指定した全記録が終わるまではmp4ファイルが完成しません。

設定項目は下記以外は録画設定と同じです。

- サンプリング設定

開始する曜日と時間を指定します。

録画の完了する時間が計算されますが、この時刻の後にmp4への変換処理をするので次の録画スタートまで5分以上間を空けてください。

開始時刻から周期と回数で指定された枚数の記録をとり指定されたフレームレートの録画ファイルを生成します。

右側の+/ーで設定項目を増減できます。

サンプリングの時間設定が重ならない様に設定してください。

開始時間に他のサンプリングが実行中の場合、そのサンプリングはskipされます。

- 出力fps

出力ファイルの再生フレームレートを指定します。数値は1秒間の表示枚数です。

- 動作状態

動作中は進捗を表示します。

- 中止

動作中に停止したい場合は、Lockを外して中止ボタンを押してください。

mp4ファイルを生成して中止します。


メディア設定

SD-Card設定

- smbアクセス

onにするとSD-Cardの /record, /time_lapse, /alarm_record をSamba4.0でデバイス名のネットワークフォルダとしてLAN内に公開します。

※ 負荷が重いためストリーミングRTSPと同時使用は推奨しません。

   Webアクセスの方が負荷が少ないです。

- 録画を直接記録

offにすると一旦RAM-Diskにファイルを生成してからSD-Cardにコピーします。

onにするとSD-Cardに直接ファイルを生成します。

SD-Cardのスピードや各種設定によって最適な設定が分からないため設定を変えて試してください。

SD-Cardに記録される常時録画かモーション検知録画のファイルに効果があります。

- SD-Card消去

SD-Cardのrecord, alarm_record, time_lapseフォルダの中身を消去します。

SD-Cardにtoolが入っているため、アプリからのSD-Cardのフォーマットをdisableしています。

その代替手段として用意しています。

Lockスイッチを解除してからEraseボタンを押してください。


NAS設定

- ネットワークPATH

NASのホスト名+フォルダー名を//[ホスト名]/[フォルダー名] の形式で指定します。

- アカウント

NASにアクセスするためのアカウント(ユーザー名)を指定します。

- パスワード

NASにアクセスするためのパスワードを指定します。(このパスワードは生値でSD-Cardに保存されます)


配信設定

RTSP

※ 負荷が重いためSD-Cardのネットワークアクセスと同時使用は推奨しません。

画面は説明のために全てonにしていますが、使わないところはできるだけoffにしてください。

Main

Main(video0)側のRTSPストリーミングを行います。

HD AVCの出力になります。

- 音声

Main側の音声をon/offします。

- URL

Main側のVLC media playerの「ネットワークストリーミングを開く」で入力するURLが表示されます。

Main HEVC (ATOMCamのみ)

Main(video2)側のRTSPストリーミングを行います。

HD HEVCの出力になります。

- 音声

Main側の音声をon/offします。

- URL

Main HEVC側のVLC media playerの「ネットワークストリーミングを開く」で入力するURLが表示されます。

Sub

Sub(video1)側のRTSPストリーミングを行います。

360p/320pの出力になります。

- 音声

Sub側の音声をon/offします。

- URL

Sub側のVLC media playerの「ネットワークストリーミングを開く」で入力するURLが表示されます。

RTSP over HTTP

RTSPをUDPでなくHTTP経由で送出します。

AtomCamからPCまでの経路でのパケット伝送が保障されますが、再送により遅延が発生する可能性があります。

変更するとRTSP Main/SubのURLが変わります。

パスワード認証

RTSPにパスワード認証を要求します。

- アカウント

RTSPのアカウントを設定します。

- パスワード

RTSPのパスワードを設定します。

HomeKit

HomeKitのOn/Offを設定します。

Onにしたあと設定ボタンを押すとしばらくしてQR-Codeが表示されます。

iOSのホームアプリで右上の+を開いてアクセサリを追加の画面でQR-Codeを読み取ってください。

登録完了するとQR-Codeが消えて下記の画面に切り替わります。

強制接続解除

iOS側で登録を解除しても、解除のタイミングによっては設定が残ることがあります。

iOSで解除してもQR-Codeが表示されない場合は強制接続解除を実行してください。

HomeKitのアクセサリーは同時に複数のiOS/HomeHUBには接続できません。

(iOS/HomeHUBに複数のアクセサリーは登録できます)

HomeKitには音声は出力されません


イベント通知

WebHook

動体検知や録画ファイルの書き込み等のイベントのタイミングで指定のURLに通知します。

- 通知URL

WebHookを受け取るURLを指定します。今のところ実験的な実装なのでLAN内のnon-secureなpostを想定しています。

{ type: 'event名', data: あれば何か }の形式でpostします。

- 未認証接続許可

URLが自己証明書等の認証されていない証明書を提示しても接続を許可します。

- 動体検知

動体検知が働いた時に通知URLに type: alarmEvent をpostします。

- 動体認識情報

動体検知の認識情報取得時に通知URLに type: recognitionNotify, data: recognition data をpostします。

- 動体検知録画終了

動体検知での録画が終了した時に通知URLに type: uploadVideoFinish をpostします。

- 動体検知録画転送

動体検知での録画が終了した時に通知URLに mime:video/mp4で録画ファイル をpostします。

- 動体検知静止画保存

動体検知での静止画保存完了時に通知URLに type: uploadPictureFinishをpostします。

- 動体検知静止画転送

動体検知での静止画保存完了時に通知URLに mime:image/jpegで静止画ファイルをpostします。

- 定常録画保存

1分間の定常録画が終了するたびに通知URLに type: recordEventをpostします。

- タイムラプス開始

タイムラプス開始時に通知URLに type: timelapseStart, data: timelapse pathをpostします。

- タイムラプス記録

タイムラプス記録のたびに通知URLに type: timelapseEvent, data: timelapse pathをpostします。

- タイムラプス録画終了

タイムラプス録画終了時に通知URLに type: timelapseFinish, data: timelapse pathをpostします。


クルーズ設定(AtomSwingのみ)

Swing座標初期化

Swingのpan/tilt座標系を初期化します。

両側の端点に当てることでモーターの動作範囲をリセットさせるための動作をします。

クルーズ動作

クルーズ動作のOn/Offの設定とシーケンス登録

以下の項目を登録順に動作し、最後までいくと最初に戻って繰り返します。

シーケンスの1項目を選択中は薄緑の色がつきます。色がついてる項目を編集できます。

右端のー、+マークで項目の削除、追加ができます。

編集するときは、一旦クルーズをOffにして設定してからにしないとカメラの方向が動いてやりにくいです。

- pan, tilt,速度

カメラを向ける方向と移動時の速度を指定します。

pan,tiltは数値を直接入力するか、Jpeg表示の左、下にあるスライダーで方向を制御しても入力できます。

速度は1が低速、9が高速です。

- 動作後待機時間

カメラの移動が終わってから、次の移動までの待機時間を秒数で指定します。

- 検知

待機時間中に動体検知すると、待機時間を延長します。

動体検知が終わってからの待機時間は下の項目の検知後待機時間になります。

- 追尾

待機時間中に動体検知すると、動体を追尾し、待機時間を延長します。

検知後待機時間は上記の検知と同様です。

- 検知後待機時間

検知後の待機時間中も動体検知は働いて、待機時間の間検知しないと次のシーケンスに進みます。

- 追尾速度

追尾時の移動速度です。

速度は1が低速、9が高速です。


システム設定

デバイス設定

- デバイス名

カメラのデバイス名を設定します。 ここで設定した名前はCIFS(Samba) / mDNS(avahi) / NASのフォルダー名に使用されます。

- ログイン認証

アカウントとパスワードを設定することでWebUIの簡易ログイン認証を行います。

md5によるdigest認証なので安全ではありません。LAN内での簡易認証として使用してください。

- アカウント

1文字以上の英数記号を使用できます。但し':'と'\'は使用できません。

特にエラーチェックはしてないので入れるとおかしくなるかもしれません。

- パスワード

1文字以上の英数記号を使用できます。但し':'と'\'は使用できません。

特にエラーチェックはしてないので入れるとおかしくなるかもしれません。

動体検知

- 動体検知周期の短縮

動体検知アラームの不感知期間を5分から30秒に短縮します。

設定変更時には反映するために再起動されます。

- 動体検知録画upload停止

動体検知時にAtomTechのawsサーバーに12秒間の録画データがuploadされますが、このuploadを停止します。これを停止するとAtomCamのアプリから録画データを見る事ができなくなります。

設定変更時には反映するために再起動されます。

ビデオ設定

- フレームレート

1秒あたりのフレーム数(1-28fps)を設定します。

- Mainの帯域

Main HDのビットレート(300-2000bps)を設定します。

- MainHEVCの帯域 (ATOMCamのみ)

Main H.265/HEVC HDのビットレート(300-2000bps)を設定します。

- Subの帯域

Sub360p/320pのビットレート(100-500bps)を設定します。


メンテナンス

モニタリング

- Network確認

LANとの接続を確認し、再接続を試みます。

- 異常時再起動

LANとの接続ができない状態が継続した場合、システムの再起動をします。

- ping

定期的な疎通確認を行います。

- 通知URL

疎通確認をするURLを指定します。

ここで指定したURLにhttp getを1分毎に行います。

Update

- Update

GitHubのLatest VersionにUpdate します。GitHubからLatest Versionをダウンロードして展開して書き込み再起動します。180秒くらいかかります。

現在のtoolのバージョン(タイトル部に表示されています)がLatest Versionより古い場合のみUpdateすることができます。

台数が多い場合や回線が細い場合、PCでGitHubのLatest Versionのatomcam_tools.zipをダウンロードし、展開せずにそのままSamba経由でSD-Cardのupdateフォルダに入れて、リブートすることでもUpdateできます。この場合はVerのチェックは行われません。

- カスタム更新ZIPファイル

Updateの更新ZIPファイルを指定のURLから取得します。

独自のpackage buildをする場合の用途になります。

再起動

- 定期リスタート

カメラのシステムを指定したスケジュールで再起動します。

ネットワークの不調など、何らかの理由でATOMCamが連続稼働することができない場合の対応ですが、必ずしもこれによって問題が解決するとは限りません。

- リブート

AtomCamを再起動します。

Lockスイッチを解除してRebootボタンを押してください。

再起動に60~80秒くらいかかります。


Copyright

LICENSEファイルを参照してください

atomcam_tools's People

Contributors

bakueikozo avatar geckolink-com avatar mnakada avatar thematrixdev avatar virmaior avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atomcam_tools's Issues

swapファイルがないと起動しない at AtomCam2

ReleaseにあったzipをSDカードにインストールしても、再起動を繰り返しました。
適当に45MB程度のswapファイルを作った所起動しました。

AtomCam2 ファームウェアバージョン4.58.0.66 にて確認。

原因までは追えていません。

health checkサーバーへのhttp getの定期送信 バグ?

AtomCam2 Ver.4.58.0.65
atomcam_tools Ver.1.2.18

モニタリングの動作
Ping:ON
通知URL:http://192.168.1.43/index02.html

configs/overlay_rootfs/scripts/health_check.sh を読み取ると次のような動作かと思っています。
1.通知URLをGETし、応答があればレスポンスをhealthcheck.logに書きこむ。
2.通知URLをGETし、応答が無ければ、1秒遅延し3回リトライし中断時間をhealthcheck.logに書きこみretry_countを+1する。
3.retry_countが3以上になったら、wlan0をdown/upする。
4./media/mmc/atomhack.log に 日時: WiFi restart を書きこむ。

ローカルネットワーク上にalmalinuxサーバーを置き、apacheを起動し、
http://192.168.1.43/index02.html をgetすると {"res":"OK"}を返すようにしています。
次healthcheck.log の14:40:36 ~ 14:53:17 はサーバーのLANコネクタを外した状態です。
14:48:13 でwlan0をdown/up し atomhack.log に日時: WiFi restartが記録されるのではないかと思いますが
何も出力されません。

動作確認時のログを送ります。
[root@atomcam:~]# tail -f /media/mmc/healthcheck.log
2022/04/18 14:35:31 : {"res":"OK"}
2022/04/18 14:36:32 : {"res":"OK"}
2022/04/18 14:37:33 : {"res":"OK"}
2022/04/18 14:38:34 : {"res":"OK"}
2022/04/18 14:39:35 : {"res":"OK"}
2022/04/18 14:40:36 :
2022/04/18 14:43:09 :
2022/04/18 14:45:41 :
2022/04/18 14:48:13 :
2022/04/18 14:50:45 :
2022/04/18 14:53:17 :
2022/04/18 14:55:49 : {"res":"OK"}
2022/04/18 14:56:53 : {"res":"OK"}

[root@atomcam:~]# tail -f /media/mmc/atomhack.log
total used free shared buffers cached
Mem: 74192 71200 2992 0 72 25700
-/+ buffers/cache: 45428 28764
Swap: 131068 14032 117036
Mon Apr 18 13:43:17 JST 2022
total used free shared buffers cached
Mem: 74192 71420 2772 0 96 25496
-/+ buffers/cache: 45828 28364
Swap: 131068 14744 116324
1970/01/01 09:00:25 : Reboot & Start watchdog

確認のほどお願いいたします。
当方の勘違い、お気づきの点ありましたらお知らせください。

set video_callback bitrate

@mnakada, are you familiar with a way to set the bitrate (kbps) for the video hooked by video_callback? perhaps it could be adjusted in the source.

Record video on camera on-demand

I have been storing purely video (with no audio) from the camera.
Recently I want to store both video and audio.

This is my situation.
https://stackoverflow.com/questions/72135598/recording-rtsp-steam-with-python

I cannot find any good solution to do the detection and store the file.

May I know if it is possible to store file on-demand on the camera?
That is, by calling a REST-API to the camera, the camera starts recording, stop recording and send out the video.

camera connection lost

This may not be related to be a problem of this hack.

May I know what could be possible reason of this?

At 20:52:11, my Python script has just detected motion from RTSP from this camera.
The saved video ended at 20:52:35.
I have received the video in Telegram at 20:53.
At 20:54, I have got a notification that there is no PING from this camera for 2 minutes.
Checking the Atom App the camera was grey-out.
No connection to the web interface or SSH.
Checking the camera, the LED was flashing blue and then yellow.
https://user-images.githubusercontent.com/19472561/161760258-790c0e3f-1259-45dc-9804-774b9a3fa998.mp4

I have not restarted the camera yet.
Is there any log file I can find to debug?

Thanks.

[Feature Request] Enhance "cruise" function

The official "cruise" function is kinda stupid.
I have a Atom-Swing on my home main entrance.
The "cruise" function focuses on all 360-degree, but my door takes up 180-degree.

May I suggest to add an enhanced version of "cruise" function on this hack?
That, we can limit the degree of swing.
And also, after a motion event, restore the camera to original position and start "cruising" again.

Thank you very much.

timelapseについて

サイクルの終わったtimelapseが同じ設定で繰り返すのは私にとってとても有用です
どうかそのような設定も残してください。
それからファームウェアの動作確認のAtomCam2の4.58.0.95ですがβ版なのでしょうか?わたしのAC2では4.58.0.91が最新と通知されます。

RTSPにて音が出ていない…?

本日気が付いたのですが、音声オプションを有効にしていてもRTSP Mainに音声が乗らないようです。
SynologyのNASにある録画サーバーと、WindowsからVLCにて確認しました。
Subのほうでは音声出力されているようです。
うちで運用している8台のAtomcam全てで同じ状態なので、個体差ではないと思うのですが…
何か状態を確認する方法はありますか…?

mp4write opportunity

Thank you for your work on mp4write.c, it will solve lots of issues that we have experienced.

A question, right now the way iCamera works:

  1. iCamera writes to /tmp/XX.mp4
  2. iCamera then does mv /tmp/XX.mp4 /media/mmc/record/20220519/XX.mp4

with the modification you have in mp4write.c, now the process is:

  1. iCamera writes to /media/mmc/tmp/XX.mp4
  2. iCamera when does mv /media/mmc/tmp/XX.mp4 /media/mmc/record/20220519/XX.mp4

how can we skip step #2, so prevent additional load caused by mv moving the file? or does mv cause no load on the sdcard / cpu?

thank you for your time!!!

WyzeにRTSP機能の説明か検討

突然の連絡ですみませんが、私は日本に住んでいるにも、atom知らず、wyzev3の5個を持ち、Wyzeは最近先に使ったハックをブロックしていました。それに応じて、@mnakadaさんの進化したatomcam_toolsに参考し、@gtaxspecさんはだいぶ似ているWyzeV3のSDだけにインスタールするツール・スクリプトを作っています。

その中に、RTSP機能も付けたいところですが、atomcamの方にあるiCameraとwyzeの方のiCameraはどこに異なるため、 wyzenにもて利用できるlibcallback.soはありうるかどうかを検討したいです。必要に応じて、Wyze3の1個をmnakadaさんへ配送できるかもしれません。

(英語にhttps://github.com/gtxaspec/wz_mini_hacks/issues/8で、同じことについて打てます。)

h265 1080p channel 2?

@mnakada, i discovered in atomcam, there is channel 2 which outputs 1080p @h265, do you know what this is used for? I don't believe it's used in the atom app

CHANNEL 0    1920x 1080     START H264
CHANNEL 4    1920x 1080      STOP JPEG
CHANNEL 2    1920x 1080     START H265
CHANNEL 1     640x  360     START H265
CHANNEL 5     640x  360      STOP JPEG

web server English version

I went ahead and translated the titles in the vue page into English (virmaior@7346b2e) but I'm not sure how best to contribute this to atomcam_tools.

This should be useful for any developers outside of Japan who are working on bringing similar functionality to wyze .

HTMLとJSは知っているけど、VUEは全然知らない. And looking at VUE's il8n method, it looks it would be more annoying than helpful to use since it would make it so every title and tooltip needs to be a variable for substitution.

CORS error on get_jpeg.cgi

I am embedding the camera image onto Home-Assistant. It shows a CORS error:

Access to XMLHttpRequest at 'https://atom.mydomain.com/cgi-bin/get_jpeg.cgi' from origin 'https://webserver.mydomain.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

May you add the header on get_jpeg.cgi page?

Thanks.

RTSP and offical app live view

@mnakada,

I have observed when using the libcallback to hook iCamera for rtsp, that using the official app "ATOM" or in my case, "wyze", the live-view feed does not work unless "360p" mode is selected, HD and SD mode does not produce any video. Have you experienced this?

Ubuntu on Windows、AlmaLinuxで make.sh がエラーで止まります。

久しぶりに動作確認しました、git pull して ./make.sh
何か追加の設定が必要でしょうか、お気づきの点ありましたらご教授ください。

Ubuntu on Windows
$ git log -n 1
commit 868fa97 (HEAD -> main, tag: Ver.1.3.7, origin/main, origin/HEAD)
Author: Mitsuru Nakada
Date: Sat May 21 00:27:06 2022 +0900

Ver.1.3.7
$ ./make.sh
docker-compose ps | grep builder || docker-compose up -d
atomcam_tools_builder_1 tail -f /dev/null Exit 255
docker-compose exec builder /src/buildscripts/build_all | tee rebuild_date +"%Y%m%d_%H%M%S".log
ERROR: No container found for builder_1
centos@DESKTOP-T4IL0LP:~/atomcam_tools$

AlmaLinux
[root@localhost atomcam_tools]# git log -n 1
commit 868fa97 (HEAD -> main, tag: Ver.1.3.7, origin/main, origin/HEAD)
Author: Mitsuru Nakada
Date: Sat May 21 00:27:06 2022 +0900

Ver.1.3.7
[root@localhost atomcam_tools]# ./make.sh
docker-compose ps | grep builder || docker-compose up -d
atomcam_tools_builder_1 tail -f /dev/null Exit 137
docker-compose exec builder /src/buildscripts/build_all | tee rebuild_date +"%Y%m%d_%H%M%S".log
[root@localhost atomcam_tools]#

Cannot open '/openmiko/build/buildroot-2016.02/output/images/initramfs.cpio'

I cloned the repo and successfully complied the kernel and exit, when I came back, the compilation failed.

  /atomtools/build/buildroot-2016.02/output/build/linux-custom/scripts/gen_initramfs_list.sh: Cannot open '/openmiko/build/buildroot-2016.02/output/images/initramfs.cpio'
/atomtools/build/buildroot-2016.02/output/build/linux-custom/usr/Makefile:67: recipe for target 'usr/initramfs_data.cpio.lzma' failed
make[2]: *** [usr/initramfs_data.cpio.lzma] Error 1
Makefile:795: recipe for target 'usr' failed
make[1]: *** [usr] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** wait: No child processes.  Stop.
package/pkg-generic.mk:195: recipe for target '/atomtools/build/buildroot-2016.02/output/build/linux-custom/.stamp_built' failed
make: *** [/atomtools/build/buildroot-2016.02/output/build/linux-custom/.stamp_built] Error 2

there's no /openmiko directory, unlike before

root@dd73ff141104:/atomtools/build/buildroot-2016.02# ls /
atomtools  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  src  srv  sys  tmp  usr  var
root@dd73ff141104:/atomtools/build/buildroot-2016.02# ls -lia output/images/
total 133880
369599 drwxr-xr-x 1 root root        72 Jun 14 13:06 .
 38788 drwxr-xr-x 1 root root       100 Jun 25 04:38 ..
369600 -rw-r--r-- 1 root root    773120 Jun 25 04:38 initramfs.cpio
369601 -rw-r--r-- 1 root root 134217728 Jun 14 13:06 rootfs.ext2
369602 -rw-r--r-- 1 root root   2097551 Jun 14 13:04 uImage.lzma

libcallback improvement

@mnakada, I have a fork of libcallback, that I have added the following features to (there are still more modifications I plan to attempt, but there are setbacks):

support simultaneous output of both streams of the camera, 1080 and 360, output to two different v4l devices (video_callback.c)
support both audio streams of the camera (audio_callback.c)
support tuning of the image signal processor variables (imp_control.c)

I would like to share, in case you have not seen yet,
https://github.com/gtxaspec/wz_mini_hacks/tree/master/src/libcallback_wz_mod

If you want to think about implementing these in atomcam_tools, perhaps you or your atomcam users could benefit from these modifications, especially if they are used in conjunction with the RTSP server, it supports multiple video devices.

thank you again for your work with the atomcam_tools project.

get_jpeg.cgi で 画像サイズ&クオリティを指定したい

いつもありがたく使わせていただいています。

カメラ管理画面で表示されているスナップショットだけを表示する仕組み(フロントエンド)を作ったのですが、
設置位置の関係などから帯域も細かったり、複数アクセスだとしんどそうなので画質を指定できるようにできないでしょうか?
(書きながら思ったのですが、 IMP_Encoder_* 周りが重いならそもそも画質を指定できても複数はしんどいですね。。)

以下駄文

PRしてみようと思ってここらへんをいじると、うまくいくんだろうか?とまでは当たりをつけたのですが
私のスキルでは開発環境を作ることさえできませんでした 😢
https://github.com/mnakada/atomcam_tools/blob/main/libcallback/jpeg.c#L80-L83

atomcam_toolsを、microSD 64GB、128GB、256GB に対応可能でしたらお願いします

ATOM CAM 2、ATOM CAM SWINGで atomcam_tools を利用させていただいています。
もともとサポート対象外なのですが、32GBを超えるmicroSDも使用可能なようです。

microSDカードへの録画時間を延ばしたいためatomcam_tools を128GBのmicroSDに書きこんで起動しましたが

ping応答はあります。
httpでは応答がありません
sshでは接続拒否されます。

32GBまではFAT32、それ以上はexFATのようです。

atomcam_toolsを、microSD 64GB、128GB、256GB に対応可能でしたらお願いします。

Many requests to google.com

I have just found there are many google.com requests coming from the cameras.
There are more than 30000 requests in last 24 hours.
image
image

I have briefly searched in the source code.
I cannot find anything related to google.com

Does anyone have the same issue?

RTSP secondary channel

Hello there.

Recently I am playing with Frigate and Double-Take.

Frigate suggest using 5 FPS for AI object detection, to preserve CPU workload.

Is it possible to stream H264 5FPS via secondary channel?

Thanks.

ローミング環境での動作について

お世話になっております。
以前ブログでコメントさせていただいた際に素早い対応を頂き、ありがとうございました。
このような素晴らしいソフトウェアをご厚意で公開していただき、本当に頭が下がる思いです。

今回はご相談なのですが、現在私の環境ではWiFiがローミングの構成になっており、建物の各所にAtomcamが設置され、それらがRTSPの録画サーバーにデータを送っているという形になっております。
Atomcam起動直後は一番近いAPに接続し通信を始めるのですが、APになんらかの問題が発生したり再起動したりすると、Atomcamは次に近いAPに繋がります。
ここまではいいのですが、一番近いAPが復旧してもそちらに再接続されず困っております。

一応調べたところ、このような記事を見つけました。
https://wiki.archlinux.org/title/wpa_supplicant#Roaming
ようは、wpa_supplicantのデフォルト設定ではローミングが比較的臆病で、信号が完全に喪失しないと弱いAPに繋がったままになる。
wpa_supplicant.conf内にbgscan="simple:30:-70:3600"と記述を入れることで、信号が-70未満の場合30秒ごとにスキャンしてくれるため、ローミング環境での動作が改善するということだそうです。

ただ、sshからtmpディレクトリ内のwpa_supplicant.conf内に記述するところまでは出来るのですが、それらを適応する方法が分からず手詰まりとなっております。
以前AtomcamはiCamera_appにてwpa_supplicant.confが生成されるため、記述内容を変えるのは難しいと見掛けた気がするのですが、例えばwpa_cli -i wlan0 reconfigureなどで、変更した記述を適応するなどは不可能でしょうか。
試したのですがwpa_cliが存在しないとのことで実行できませんでした…
その他にもローミング環境下での何か良い改善方法がありましたら、ご教授いただけましたら幸いです。

iPadのsafari、chromeで設定ボタンが表示されません

atomcam_toolsをiPadで利用したところWebUIで「設定ボタン」が表示されませんでした。
win10_edge
Win10のedge 右下に「設定」が表示されています。

firefox
iPadのfirefox 「設定」が表示されません

chrome
iPadのchrome 「設定」が表示されません
画面コピーをアップロードします、ご確認の程、よろしくお願いします。

dwc2 module kernel

@mnakada,

I have a question, and seek your input. Maybe you have some ideas, if you are familiar the usb host driver.

When I attempt to compile dwc2 as a kernel module (for atomcam2, but same issue with the wyze cam too), and then load it, nothing happens. No output in dmesg, and nothing in lsusb.

It works just fine when compiled in to the kernel, obviously

very intriguing.

懸案事項いろいろ

素晴らしいツールの公開、感謝しております。
現在、次の3点について当方、懸案事項を感じております。
ご教授いただけましたら幸いです。

(1)録画データのコマ落ちについて
個別の録画容量を確認したところカメラによってばらつきが大きい状況が起こっています。
容量が小さいとコマ落ちが大きく、容量が7MBを超えるとほとんどコマ落ちがありません。
次ような構成でそれぞれローカルにSMBサーバーを立て録画しております。

・フレッツ光ネクストに接続した無線LAN AC2を1台
1台目 AC2 (7,312,939 バイト)~(7,920,754 バイト)

・PocketWifi FS030W に接続したAC2を2台
1台目 AC2 (2,304,571 バイト)~(7,733,945 バイト)
2台目 ACS (6,888,550 バイト)~(7,694,773 バイト)

・PocketWifi FS030W に接続したAC2を4台
1台目 AC2 (2,304,571 バイト)~(7,394,378 バイト)
2台目 AC2 (4,760,891 バイト)~(7,694,773 バイト)
3台目 AC2 (1,530,354 バイト)~(7,309,110 バイト)
4台目 AC2 (1,760,021 バイト)~(7,293,299 バイト)

毎分00秒頃、アップロードが始まって、競合が起こり全て転送が終わればコマ落ちがなくなるように感じます。
ほとんどの場合後半の50秒~はコマ落ちの頻度は少ないです。
コマ落ちの原因がSDへの書き込み速度によるものか、sambaへの書き込みによるものか不明ですが、
カメラ個別に 10秒ずつ遅延を設定できると効果が確認できるかと思っています。

(2)稼働状況の参考値とするため、CPUまたはその他のチップの温度が知りたい。
一般的なlinuxのコマンドでは取得できなかった。
カメラの温度を取得できる方法をご存知でしたら教えてください。
[root@atomcam:~]# cat /sys/class/thermal/thermal_zone0/temp
cat: can't open '/sys/class/thermal/thermal_zone0/temp': No such file or directory

(3)有線LAN(OTG)での接続について
bakueikozo/atomcam_usbether のTest.tar では
ifconfig で eth0が現れるのですが、現状見えません。
eth0が見えるように改良して頂けませんか。
eth0が見えれば、次のスクリプトを組み込むだけだと思われます。
当方で確認して報告いたします。

echo "pre.sh begin--------"

ifconfig eth0 up
udhcpc -i eth0
sleep 5
mount -o bind /media/mmc/scripts/wpa_cli.sh /bin/wpa_cli

echo "----------end---------"

----------wpa_cli.sh begin--------
#!/bin/sh

echo 'wpa_state=COMPLETED'
echo ip_addresss=ifconfig eth0 | awk '/inet / {print $2}' | awk -F: '{print $2}'
----------wpa_cli.sh end--------

有線LANで利用したい理由
1.有線LAN接続により無線LANの電波状況による伝送ロスを考慮せずに検証・運用できる。
2.ACコンセントの無い場所でも、POE接続を利用することにより100mまでLANケーブルの接続のみで設置できるので電気工事の必要がない。
3.すきま用LANケーブル等の利用で有線LANで屋外への設置もし易い。
4.AtomCam2の電波感度にばらつきがあるように感じられる。特にSwingは首を振るため向きによって電波強度の変動が感じられる。

ご検討の程よろしくお願いします。

audio playing support

It seems I have seen audio (file) playing is supported?
May I know how to do it?
Thanks.

定期リスタートの時間設定が効かない

定期リスタートの時間設定が効かない

長期運用時にATOM CAM2が音信不通になることがあるため毎日定時に再起動させています。
定期リスタート機能のおかげで、音信不通になっても定時に復旧できるようになり助かっています。

ATOM CAM2 3台でテストしています。
月曜日から日曜日まで毎日14時ごろ再起動する設定です。
設定情報、確認情報は次の通りです。
動作環境3台とも
ATOMCam2 Ver.4.58.0.65
atomcam_tools Ver.1.2.15

毎日再起動は実行されていますが時間は02:00です。

設定に不備がありましたら、ご指摘ください。
よろしくお願いします。

1台目 月曜日から日曜日 14:02
/atom/tmp/hack.ini の内容
cat /atom/tmp/hack.ini
DIGEST=
REBOOT=on
REBOOT_SCHEDULE=2 14 * * 0:1:2:3:4:5:6
RECORDING_ALARM=on
RECORDING_LOCAL_SCHEDULE=off
RECORDING_LOCAL_SCHEDULE_LIST=
RTSPSERVER=off
RTSP_OVER_HTTP=off
RTSP_AUDIO=off
STORAGE_SDCARD=on
STORAGE_SDCARD_PUBLISH=off
STORAGE_SDCARD_PATH=%Y%m%d/%H%M%S
STORAGE_SDCARD_REMOVE=on
STORAGE_SDCARD_REMOVE_DAYS=1
STORAGE_CIFS=on
STORAGE_CIFS_PATH=%Y%m%d/%H%M%S
STORAGE_CIFS_REMOVE=on
STORAGE_CIFS_REMOVE_DAYS=5
STORAGE_CIFSSERVER=//192.168.100.30/Share
STORAGE_CIFSUSER=
STORAGE_CIFSPASSWD=
WEBHOOK=off
WEBHOOK_URL=
WEBHOOK_ALARM_EVENT=off
WEBHOOK_ALARM_INFO=off
WEBHOOK_ALARM_VIDEO_FINISH=off
WEBHOOK_ALERM_VIDEO=off
WEBHOOK_ALARM_PICT_FINISH=off
WEBHOOK_ALERM_PICT=off
WEBHOOK_RECORD_EVENT=off
WEBHOOK_TIMELAPSE_EVENT=off
WEBHOOK_TIMELAPSE_FINISH=off
MINIMIZE_ALARM_CYCLE=off
[root@atomcam010:~]#

2台目 月曜日から日曜日 14:03
REBOOT_SCHEDULE=3 14 * * 0:1:2:3:4:5:6

3台目 月曜日から日曜日 14:07
REBOOT_SCHEDULE=7 14 * * 0:1:2:3:4:5:6

atomhack.log に再起動時間が記録あり、3台とも02:00に再起動をしているようです。
1台目
Fri Apr 1 01:27:12 JST 2022
total used free shared buffers cached
Mem: 74192 63660 10532 0 524 15012
-/+ buffers/cache: 48124 26068
Swap: 131068 14140 116928
2022/04/01 02:00:30 : Reboot & Start watchdog
Fri Apr 1 03:01:01 JST 2022
total used free shared buffers cached
Mem: 74192 65984 8208 0 536 20956
-/+ buffers/cache: 44492 29700
Swap: 131068 9044 122024

2台目
Fri Apr 1 01:25:05 JST 2022
total used free shared buffers cached
Mem: 74192 62024 12168 0 380 19644
-/+ buffers/cache: 42000 32192
Swap: 131068 19456 111612
2022/04/01 02:00:32 : Reboot & Start watchdog
Fri Apr 1 03:01:19 JST 2022
total used free shared buffers cached
Mem: 74192 67328 6864 0 676 24852
-/+ buffers/cache: 41800 32392
Swap: 131068 12072 118996

3台目
Fri Apr 1 01:21:06 JST 2022
total used free shared buffers cached
Mem: 74192 71432 2760 0 96 25140
-/+ buffers/cache: 46196 27996
Swap: 131068 21520 109548
2022/04/01 02:00:37 : Reboot & Start watchdog
Fri Apr 1 03:01:13 JST 2022
total used free shared buffers cached
Mem: 74192 68360 5832 0 524 20484
-/+ buffers/cache: 47352 26840
Swap: 131068 11376 119692

設定の曜日のズレ

・timelapse録画
・定期リスタート
ともに設定した曜日が設定の度にずれていきます。(土→金→木)
曜日の並びも日曜先頭のほうがありがたいです。
よろしくお願いいたします。

動体検知時のデータについて

AtomCAMでやりたいことを叶えてくださってありがとうございます。
早速使わせていただいているのですが、WebHookから送られてくるデータについて教えて下さい。

  • やりたいこと
    • アプリで動体検知すると、検知した種別(人、動物、動体 etc..)が拾えますが人の場合だけ取りたいです。

今回これを実現するためにWebHookを有効にして雑に作ったHTTPサーバで投げられるデータを確認していたのですが
動体検知動体認識情報 の JSONデータにある data の値がCSVで受信していますがこのデータはどういった意味を持つでしょうか?
このデータから動体種別を導くことは可能なのでしょうか?

Record video on demand

Hi!

I'm looking for a way to record a video when launching a command. We could imagine for example:

cmd record_video file_path

Currently there are only two possibilities:

  • record continuously
  • record when a motion is detected

Is there a way to do it?
Thanks

有線LANからもWEBAPP、sshでの接続が可能になるとありがたいです。

有線LAN OTG接続への対応お願いします。

ATOM Cam2にUSB-Ethernet変換アダプタを使って有線LANで使用する
https://honeylab.hatenablog.jp/entry/2021/06/26/235714
bakueikozo/atomcam_usbether を試してみたところ問題なく動作しました。

atomcam_tools が有線LANからも接続可能になると、無線LAN接続の不安定な件への対処が出来そうです。

接続に使用した機材は次の部品です。
但し、マイクロUSB端子の樹脂部分が厚いので、カッター等で削らないと、AtomCam2に挿できません。
https://www.amazon.co.jp/gp/product/B071D7XGPX/

こちらの商品だと加工は必要ありませんが取り寄せに時間が掛かります。
https://item.rakuten.co.jp/robotshopjapan/rb-adu-208/

ご検討の程よろしくお願いします。

libcallback waitmotion

@mnakada

In waitMotion.c,

what should be the proper behavior for "clear"?

should this only appear after motion detected,if not

why would clear appear before the timeout is reached?

example:

cmd waitmotion 30 in a while loop

22/07/12-20:19:41 detect 197 229 202 263 - -
22/07/12-20:19:54 clear
22/07/12-20:19:59 clear
22/07/12-20:20:05 clear
22/07/12-20:20:12 clear
22/07/12-20:20:47 timeout
22/07/12-20:21:43 clear

1.5.0にVersionUPしたらWebUIの文字が表示されなくなった

image

Windows11 Chrome バージョン: 103.0.5060.114(Official Build) (64 ビット)

AC1/AC2/ACSwingいずれでも発生

と言う環境ですが、Javascriptの内容はこれから確認しようかと思っています。他に同じ症状の人はいませんでしょうか?
Configurationは反映されているように見えていまして、表示だけの問題だとすると文字コードとかの問題でしょうか?

atomcam_toolへのPOST連動をしたい、ナイトビジョン用赤外線ライト、スリープ。

AtomCamのアプリで手動設定は可能なのですが他システムとの連動ができるとありがたいです。

ナイトビジョン用赤外線ライト、スリープについては人感センサーと連動してクライアントからpostで
コマンドを送信しon/offできればありがたいと思っています。

利用シーンは次のように考えています。

1.夜間でも街灯の照明があればきれいに映るのですが、照明が当たらない場所へ被写体が近づくと明瞭に映らないため、
撮影したいエリア付近に人感センサーを設置し、その反応によりナイトビジョン用赤外線ライトをONする命令をpostし
atom cam の赤外線ライトを点灯させると、被写体が明瞭に映るのではと思います。適当な時間でOFFする命令をpostし消灯します。

2.カメラの映像をファイルサーバーに録画しているのですが、時間帯によってクライアントからのpostで
録画が不要なカメラをスリープにするとファイルサーバーの容量を効率的に利用できるかと思います。

NAS録画/NASモーション検知録画の機能提供、ありがとうございます。
ディスクの必須容量ですが、
1分8MB×60m×24h=11520MB
カメラ1台、1日 11.52GB
10日連続保存確保として、115.2GB
4台同時保存で 460.8GB となります。
1TBのHDDにLinuxをインストールした場合 /home に850GB程度確保することができます。

計算上は4台で約20日、計算上は8台で約10日程度 連続録画できると思われます。

alert録画も併用するとその容量分、連続録画できる時間が短くなります。

具体的な希望としては
1.Web設定画面 へのスイッチ追加

機能設定
ナイトビジョン用赤外線ライトのON/OFF
スリープのON/OFF

2.apiの追加
postするコマンドの例こんな感じでしょうか お任せします。
{"exec":"Infrared light", "sw": "on"}
{"exec":"Infrared light", "sw": "off"}

{"exec":"sleep", "sw": "on"}
{"exec":"sleep", "sw": "off"}

ソースを拝見し勉強させていただいております、プルリクエスト出来るように精進いたします。
ご検討の程よろしくお願いします。

CAMのスピーカーから任意の音(wav)を出力する機能について

大変有用に利用させていただいています。

CAMのスピーカーから、事前に用意しておいた任意の音(wav)を出力する機能は無理でしょうか?
(wavファイルをCAMに流し込んでWebUIのボタン押下で音出力、など)

今でも純正アプリの機能で、スマホのマイクからCAMのスピーカーへの音声出力が可能ですが、PC/マイコンから任意のトリガーでWebUI(の操作を疑似的に)操作して、CAMからwavを出力したいです。

→具体的には、条件を満たすと「こんにちは」とCAMから事前に用意していた音声を出力。

あるいは筋違いかと思いますが、もし現状のままでも実現できるヒントを、何かご教授いただけると大変ありがたいです。alsamixerではloopbackしか検出されず、aplayでの再生も無音です。
toolsのソースを拝見し、cmd.cgiにwebhookするとwebcmd.shが実行する仕組みを理解(および動作を確認)しましたので、もしaplayで再生できるようになれば、webcmd.shを書き換えて自力でも出来そうに思います。
ご検討をお願いいたします。

USB-NCM機能

念の為に確認いたしますが、先のissueを見ると、現在のUSB-NCMの機能はないから、私の方で、作って、pull requestをすれば、@mnakada様はメインに入れることでしょうか。

Since you're also fluent in English, I can stick to that if you prefer.

イベント通知について

Ver.1.3.6(それ以前は、未確認です)
・type: uploadVideoFinish
・mime:video/mp4
が発生していないように思います。

お手数ですが、ご確認頂けますでしょうか?

javascript fails to run

I have just tried to run the web interface via Internet (with a domain name).

It is warned that:
image

It seems the MIME type is causing the error:
image

Thanks.

use basic authentication instead of digest

I am trying to CURL on Home Assistant to control the cameras.
HTTP Digest Authentication is not supported.
https://www.home-assistant.io/integrations/rest_command/

As far as I understand, basic auth is sent in plain text, while digest is sent in hash.
Digest type is indeed more secure.
However, I believe most use case would be in LAN.
Even it is used via Internet, HTTPS is widely used nowadays.
Credentials sent in basic auth is encrypted in HTTPS.

May I suggest to switch to basic auth, for easy integration?

Thank you very much.

WebHookが検知タイミングで出力されない

noderedを使ってWebHookのエンドポイントを作り、atomcam_toolからのPOSTを待ち受けています。
NODE-REDでhttpinのデバッグをモニターしていますが、2回だけ受信した以外はNODE-RED側のtsharkでも
WebHookのhttpが届いている様子が観測できません。しかし、ATOMアプリへの通知はすべて飛んでいます。
sshでの接続はできるようにしていますが、他に必要な情報や確認すべき点がありましたらと思いまして、issueを立てました。
よろしくおねがいします。

180度反転とパンチルト

Swingを天井から吊り下げで使っています。
純正アプリ内の設定で180度反転をしているとatomcam_toolsのパンとチルトの方向が感覚とズレてしまいます
純正アプリでパンチルトするよりtoolsの方が操作性も良いので180度反転しているときにはスライドを逆にするオプションは付けられないでしょうか?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.