【Raspberry Pi zero 2 W】motion多重起動問題

車載のRaspberry Pi zero 2 W(以下rx7pi) で、bluetoothヘッドフォン接続時に、motion の動体検知録画を止め、切断時に動体検知録画ONになるようにしている。

だが、確認してみると、朝、車に乗る前に、bluetoothヘッドフォン接続したのに、通勤時の動画が一杯記録されてた。

VPN経由でrx7piへログインしてみたところ、

三重起動しとる……。

記録されとるのは、一番最後のプロセスIDなので、多重起動防止を突破しとるようだ。

あと、motion が二重起動してる事があって、何でだろうと考えたが、motion -n &でバックグラウンド起動してるので、process IDを出力する前に、ループで二週目の呼び出しで二重起動になってるんだろう。

という事で、process IDが出力する前に、touch でファイルを作成しておき、二重呼び出しにならないようにした。

情報源: raspberry pi – Yuji Noizumi’s blog

と、対策はしたのだが、なぜに多重起動する!?

9:29 と 9:34 に起動してるが、ドアの開閉でルームランプのLEDライトが点灯した時にLEDのノイズで接続が切れてるのかもしれんな。

しかし、それでも論理的に多重起動するのはあり得んのだが、状況を整理しよう。

  • /etc/default/motion でstart_motion_daemon=noとしてある
  • bluetoothヘッドフォン接続前は、motionのプロセスは1個のみ。
  • rx7piとbluetoothヘッドフォン接続して、車に乗り込んで発進。
  • 駅について、録画ファイルを確認すると、ドアを開けてルームランプが点灯してる動画から始まり、運転中のものが記録されている。

これはやっぱりLEDライト点灯による bluetooth 接続断がくさいが、もしかすると、motion の起動完了にすごく時間が掛かってて、sleep 1 のwaitでは足らないのかもしれない。

という事で、 恐らく、touch したファイルは、リダイレクト指定したら削除されて、ファイルが存在しないから多重呼び出し可能になってしまうのだろう。

そこで、リダイレクトのファイルが作成されるまで待つ処理を入れてみて、様子を見るとしよう。

【Raspberry Pi zero 2 W】スクリプト調整

【Raspberry Pi zero 2 W】gpsドングル追加

会社からVPN使ってRX-7搭載Raspberry Pi zero 2 W(以下ラズパイ)へログインして、状態を確認していた所、GPSからデータが一切流れて来ていない。

alarm_monito.sh をKILLして、スクリプト弄ってたら、通信途絶した。

帰宅してWiFi経由でログインしても、別に異常は無いし、何が原因かよく分からん。

とりあえず、GPSがハングアップした時の為に、timeout を入れるのと、応答を良くする為に、gpspipe のパラメータを弄った。

gpspipe は -n 4 指定で、TPVの行が出て、終了するので、多分、これが一番速い。

GPSがハングアップしてても、1秒でタイムアウトなので、警戒監視スクリプトでデッドロックする事もあるまい。

あと、motion が二重起動してる事があって、何でだろうと考えたが、motion -n &でバックグラウンド起動してるので、process IDを出力する前に、ループで二週目の呼び出しで二重起動になってるんだろう。

という事で、process IDが出力する前に、touch でファイルを作成しておき、二重呼び出しにならないようにした。

それと、GPSハングアップに備えて、GPSのデータ参照してる所は、空白データの時に処理しないFail safeを入れた。

まあ、GPSドングルが壊れてる可能性もあるので、TOPGNSSの11.11セールで売ってたものをポチっておいた。

情報源: Topgnss usb gps glonass受信機アンテナモジュールusb出力プロトコル、互換交換BU353S4|GPS レシーバー & アンテナ| – AliExpress

前に買った奴が結構いいので、再び購入したが、前が1,500円位だったのに、今はセールで2,200円になっとるから、円安は海外通販には痛いのう。

【Raspberry Pi zero 2 W】gpsドングル追加

今の車載Raspberry Pi zero 2 W は、車載警報装置のイヤホンマイクをGPIOに接続して、発報すると、イヤホンマイクスイッチがONになるので、それをトリガにメール&SMS送信するようになっている。

加えて、カメラを追加して、bluetooth ヘッドホンの Open Run Proが接続していないと、motion をスタートさせて、動体検知記録する。

つまり、車に乗って、bluetooth ヘッドホンを接続していれば、動体検知はOFFで、車から離れて、bluetooth接続が切れたら、動体検知ONになるようにしている。

