ホーム » コンピュータ » Linux (ページ 22)

Linux」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

homebridgeで温湿度も取れる

homebridgeが面白い。plugin 揃ってるので、 部屋の温度湿度をとれるようにしてみた。 データは、サーバに接続している温湿度センサーの usbrh 。

1609190859_180x320.PNG

usbrh のデータを、プラグイン homebridge-httptemperaturehumidity で 読み取れるようにしてみた。

<?php
header( "Content-Type: application/json; charset=utf-8" ) ;
$data = shell_exec( "/usr/local/bin/usbrh" ) ;
if ( preg_match( "/^([\d\.]+)\s([\d\.]+)$/" , $data , $match ) ) {
print "{\n\"temperature\": ".$match[1].",\n\"humidity\": ".$match[2]."\n}\n" ;
}
?>

homebridgeで家電制御

iOS 10 で HomeKit のアイコン表示されたし、Siriから家庭内の家電制御ができないかと試してみた。 HomeKit 互換でフリーの実装の homebridge があるみたいなので、 インストールし、設定を行った。

homebridge-cmd を使うと、電源のON/OFFの制御なら、コマンドラインで呼び出せる処理を 起動できる。

{
"bridge": {
"name":         "perrine",           # ホスト名?
"username":     "CC:22:3D:E3:CE:30", # 特になんでもいい。
"port":         51826,
"pin":          "031-45-154"
},
"description":      "HomeControl by Tira-2",
"accessories": [
{
"accessory": "CMD",
"name":     "テレビ",
"on_cmd":   "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=regza --transmit=power\"",
"off_cmd":  "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=regza --transmit=power\""
},
{
"accessory": "CMD",
"name":     "チューナー",
"on_cmd":   "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=catvstb --transmit=power\"",
"off_cmd":  "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=catvstb --transmit=power\""
}
]
}

参考記事だと、制御には insteon+ を使うとの記事が多かったけど、 homebridge を起動して制御させようとするが、機器を認識してくれない。

username とかを色々と試してみたけどダメだったけど、insteon+ を使わずに、 基本の HomeKit アプリを起動したら、あっさり認識。

1609181126_180x320.PNG
1609181126-1_180x320.PNG

ps4-wake

homebridge のことをしらべていたら、PS4 をネットワーク経由で スタンバイ状態から ON/OFF できる、node.js を使った ps4-waker という ソフトがあるみたい。

でも、node.js はまだ良くわからない所もあるので、ちょいと探すと、 "ps4-wake" というソフトも見つかる。 C言語ベースで、導入も簡単そう。

 ((インストール))
$ git clone git://github.com/dsokoloski/ps4-wake/
$ cd ps4-wake
$ make
$ sudo cp ps4-wake /usr/local/bin
 ((使い方))
$ ps4-wake -vP -B  # 同一ネットワーク内のPS4を探す
Device found: PS4-YYY [PS4/XXXXXXXXXXXX]: Standby
$ ps4-wake -vW <USER-CREDENTIAL> -H XXX.XXX.XXX.XXX # 指定IP

見つけたPS4の"USER-CREDENTIAL"をつけて、ps4-wake を呼び出せば いいのだが、その書き方が違うのか、PS4が起動しない。

といっても、合宿所の宿直でVPN接続で自宅のPS4を触っているので、 本当に起動しているのかいないのかが不明なので、今日はココまで。

homebridgeのメモ

iOS 10 に切り替えると、"HomeKit" のアイコンが増える。 家庭内のライトやテレビといった機器のON/OFF制御などが できる機能。

で、調べてみたけど、海外ではそれなりの機器が出ている ようだけど、AmazonやAppleで調べてみても、 電球型のHomeKit対応ライトと言った程度で、便利さを 感じるようなものが出ていない。

我が家では、Tira2 という赤外線リモコンで、家電制御など を使っているので、Siri に「テレビをつけて」をやってみたいと 考えてしまう。

調べてみると、"homebridge"という互換ソフトが出ているみたい。 node.js をベースにしたソフトらしい。

ということで、ひとまず node.js とかを入れてみた。

((node.jsのインストール))
$ sudo aptitude install nodejs npm
$ sudo ln -sf /usr/bin/nodejs /usr/bin/node
((homebridgeのインストール))
$ sudo npm install -g homebridge
((コマンドラインベースの命令を呼び出すモジュール))
$ sudo npm install -g homebridge-cmd
or
$ sudo npm install -g homebridge-cmdswitch2

でも、node.js のことをさっぱり解っていないので、 あとの作業用に、ココまでをメモ。

https://datahotel.io/archives/725

BoWに開発環境とLaTeXをインストール

Bash on Windows を使ってインストールをしていたら、 開発環境が入っていない。Visual Studio があるけど、 gcc とかは入れておこう。

開発環境

 (( パッケージ更新 ))
$ sudo aptitude upgrade ; sudo aptitude safe-upgrade
 (( 開発環境 ))
$ sudo aptitude install gcc g++ make automake bison flex
$ sudo aptitude install perl ruby python

LaTeX環境

今までは LaTeX を使いたいときは、データをDropboxにおいて、 Linux サーバに入って platex + divpdfmx を行い、 Windows 環境で PDF の確認を行っていた。 しかし、Dropbox の同期のタイムラグがちょっと不便だった。

BoW のパッケージを見ていたら、普通に texlive があるので、 cjk-latex をインストール。

 (( latex ))
$ sudo aptitude install cjk-latex texlive-lang-cjk texlive-binaries

これで、Windows 環境だけで LaTeX のコンパイルができるようになった。 Windows 環境用の LaTeX は出てはいるけど、セッティングが面倒だった。 でも Ubuntu が動くんだから、一発でインストール完了。

