スキップしてメイン コンテンツに移動

投稿

2019の投稿を表示しています

Raspberry pi の設定(Stretch版)覚書 その2WatchDog Timmerのインストール

WatchDogTimmerのインストール
何らかの理由でサーバーが止まってしまった時にそれを感知してシステムをリブートする為にウォッチドック(番犬)を飼っておきます。

先ずはLinuxカーネルにウォッチドックを追加します。

$ sudo modprobe bcm2835_wdt
$ echo "bcm2835_wdt" | sudo tee -a /etc/modules

次にwatchdog のデーモンをインストールします。

$ sudo apt-get install watchdog
$ sudo update-rc.d watchdog defaults

watchdog のデーモンの設定を行います。
自分の好きなエディタで以下のファイルを編集します。
私の場合はnanoですから、

$ sudo nano /etc/watchdog.conf

#watchdog-deviceで始まる行のコメント(#)をはずします。

同様に#max-load-1 = 24 の行もコメントをはずし、最後に以下の行を追加します。
watchdog-timeout = 15

最後にデーモンを起動します。

$ sudo systemctl start watchdog

ここまで終わればサーバーとしての基本の設定は出来たと言えると思います。
後はそのサーバー上で何を動かすかですね。

もしIPv6でも使いたい人は以下のブログを参照してください。
Linux で IPv6 の名前解決が出来ない
https://snow-digital.blogspot.com/2017/03/linux-ipv6-can-not-access-by-host-name.html

後、sshですアクセスした場合にいちいちパスワードを入れるのが面倒な人はパスワード無しでログイン出来るようにしてしまいましょう。
セキュリティー的にも不正アクセスし難いのでお勧めです。
実際に運用するサーバー名などが決まってから作業した方が良いですね。

以下のブログを参照してください。
Raspberry pi の設定  その2(SSHをパスワードなしで)
https://snow-digital.blogspot.com/2017/01/raspberry-pi-homebridge_35.html?m=…

Raspberry pi の設定(Stretch版)覚書 そ3 Homebridgeのインストール

Raspberry piの基本設定が終わったら、順次アプリ関係をインストールします。

(1)Homebridgeのインストールに先立ち、先ずはNodejsをインストールします。

取り敢えずバージョンを確認してインストールされていない様ならば
$ node --version

インストールします。
$ sudo apt install nodes


(2)Homebridgeをインストールするためのnpmをインストールします。

$ sudo apt install npm

(3)homebridgeをインストールします。

$ sudo npm install -g homebridge
$ sudo npm install -g homebridge-cmd
$ sudo npm install -g homebridge-cmdswich2

(4)homebridgeを設定します。 ホームディレクトリに「.homebrige」と言う隠しファイルを作成し、その中に「config.json」というファイルを作ります。 $ cd  .homebridge $ nano config.json
中身はこんな感じで