今回やろうとしてるのは、動体検知ONの時に、GPSで現在位置を保存して、定期的に車の移動距離を測定し、車が100m移動してたらメールを飛ばそうというもの。

【rx7pi新スペック】

  • 車載警報装置 発報でガラケーのイヤホンマイクスイッチをONにしてくれるやつで、ラスタバナナのステレオ変換アダプタに接続して、GPIOに配線。
  • LTE回線 donedone ASUS zenfone max pro(m2)に挿して、USBテザリング
  • カメラOV5647
  • USB GPSドングルVK172

※写真貼るのが面倒なので、アフィリエイト利用

とりあえず、USBのGPSドングルが余っていたので、Raspberry Pi zero 2 Wへ接続。

VK172って、2019年に1,090円で買ったけど、円安のせいで値上がりしとるなあ。

gpsd をインストール。

既定の動作の設定

VPN経由で、FoxtrotGPSや、xgps、gpsmonが自端末で見れるようにListenStream=0.0.0.0:2947 にする。

設定ファイルの再読込と、サービスの再起動

ガレージを中心にそこそこの精度。

今回、新規作成した gpsd の出力から、緯度、経度を抜き出すプログラム。巷で出回ってるGPS出力から時間を抜くスクリプトの改造版(笑)

そして、2点の緯度経度から、距離を計算するプログラムだが、これは、次のページのpythonプログラムをシェルスクリプト用に書き直した。

情報源: Python で2点の緯度経度から距離を計測する方法 – GIS奮闘記

ありがとうございます。

distance.sh 緯度1,経度1 緯度2,経度2 で距離(m)を出力する。

元のページは km 単位で、最後に1,000で割ってたけど、わしが欲しいのはメートル単位なので、1,000では割ってない。

ただ、 bc で、平方根使うと、小数点以下20位まで有効になるので、最後に scale=2を指定して、1で割り算して、小数点以下2桁までにしている。

どうせ、GPSの測定誤差が数十メートル単位で出るので、メートルの小数点以下はほぼ無意味だけどね。 🙂

上の2つを新たに組み込んだ車載警報装置モニタプログラムがこちら。

そして、1m以上移動で異常にして、強引にメール送信させてみた。

google maps のURL付きにしたので、クリックすれば、車の位置がすぐ分かるようになっている。座標の方は、すり替えておいたのさ 🙂

FC162/FC172 Heya(ヘヤ)ルームブーツ | ワークマン公式オンラインストア

ワークマン公式オンラインストアでの通販は全国のワークマン店舗で受け取れば送料無料!!お買上1万円以上も送料無料!話題のアウトドアウェアや人気の防寒ウェア、かっこいい作業着の店舗取り置きが可能です。Heya(ヘヤ)ルームブーツ(レディースフリー アイボリー)

情報源: FC162/FC172 Heya(ヘヤ)ルームブーツ | ワークマン公式オンラインストア

友人に薦められて買ったけど、暖かくて結構いいな。お値段980円

走れば走るほど加算される自動車「走行距離課税」に地方民が激怒! 物流への影響で「日本経済にトドメ」の指摘も | Smart FLASH/スマフラ[光文社週刊誌]

情報源: 走れば走るほど加算される自動車「走行距離課税」に地方民が激怒! 物流への影響で「日本経済にトドメ」の指摘も | Smart FLASH/スマフラ[光文社週刊誌]

これ、デカい釣り針だな。

どんなバカでも分かる「とんでもない話」を出して騒ぎを起こし、裏でこっそりもっととんでもない話を通そうとしてる場合に、こういう見え透いた茶番をやる場合があるな。

まあ、税の二重取りしてるガソリン税や、自動車税が減税ターゲットになる可能性が高いので、減税の話が挙がる前に増税の話をぶつけて、減税を言わさないようにしようとしてるのかもしれんけど。

マイナポイントをゲットだぜ

これで、HOPマネー残高が以前チャージした分と合わせて 30,557円分になったけど、使い途に困るな。

しかし、だいたい土日にHOPマネーで払うと、ポイント3倍付くので、36円〜37円で1ポイントだから、30,557円分使うと、約825ポイント付く。

楽天だったら、以前はポイント6倍だったけど、楽天モバイル解約して4.5倍になったが、あそこは元々、ポイント還元分、売値で吹っ掛けてるから、余りお得感が無い。

平和堂は、元々、コンビニよりも価格が安いし、この間、コンビニでPanasonicの単4電池8本パック買ったら、1,200円だったので、異常に高えと思ってしまうわ。