スマホ向けサイトのスコア付け71点(^^;

スマホ向けのサイトになっているかをテストするサービス。

https://testmysite.thinkwithgoogle.com/

1606050609_894x501.PNG

debianでletsencrypt.shを使ってみた

無料で、SSL鍵を利用できる let's encrypt というソフトが Debian でも使えるようなので、 試してみました。まずは、必要なソフトのインストール。

# aptitude install letsencrypt.sh letsencrypt.sh-apache2

基本は /etc/letsencrypt.sh/config.sh を修正してもいいが、 /etc/letsencrypt.sh/conf.d の中に *.sh の拡張子で設定を保存すると 書いてあるので、 連絡用のメールアドレスなどの登録情報は、この中に保存。

(( /etc/letsencrypt.sh/conf.d/contact_mail.sh ))
CONTACT_EMAIL=連絡用メールアドレス

letsencrypt.sh のデータは、/var/lib/letsencrypt.sh/ に保存され、 取得するドメインは、以下のファイルに記載しておく。

(( /var/lib/letsencrypt.sh/domains.txt ))
ドメイン
# mkdir /var/lib/letsencrypt.sh/certs
# /usr/bin/letsencrypt.sh -c
(出力)
# INFO: Using main config file /etc/letsencrypt.sh/config.sh
# INFO: Using additional config file
/etc/letsencrypt.sh/conf.d/contact_mail.sh
+ Generating account key...
+ Registering account key with letsencrypt...
Processing ドメイン
+ Signing domains...
+ Creating new directory /var/lib/letsencrypt.sh/certs/ドメイン ...
+ Generating private key...
+ Generating signing request...
:

できあがった、SSL の情報を Apache に設定する。

(( /etc/apache2/sites-available/default-ssl.conf ))
SSLCertificateFile /var/lib/letsencrypt.sh/certs/ドメイン/cert.pem
SSLCertificateKeyFile /var/lib/letsencrypt.sh/certs/ドメイン/privkey.pem
SSLCertificateChainFile /var/lib/letsencrypt.sh/certs/ドメイン/chain.pem
# /etc/init.d/apache2 restart
1606021701_622x264.png

あとは定期的に更新

SSL鍵は、流石に無償だし、有効期限が短い。 定期的に更新が必要。今回は一ヶ月毎に更新。

(( /etc/cron.d/update-letsencrypt ))
#m h D	M W user command
0  3 1 * * root test -x /usr/bin/letsencrypt.sh && /usr/bin/letsencrypt.sh -c

movabletype-opensourceのCGI制限

自宅のBLOGは、movabletype-opensourceを使っているけど、 一応、サポート切れとなっているため、脆弱性攻撃を受ける可能性もある。 ただ、攻撃といっても、CGI の呼び出し経由だし、コメントやトラックバックも SPAMが多くて使っていないので、記事編集は自宅内のみと割り切って、 アクセス制限を加えてみる。

Alias /mt-static /usr/share/movabletype/static
<Directory /usr/lib/cgi-bin/movabletype>
# 初期設定の時だけ
<Files mt-wizard.cgi>
<IfVersion >= 2.3>
Require all denied
</IfVersion>
<IfVersion < 2.3>
Deny from all
</IfVersion>
</Files>
# コメントトラックバック
<FilesMatch "mt-(comments|tb)\.cgi$">
Require ip 127.0.0.1 192.168.0.0/16
</FilesMatch>
# データ連携
<FilesMatch "mt-(data-api|feed|xmlrpc|atom)\.cgi$">
Require ip 127.0.0.1 192.168.0.0/16
</FilesMatch>
# 検索機能は制限せず
#<FilesMatch "mt-(ftsearch|search)\.cgi$">
# ### Require ip 127.0.0.1 192.168.0.0/16
#</FilesMatch>
# その他
<FilesMatch "mt-(check|testbg|upgrade)\.cgi$">
Require ip 127.0.0.1 192.168.0.0/16
</FilesMatch>
# 基本機能
<FilesMatch "mt\.cgi$">
Require ip 127.0.0.1 192.168.0.0/16
</FilesMatch>
</Directory>

gcalcliが動かなくなる

仕事の予定管理や家族の予定の把握には、Google Calendar をすごく 活用しているけど、その予定をミニ掲示板に表示する機能が動かなくなっていた。 中で使っている、gcalcli が"Missing module – cannot import name run"と いうメッセージで動かなくなっている。

調べてみると、ライブラリモジュール"oauth2client"を1.4.12以下にしろとか出てくるけど、 "pip install oauth2client==1.4.12"を実行すると、他のモジュールを更新しろとか でてきて思うように動いてくれない。

モジュールのバージョン調整だけで動かしたかったけど、 https://github.com/insanum/gcalcli/issues/229に記載されているように、 手動パッチをあてて動かした。

$ sudo pip install oauth2client --upgrade
$ sudo pip install gcalcli --upgrade
この後、手動パッチ

HTTP/2の有効化

ネットの記事で、Chrome の SPDY サポート打ち切りなどが 記載されていて、HTTP/2 への移行が進んでいるらしい。

ということで、自宅サーバがどうだっけ?ということで調べると、 HTTP/2 は a2enmod されていないみたい。

 (( HTTP/2のモジュールの有効化 ))
$ sudo a2enmod http2
$ sudo systemctl restart apache2.service

トップページの reload をかけてみたけど、速くなった気がする。 自宅トップページは、リンク集的によく使うサービスのアイコンを並べてあるけど、 こういう小さいデータは効果がでるはず。
# 気のせいかもしれんけどぉ〜

Google 検索

My Google   Yahoo

Microsoft

ファンサイト