{
"bridge": {
"name": "HomeBridge",
"username": "AB:CD:EF:FE:DC:BA",
"port": 51826,
"pin": "034-45-567"
},

"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",


"platforms": [{
"platform": "cmdSwitch2",
"sw…

ブログの内容を少しまとめてみました。

なかなか更新の進まないブログですが、iPhone の使い方を中心に少しまとめてみました。

まとめ
https://snow-digital.blogspot.com/p/blog-page_8.html

取扱説明書?
https://snow-digital.blogspot.com/p/google-hangout-httpsnow-digital.html

バックアップ、復元、同期など
https://snow-digital.blogspot.com/p/lineline-httpsnow-digital.html

話題はダブったりしていますがご勘弁のほどよろしくお願いいたします。


また、Raspberry pi の話を中心に、自宅のIT化の話も自分の備忘録としてまとめ始めましたので、よろしかったら参考にしてください。
Raspberry Pi 覚書
https://snow-digital.blogspot.com/p/raspberry-pi.html

Raspberry pi の設定(Stretch版)覚書 その1Raspbian のインストール

今までRaspberry piの設定などで色々書いてきました。
で、昨年そのRaspberry piのOSであるRaspbianがバージョンアップし、色々変わりました。
そこでもう一度初期設定までを最新版の覚書として残しておこうと思います。

まずはそのRaspbianですが、バージョンがJessie(Debian 8.0)からStretch(Debian9.0)に上がっていました。
メジャーバージョンアップでリリースノートは
https://www.raspberrypi.org/blog/another-update-raspbian/
を参照してください。
SD card copier という何か役立ちそうなものとか、pigpio というちょっと気になる物がありますね。

さて、その他にもRaspberry pi Zero W ではMacとUSB接続でヘッドレスで最初から使えるなんて記事も、多分 Windowsでも使える技だろうと思います。
幸い手元にも Zero Wがあるので、今回はその記事を元に最初からMacだけで設定してみようと思います。
後から考えたら、Ethernetのポートがある通常のモデルでもEther で繋げば出来るのではないかと思いましたので、後日試しところ、Ethernet ケーブルを使えばちゃんと出来ました。
この手法を使えば、最初からヘッドレスで全て出来ますから、私の様に自室にTVが無い、居間のTVは普段家族が使っているから、深夜とか、家族がいない時しか使えないなんて人には大助かりです。

それにしても今回のバージョンアップでNTPの使い方なんかも変わって来ていますね。
で、今までの手順でも無駄な手順があるのが見えて来ました。
セットアップは最低限の手間で済ませたいので、出来るだけ楽をしようと思います。

ではまず手始めにRaspberry piのダウンロードのページから最新のRaspbianをダウンロードします。
今回はNoobosではないRaspbianのフルバージョンを選択します。
最初はNoobosでトライしたのですが、これは失敗に終わりました。
で、通常のRaspbianのフルバージョンなら上手く行きます。
ファイル構成などが違い起動のプロセスが違うのですね。

で、Lightバージョンにしていないのは、最初にSSHで繋げたらつぐにVN…

Siri とショートカット

アップルの相談窓口に相談して、なぜショートカットから実行するとEメールが送信出来るのに、それをSiriで実行させると送信出来ないのか問い合わせました。
で、担当者として技術部門に問い合わせてくれていますが、回答には一週間は掛かるとの事。
で、私に言われたので、自分でも試してみて、やはり送信出来ないことも確認出来たそうです。
また同時にMMSだとメッセージが送信できるのですが、ショートカットからだと件名を入力出来ません。
そのためタグを利用できず、これまた使い物になりません。

で、色々調べていたら、ショートカットから直接 URLを叩けることがわかりました。


で、上図の様な形でショートカットから直接BeebotteにURLを投げてやります。 これならSiriからもちゃんと起動してくれます。 その上Eメールの送受信と、IFTTTでの処理を飛び越して、直接Beebotteにデータを投げるので、反応時間がかなり短くなります。 それでもSiriを使うと、Siriがショートカットを判断して実行するまでの時間がそこそこかかるのですが、これなら待ち時間がほとんど無くなります。
アップルの相談窓口はiPhoneの一般的な使い方以外には全くの素人なので、Beebotteは勿論、そこそこ有名と思うIFTTTも全く知りませんでしたので、ともかくSiriから定型文章のメールの送り方しか聞けませんでした。 もしBeebotte というか、URLを叩いてデータを送るという事を理解出来れば『とりあえず、メールのことは調べますけど、やりたいことは直接URLを叩けば良いので・・・」とショートカットの機能を紹介してくれたのでしょうけどね。 回り道をしてしまいました。
しかし、こう言ったことが簡単にできるなら、「ホーム」アプリを使う必要も薄れますね。 何もホームアプリを使わず、ショートカットを使って自宅内のサーバーに好きな指示が送れますから。 ますます楽しみが増えそうです。

自宅のIT化(その5)iPhone とSiriのショートカット

大詰めとして、iPhone からIFTTTに如何に簡単にメールするかと言う作業を行います。
iOS 12で実装された「ショートカット」を使います。
以下のアイコンのアプリですね。

起動すればショートカットの一覧画面になりますが、まだ何も登録されていないはずです。


私のライブラリには既にいくつか登録されています。
とりあえず「ショートカットを作成」を選択して、ショートカットを作成して見ましょう。


この作成画面から、検索欄に「メール」と入力して、表示された一覧から「メールを送信」を選択します。


上記の画面が表示されますから、作成シートのスイッチをオフにして、送信元には自分が IFTTTに登録したメールアドレスを、宛先にはIFTTTの送信先メールアドレスである「trigger@applet.ifttt.com」を入力し、件名には前にWebhookで設定したキーワードの「#Open」を入力します。
もちろんキーワードは自分で設定したものを入力してください。
で、右上に表示されているのマークをタップします。


の画面が表示されるので、ショートカットの名前をつけ、必要に応じて「ホーム画面に追加」や「Siriに追加」を選択してください。 アイコンも選択肢があるのでそこから選択してください。 私は上矢印風のアイコンを利用してみました。 上のショートカットの画面に表示されていますね。 同時にホーム画面にも同じアイコンが追加してあります。
で、このアイコンをタップすれば、IFTTTに「#Open」という表題のメールが送信され、そこからWebhook経由でRaspberry piのBeebotteに通知され、アプリ(私の場合はシェルスクリプト )が起動されます。 で、スクリプトが動いてサーボを動かし、リモコンのスイッチを押してくれます。 同様にしてシャッターを閉めるのも「#Close」と言う件名のメールをショートカットで送信してやれば良いだけ。
で、Siriに「開けて」と頼むとちゃんとショートカットの「開けて」を呼び出して実行して・・・ ? くれません。 いや正確に言うとショートカットの起動はしている様なのですが、メールを送信する前にショートカットの実行を終了してしまっている様です。
う〜ん 困ったぞ。
ショートカットは間違いなく動きます。
ショートカットのアイコンをタップすれば、多少の…

自宅のIT化 その4 BeeBottとIFTTTの設定

実際の設定の話となります。
先ずはデータを仲介するBeeBotteの設定からです。
こちらのウェブサイトから新規ユーザーとして登録します。
https://beebotte.com/

ユーザ登録後にログインすると以下の様な画面になっているはず。


右上の「Create New」のボタンを押して新しいリンクを作ります。









ここで Cannel Name には好きな名前を。
私の場合はガレージのシャッタのコントロールだったので「Garage」にしています。
Cannel Description は説明書きなので好きな文言を。
Resource name は今回はShutter としました。
Resource Description はこれも説明書きなので好きな文言を、
その次の選択肢はよく分からなかったのでとりあえずString を選択しました。
で、Create Cannel してできたのが最初の画面の Garage のチャンネルです。
test は最初から出来ていました。

で、この Garage をクリックすると出来上がったチャンネルが表示されます。





で大事なのが赤字で表示された「Channel Token:」です。
要するにこれがこの「Garage」のチャンネルに対するパスワードになります。

次にIFTTTの設定ですが、こちらは使った方が多いのでは?
以下のウェブサイトからログインします。
初めての方はIDを取得してください。

https://ifttt.com/

ログインして New Appletを選択すると以下の作成画面となります。








まずは動作条件を設定するので、ブルーで表示されている「+this」をクリックして、以下の画面からE-Mailをタップします。




右のタグ付きのメールの方を選択します。


まずがシャッターを開ける方の設定なので、Tagには「#Open」としました。 締める方は「#Close」ですがここも自分のシステムの都合で適当なタグをつけてください。

これで作成ボタンを押すと、今度は


先の条件から今度はどう処理するかの選定です。 検索欄に「web」と入力すると、Webhooks が表示されるので、これを選択。




















そのまま表示されたものを選択して処理を入力します。




URLの欄は以下のURLの「=」の後ろにbeebotteで指定されたChannel Toke…

自宅のIT化 その3(iPhone のショートカットの利用)

もともとガレージのシャッターは音声で開け閉めできたら面白いし便利(車の中ではスイッチを押すより、声で動かせれば便利のはず)と言う事(一応リモコンの数を増やしたいと言う表向き(家族向け言い訳は本音とは別))で始めた事でもありますので、もう一度原点に戻ってみようと。
iPhone のホームアプリでの利用は何故かSiriが上手く反応しないし、ホームアプリの動作も純正品でないのが問題なのか、動作が不安定だしその時々で反応時間が全く違ってしまいます。

で、iOS12になって追加された機能が「ショートカット」色々な事が組み合わせて実行できます。
今までも帰るコールなどはメッセージを利用して声だけで「今から帰る」とか「何処何処を出発」なんてSiriに頼んで送信していました。
提携のメールならこのショートカットでホーム画面に登録したアイコンをタップするだけで済みそうです。
しかもSiriにもショートカットを直接教え込んで動かしてくれる機能も付きました。

これを利用すれば、IFTTTに定型メールが送れる。
それを起点にIFTTT から自宅のサーバーに指示が出せるはずとなれば後は色々ググってみるだけ。
なんとなくそれっぽいのが出てきます。
Google HOMEを使って、本来は対応品でない家電を動かしたい人は大勢いますね。
とりあえずは IFTTTからWebhookを利用してBeebotte経由で自宅サーバー(Raspberryなど)という経路が見えてきました。

ところでWebhookってなんじゃ? と言う人は多いと思います。
REST通信の話ですが、良い説明はないかと探したらこんな面白い説明を見つけました。
これならば素人にもわかりやすい!

Webhookって何?を子どもでもわかるように描いてみた

だん吉さんありがとうございます。

って訳で、「IFTTTから投げたデータをどうやって受けるの?」と言うところがBeebotte以降ですね。
というか、自宅からWebアクセスする先がBeeBotteのサーバーと言う形。

REST通信を素人が気楽に使えるとは思っていませんでした。
いやー最近のサービスの充実はすごいですね。

自宅のネットワークのサーバーにインターネット側からデータを送りつけようとすると、DMZの設計は勿論、外部からアクセスするためのDDNSとかの仕組みも必要とかでちょっと面倒だ…

自宅のIT化 その2(Bluetooth Low Energy)

ガレージのシャッターの開閉に合わせて電灯を点けたりするのは玄関の電灯を点けたりするのとほぼ同じ手法。
違うのは点けるタイミングが時間(日没時間が基準)そのものなのか、シャッターが開いた時に日没後か、日没前かを判断して点けるかどうかの違いだけ。
ですから基本的には玄関の照明の記事の内容そのまま。
あとはスイッチが玄関は押す度にオン・オフが切り替わるタイプだから、いま点灯しているかの判断が必要(手動でもオンオフできる様にするため)ですが、ガレージはシーソー式。オンならともかくオン側を押すし、オフならオフ側を押すだけ。
今点灯しているのか、消灯しているかの判断は不要。
天気が悪くて薄暗い時は手動で点灯している事もありますから、シャッターが閉まる時は常に消灯させ(ついていなければ空振りするだけ)、開けるときだけは夜かどうか判断して点けるかどうかを決めるだけ。
より単純になるだけですね。

で、問題はリモコンの数を増やそうという方。
ダイソーで三百円で売っているリモコンシャッターは音量を上げる信号を出せます。
これを利用してスマホの写真機能で音量ボタンでシャッターを切っているのですが、簡単な改造で Android 用の押しボタンを音量を下げる様にも出来るのです。
この2種類の信号を使って、ガレージのシャッターの上げ下げを行わせようという魂胆。
改造記事はこちらを参照しました。

ダイソーでスマホ用Bluetoothリモートシャッターを発見→分解→ちょい改造:ウェブ情報実験室

宮里圭介様 ありがとうございました。


で、これを1台だけではリモコンを増やすという形にはならないので、複数個用意して使おうという魂胆です。
これまた複数のBLE機器(この場合はサーバーが複数という形)を利用するとなると、単純に Arduino のサンプルプログラムでは使い物になりません。
そこで見つけたのが、こちらの記事。

ダイソー BLE リモートシャッター で SwitchBot を操る

こばさん ありがとうございます。

しかしこの記事を参考に2台のリモコンをつないでみると・・・なんか変。
1台はスムーズにつながるのですが、もう一台がうまく繋がらない。
とりあえず1台だけ繋ぐ様に弄ってみても特定の1台は上手く繋がりません。
でもiPhoneにつないで見ると2台とも問題なく動作します。
うーん! どうして?

自宅のIT化 その1

まずはシャッターが開いているかどうかの判断だけ。
それをガレージ内から居間にX-Beeで飛ばしてArduino(ESP-32)で受けるだけの単純な構成。
取り立てて記事にする様な内容ではありません。
強いて言えばステータスの変化を受けて処理をするのにESP-32を使っている事ぐらい。

ESP-32と言えばBluetoothとWi-Fiを内蔵している事が一番の売り。
とりあえずはWi-Fiを利用してシャッターのステータスをRaspberry pi にでも送って、そちらでガレージの照明のコントロールをしてやれば楽かなと言った気楽な感じ。
まぁ、自分(ESP-32)でコントロールしても良いのですが、ネットから日の出、日の入り時刻を取り込んで点灯すべきかの判断をさせる処理部分を考えるのが面倒というのが、処理を外だしにしている理由。
UDPでRaspberry に投げてやれば良いだろうという安易な考えです。

で、ちょっとだけ凝ったのは外観。
これを見越してディズニーランドでR2D2のお菓子のケースを(あくまでも目的はケース。中身のお菓子は単なるおまけ)購入しました。
この中に装置を仕込んで、多分レンズ部分(目)だろうと想定される場所にLEDを仕込もうという事です。
だからLEDを3つにしないでRGBのLED一つで済ます設計。

予想通りにLEDの直径とレンズ部分の直径がぴったり。
綺麗に収まりました。
電源はESPは結構電気を喰う(無線関係の突入電流がでかい)ので、USB電源として(本体などは3.3V仕様)5Vで2A以上の電源を使用しました。

中身の製作記事は今回は省略。
ちょっとネットを漁ればこの手の記事はゴロゴロ出てきますので、わざわざ私が書く程の事じゃない(自分用の備忘録もいらないだろいうという判断)ので。

で、出来上がったのがこちら。





まぁ、可愛く出来たと思いますので、これならば居間においても家族から文句は出ないだろうと。 続きはこちら。