カーポートソーラー改良

車のバッテリにケーブルを接続したまま、発進とやって、ソーラー蓄電用バッテリのケースの蓋の重しに乗せていたコンクリートブロックが車体に激突し、150万掛けて塗り直ししたのに、もう凹み傷ができてしまった。

ケーブルを張り詰めておいて、テンションが掛かると、コネクタが抜けて、カーポートソーラーの設備が損傷しないようにした訳だ。

 

使ったのはこのコネクタ

※写真貼るのが面倒なのでアフィリエイトを使ってます

以前は、こんな感じだったけど、クーラーボックスの紐で縛り、蓋が風で飛ばないようにして、コンクリートブロックは乗せないようにした。

前にカーバッテリにケーブル着けたまま発進した時は、運良くコンクリートブロックは車体に衝突しなかったが、ケーブルをネジ止めしている蓄電用バッテリが引っ張られ、損傷して、電極から粉噴いてお陀仏となった。

困ったやつ3

困ったやつ2

事務員が、支払い期限の過ぎた請求書を消そうとしてたので、ちょっと気になって色々調べてみた。

すると、請求書発行の金曜毎に、エクセルで入金リストを記載する事になってるのに、9/7から記載してない。

入金リストは、請求書を発行して、入金があったかどうかを記載するものだが、支払いがあれば「済」で、無い顧客は一覧で「未」となって、督促しないといけない項目となる。

請求書システムで、事務員が削除しようとしていた請求書を調べると、契約解除になっていた。

客が全く利用してない場合は、契約解除の申し出で、契約解除にはできるのだが、その客は請求に対して、一切返事をしないので、契約解除になってるのがおかしい。

経理処理的には、請求書を出して支払いが無い顧客に何回か督促をする事になっているが、事務員は、1回督促して、反応が無い場合に勝手に契約解除にしているようだ。

入金リストに未収の分を記載せず、請求書システムの請求書を消してしまえば、未収の請求書をなかった事にできるから、事務員は消そうとしてた訳だな。

で、更に調べてみると、事務員は、料金の払い込みの無かった客とのメールでのやり取りを削除し、運営サイトの客のデータや契約のデータまで消して、請求書システムの請求書も消してやがった。

いや、これ、もうアカンレベルやろ?

ちょっとした嫌がらせで、勝手に消された請求書を復元しておいたのだが、請求書システムではパスワード入れないと削除できなくしたので、放置するかと思ってたら、わざわざ中身の請求項目を削除して、請求額 0円にしやがったwww

いや、0円の請求書が残ってるって、あからさまにおかしいだろ(笑)
これで請求する金額自体がわからなくなったので、督促しなくて済むとでも思ってるのかな?

でも、事務員が消したと思ってる運営サイトの客のデータも契約も、データ自体は残ってて復元可能だから、請求書もすぐ復元できちゃうんだよなあ。

しかし、0円の請求書を残しておく方が面白いので、復元しない 🙂

マイナンバーカードをゲットだぜ

母親と一緒に役所へ行って、貰ってきた。

平和堂で、先週、マイナポイントの設定の手伝いをソフトバンクの携帯ショップでやってくれると店内アナウンスしてたので、行ってみた。

携帯電話の使い方講座の一貫で、資格を持ってる奴がやってくれるとの事だが、今月はそれが無くて来月になるとの事。

すぐにできないんじゃしょうが無いので、とりあえず、わしが自分でやってみる事にする。

フードコートへ行って、公衆無線LANに接続。

とりあえず、マイナポイントアプリをダウンロード。

アプリで「申し込む」ってボタン押して、マイナポイント申請して決済にHOPマネー選択。

マイナンバーポータルアプリをダウンロードして、公金受取口座の登録、健康保険証としての利用申し込み。

おサイフ携帯で、マイナンバーカードのNFC読み取りするので、おサイフ携帯でない場合は、マイナンバーカードの読み取りはできない。一応、OPPO Reno3 Aは対応機種に入ってたので読めるはず。

しかし、読み込み位置が無茶苦茶シビアで、中々読み取れないが、携帯のカバー外して、何度かやってる内に読み取れた。

わしの機種の場合、コツはマイナンバーカードを縦にして、カード中央付近をカメラの下あたりに持ってくる事だな。

HOPウォレットアプリで、20,000ポイント分チャージ。これでマイナポイント計20,000ポイント分ゲット予定。

わしは平和堂で、デカい買い物せんから、楽天ポイントにして、出光でポイント支払いの方が良かったかもしれん。