用意するもの
- Raspberry Pi 2 Model B
- スピーカー
- Netatmo Weather Station
- Raspbian GNU/Linux 8.0 Lite (Jessie)
- Open JTalk 1.07 ※今回導入します
用意するもの
用意するもの
用意するもの
準備編でHUIS UI CREATORが使えるようになったので、早速リモコン画面をカスタマイズしてみます。
[New]をクリックして新規作成画面に移動し、中央の作業領域の何も無いところをクリックすると、左側領域で背景画像が選択できるようになります。
任意の画像を指定します。
Saveをクリックして「保存してHomeに戻る」を選択すると、すぐに同期されます。UI CREATORを終了してからHUISの接続を切断すると反映されます。
追加されていますね。
カスタマイズ例です。詳細は省略します。
上半分のボタンはうちの液晶モニタ、下半分のボタンはAVアンプを学習させて割り当てています。
便利。
詳しい説明はGitHubのREADMEを読みましょう。
できること、できないこと、注意が必要なことを挙げておきます。
HUIS本体で作成した画面とUI CREATORで作成した画面は別管理っぽい
HUIS本体で作った画面を直接UI CREATORで編集したり、その逆をしたりはできません(不具合?)。UI CREATOR上でボタンのコピーはできますので、既存ボタンを新規作成した画面へコピーするなどしてうまく編集しましょう。
ボタンタップ時のアクションを変更できるが、プリセットされている内容からしか選べない
UI CREATORで作ったボタンにリモコン学習したアクションを割り当てることができません。HUIS本体側で適当なボタンに一旦リモコン学習させておいて、UI CREATOR上でそれをコピーしてから編集する必要があります。
テキストのフォントサイズや位置設定が反映されない
UI CREATOR上でフォントサイズを指定しても反映されないようです。また、UI CREATOR上ではテキストがセンタリングされているのに実際には左寄せで表示されます。
フォントサイズの件は不具合っぽいので、正式リリースまでに解消されるのではないかなーと思います。
SONYの電子ペーパー式学習リモコン「HUIS REMOTE CONTROLLER」を購入しました。
HUISが他の学習リモコンに比べて優れているのは、ボタンの大きさや形をソフトウェアで自由にカスタマイズできるということ。
ただ、そのカスタマイズに必要なソフトウェア(UI CREATOR)がまだ正式にリリースされていません(8月末予定)。現時点ではプリセットされたいくつかのボタンの中から選ぶしかありません。片手落ちですね。
とは言え、UI CREATORプレビュー版のソースコードは既にGitHub上で公開されていて、環境を揃えてビルドすれば今からでも使うことができます。
GitHub: sony/huis-ui-creator
https://github.com/sony/huis-ui-creator
私にはちょっと難しくて上手くいかなかったのですけど、とある友人の協力によりビルドされたものを入手できたので、使ってみようと思います。
まず、HUIS側のソフトウェアを2.0.3にアップデートします。ちなみに6/27現在、公式で公開されている最新バージョンは2.0.2です。
アップデートファイル「update_2.0.3.dat」をダウンロードページからダウンロードします。
HUISをPCに接続すると、ストレージ「HUIS-100RC」として認識されます。
ストレージの直下にアップデートファイルを移動します。
HUIS上で、設定ボタン→システム→「アップデートする」をタップ。
「アップデート」をタップ。
アップデート中…
アップデート完了。
次に、UI Creatorのファイル一式をここからダウンロードして、ローカルに展開します。
huis.exeを起動します。このときHUISをPCに接続した状態にしておきます。
同期画面が一瞬出て
起動が完了します。ここで[New]をクリックすると
リモコン画面の新規作成ができます。
準備は以上です。
(HUIS UI CREATORで遊んでみよう(カスタマイズ編)へ)
GoogleやEvernoteなどのWebサービスではセキュリティのために多要素認証(MFA)を設定できる。メジャーどころはだいたいOATHに準拠したTOTPを使っていて、トークンアプリを一つ入れておけば各サービスのトークンが使えるようになる。
私の場合はスマホにGoogle Authenticator(Google認証システム)を入れているのだけど、もしスマホが壊れたときに認証できなくなるリスクがあるので、バックアップとなる緊急認証手段を用意しておきたい。
私の手元には10種類以上のアカウントが設定されている。
(※ほか多数)
2段階認証におけるTOTPトークンアプリの移行方法
http://reliphone.jp/totp-apps/
どのサービスも基本的に、認証さえできていれば既存のを無効化して新しいトークンを設定できるので、認証済みのPCやスマホを複数用意しておけば緊急時でも再設定ができる。
IIJ SmartKey
http://www.iij.ad.jp/smartkey/
またトークン自体のエクスポート機能を持ったアプリもあるので、データだけ保管しておいて新しいスマホにインポートする事もできる。
もし手元のデバイスが全部壊れた場合、つまりサービス側に保存されている“信頼されたデバイス”が全喪失したときは次回ログイン時にトークンが要求されて(そしてトークンも失われていると)ログイン不可能な状態になる。機種変更するなどの対処で一旦電話が使える状態にまでできればSMS・電話認証で済ませられるが、登録電話番号が分からなくなったとか、携帯電話を出先に忘れてきたとかで待ってられない場合は最終手段バックアップコードの出番になる。事前に紙に印刷するなどしてオフラインで安全に保存しておきたい。
ここからは細かい話。
iPhone5sの交換からAWSコンソールへログインできなくなって復活したところまでの顛末
http://blog.mittostar.info/2014/07/13/iphone5s%E3%81%AE%E4%BA%A4…
AWSだと復旧手段が英語の電話になってしまうようなので、英語に自信がないなら前述のアプリでエクスポートをしておくか、初めからトークンを多重化しておくのがいいだろう。多重化は同一のキー(二次元バーコードのアレ)を複数端末で読み取っておくだけ。
ただ、トークンを多重化した場合たとえば2台持ちが2台とも水に濡れたとか車に轢かれたとかで全滅するリスクもあるので、全滅を防ぐため少なくとも一つはできるだけ安全な場所にバックアップを保管しておきたい。つまりゴミのようなAndroid端末にトークンを設定し、オフライン設定にして、電池を抜いて保管しておくのがいいだろう。(リスクを最小化するなら空き巣に入られても金目のものに見えないようなゴミ端末が良いと思う)
Google Authenticatorを使ったSSHのワンタイムパスワード認証の設定(CentOS 7)
http://blog.virtualtech.jp/tmiyahar/1311
サーバのSSH接続にMFAを設定している場合も、ログイン不能になることを防ぐために同じ方法が使える。
以上、トークンの喪失リスクとバックアップについて長々と紹介したのだけど、結局のところ多要素認証というのはパスワード攻撃を防ぐためのものなので、あまりトークン自体のリスクに悩むよりはパスワードそのものの管理を強化した方がよいかもしれない。
結論から言うと、気象庁の高解像度降水ナウキャストが一番精度が高そう。
(A)降水ナウキャスト(気象庁)
http://www.jma.go.jp/jp/radnowc/
(B)高解像度降水ナウキャスト(気象庁)
http://www.jma.go.jp/jp/highresorad/
(C)XRAIN(国土交通省)
http://www.river.go.jp/xbandradar/
(D)雨雲予報 by XRAIN(日本気象協会)
http://n-tenki.jp/sp/xmp/
(E)東京アメッシュ(東京都下水道局)
http://tokyo-ame.jwa.or.jp/
(F)雨雲レーダー Ch.(ウェザーニューズ)
http://weathernews.jp/radar/
ざっくり言うとこのような関係。
観測レーダー | A | B | C | D | E | F | 解像度 | 間隔 | 説明 |
---|---|---|---|---|---|---|---|---|---|
気象庁 Cバンドレーダー(全国20箇所) |
○ | ○ | – | – | ○ | ○ | 1km | 5分 | 半径120km |
国土交通省 Cバンドレーダー(全国26箇所) |
– | – | ○ | – | – | – | 1km | 5分 | 半径120km |
国土交通省 XバンドMPレーダー(主要部14箇所) |
– | ○ | ○ | ○ | – | – | 250m | 1分 | 半径60km |
東京都下水道局など Xバンドレーダー(関東5箇所) |
– | – | – | – | ○ | – | 250m 〜1km |
1分 | 半径50km |
ウェザーニューズ社 WITHレーダー(全国31箇所) |
– | – | – | – | – | ○ | 150m | 6秒 | 半径50km ※指向性あり |
この他にもレーダー以外(雨量計など)の情報が使われていたり、さらに予想データの提供有無もあるので、詳しくは各項目で後述。
Cバンドは周波数が低いためカバー半径が広く降雨減衰が少ない。Xバンドは逆に周波数が高いためカバー半径が狭く降雨減衰が大きい。Xバンドはその分メッシュを細かくとることができるので、両者を組み合わせることで精度の高い観測ができる。
レーダー・ナウキャスト
http://www.jma.go.jp/jp/radnowc/
降水ナウキャストの説明
http://www.jma.go.jp/jma/kishou/know/kurashi/kotan_nowcast.html
降水のほか雷・竜巻の観測データとあわせて「レーダー・ナウキャスト」という名称で公開されている。ほぼ全国をカバーしている。降水予想も見ることができる。
高解像度降水ナウキャスト
http://www.jma.go.jp/jp/highresorad/
高解像度降水ナウキャストの説明
http://www.jma.go.jp/jma/kishou/know/kurashi/highres_nowcast.html
2014年8月から提供開始された、従来の降水ナウキャストのパワーアップ版。気象庁レーダーに加えて国土交通省XバンドMPレーダーと、そのほか気象庁・国土交通省・地方自治体が保有する全国の雨量計のデータ、ウィンドプロファイラ(上空の風データ)やラジオゾンデの高層観測データを使用。
XRAIN
http://www.river.go.jp/xbandradar/
XRAINの説明
http://www.river.go.jp/xbandradar/inform.html
全国の河川管理のための観測データを活用したサービス。気象庁のような降水予想はなし。大都市部を中心とした多くの地域(=Xバンドのカバー地域のみ)をかなり詳細に見ることができる。カバーされていない地域(=Cバンド)も一応トップページでだいたいの様子をつかむことはできるが、こちらは低解像度で見づらい。
雨雲予報 by XRAIN
http://n-tenki.jp/sp/xmp/
日本気象協会のサービス。国土交通省XバンドMPレーダーのデータを元に、降水予想を提供している。
東京アメッシュ
http://tokyo-ame.jwa.or.jp/
東京アメッシュの説明
http://tokyo-ame.jwa.or.jp/ja/amesh/index.html
東京都内の下水道施設の管理のための観測データを活用したサービス。東京都とその周辺地域のデータを見ることができる。気象庁のような降水予想はなし。気象庁レーダー、東京都・埼玉県・横浜市・川崎市の各自治体レーダーと雨量計などの情報を合成している。合成処理とWeb公開は日本気象協会(tenki.jpの運営元)で行っているが、その情報がtenki.jpのデータに流用されているかどうかはよく分からない。
雨雲レーダー Ch.
http://weathernews.jp/radar/
ウェザーニューズ社のサービス。気象庁のデータを基本としているが、ゲリラ雷雨の予想精度を上げるためか、気象庁レーダーの弱い地域などに小型レーダーを独自整備している。気象庁と同じく降水予想も提供している。独自レーダーのデータが全国の雨雲レーダーに合成されているのかはよく分からない。
◇
Webに転がっている情報をもとにまとめてみたけど、間違っているかも。
気象庁 防災気象情報の技術の現状(2012)
http://www.jma.go.jp/jma/kishou/minkan/koushu120203/shiryou1.pdf
国土交通省 防災 Xバンドレーダー雨量計の整備
http://www.ktr.mlit.go.jp/ktr_content/content/000049078.pdf
東京都下水道局 降雨情報システム(東京アメッシュ)の概要について(2007)
http://www.asianhumannet.org/db/datas/0912-j/sewerage-amesh.pdf
日本気象協会 局地豪雨に関する情報提供について
http://www.mlit.go.jp/common/000032842.pdf
WITHレーダーによる局地的強雪の捕捉と除雪作業支援
http://www.hkd.mlit.go.jp/kanribu/chosei/fuyutopia/ronbun/r81.pdf
レーダー・ハンター れー太ー君
http://rebamga.web.fc2.com/weather/3-radar.html
ただのコピー記事だけど、自分用メモとして。
やりたいこと
・自宅サーバのIPアドレスが固定じゃないので、変更を検知してDNSレコードを随時更新したい
・自宅サーバはWin32環境(WS2008R2)、DNSサーバはVALUEDOMAINを使用
Win32ならDiCE使えって話だけど、このページのスクリプトを使ってみた。DiCE有料版でサービス使わなくてもログオフ状態で更新できるよ。
POWERSHELL スクリプトで VALUE-DOMAIN の DDNS を更新
http://awoni.net/blog/2009/10/362/
(※Windows Server 2008 R2で確認)
まずはこのファイルをローカルのどこかに置いて、14行目までを自由にカスタマイズ。
# ドメイン名
$DOMAIN = "example.com"
# パスワード
$PASS = "password"
# サブドメイン名 すべての場合は*
$HOSTNAME = "targetserver"
# IP アドレスを取得するページのURL
$IP_URL = "http://example.com/getremoteaddress.php"
# Value-Domain のDDNSサーバの登録ページのURL
$DDNS_URL = "http://dyn.value-domain.com/cgi-bin/dyn.fcg?"
# ログファイルを保存するディレクトリ
$DATAPATH = "C:\path\to\"
$IP_FILE = "old_ip.txt"
$LOG = "log.txt"
# ログの出力
function write_log($message)
{
$now = Get-Date;
Add-Content ($DATAPATH + $LOG) ($now.ToString("yyyy/MM/dd HH:mm:ss") + " " + $message)
}
# 記録しているIPアドレスの取得
if (Test-Path ($DATAPATH + $IP_FILE))
{
$old_ip = Get-Content ($DATAPATH + $IP_FILE)
}
else
{
$old_ip = "0.0.0.0"
}
echo $old_ip
# IPアドレスの取得
$wc = New-Object System.Net.WebClient
try
{
$new_ip = $wc.DownloadString($IP_URL)
$wc.Close;
}
catch
{
write_log("11:IPアドレスが取得できません。")
try
{
$new_ip = $wc.DownloadString($DDNS_URL + "ip")
$wc.Close;
}
catch
{
write_log("12:IPアドレスが取得できません。")
echo "12:IPアドレスが取得できません。"
return;
}
}
echo $new_ip
if ($old_ip -eq $new_ip)
{
write_log("00:IPアドレスの変更がありません")
echo "00:IPアドレスの変更がありません"
}
else
{
# アドレスが変更されている場合にVALUE-DOMAINのDDNSサーバーの更新
$wc = New-Object System.Net.WebClient
try
{
$status = $wc.DownloadString($DDNS_URL + "d=" + $DOMAIN + "&p=" + $PASS + "&h=" + $HOSTNAME)
echo $status
}
catch
{
write_log("12:サーバに接続できません。")
}
$st = $status.Split("`n")
if ($st[0] -eq "status=0")
{
Set-Content ($DATAPATH + $IP_FILE) $new_ip
write_log("0:OK IP:" + $new_ip)
}
else
{
write_log($st[0] + ":" + $st[1])
}
}
[DOWNLOAD]
(※ダウンロード後に拡張子をtxtからps1に変更して下さい)
設定について少し解説。
# ドメイン名
$DOMAIN = "example.com"
# パスワード
$PASS = "password"
# サブドメイン名 すべての場合は*
$HOSTNAME = "targetserver"
これらはVALUEDOMAINで使っているものを入力。
# IP アドレスを取得するページのURL
$IP_URL = "http://example.com/getremoteaddress.php"
IP_URLはリモートアドレスを取得できるURLを入力。
巷にはいくつかあるが、ひとまず自前で用意。
3行だけ。このgetremoteaddress.phpを任意のリモートサーバに置く。アクセス可能な場所なら自宅サーバでなくても良い。別にリモートホスト取得できてHTTPで返却さえできればPHPでなくても良い。
# ログファイルを保存するディレクトリ
$DATAPATH = "C:\path\to\"
$IP_FILE = "old_ip.txt"
$LOG = "log.txt"
このあたりはローカルの問題なのでお好みで。
設定完了したら右クリック→「PowerShellで実行」してみて動くかどうか確認。たぶん初期状態だと署名を求められて動かない。
そんな時は管理者権限でWindows PowerShellを実行して、以下コマンドを実行。
> Set-ExecutionPolicy Unrestricted
やばげなメッセージが出るので、セキュリティリスクを受け入れてもいい人は「Y」を入力。自己責任でやっちゃえない人は回れ右しましょう。
再度実行してみて、ps1ファイルと同じディレクトリにログファイル(log.txt)とIPアドレスメモ(old_ip.txt)が置かれたらちゃんと動いた証。実行時刻と「0:OK」が記録されていれば更新成功。
あとはタスクスケジューラにでも登録して、バックグラウンド更新させましょう。
実行するスクリプトは「C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe」で、引数として「-c C:\path\to\ddnsupdate.ps1」などとフルパスでファイル名を指定してやればOK。
POWERSHELL スクリプトで VALUE-DOMAIN の DDNS を更新 – Webアプリ作成日記
WSH/サンプル/DDNS更新スクリプト – jomura.net
新しくデジタルアンプを買って、私にとって理想的なオーディオ環境が整ったので晒してみる。
ポイント
PCもiPhoneもタブレットもすべての音声をスピーカーから出力したい……という理想を実現したらこうなった。過去にはアクティブスピーカーに無理やりアナログ線を多重接続してTVとPCの両出力対応させたり、別のアンプを買ってiPhoneからAirplayで飛ばしたり様々な苦労を重ねて試行錯誤することになった。
このデジタルアンプ、TEAC AI-301DAはとても気に入っている。現在発売されているUSB DAC兼プリメインアンプの中でBluetoothに対応しているのはこれぐらいしかない(中華系にあるにはあるがあまり流通してないようだ)。そもそもアンプやネットワークプレーヤーにワイヤレスでデータを飛ばすという発想をしているのがTEACぐらいしかない。他社はせいぜいAirplayをオマケに付けているか、単体アンプじゃなくてBluetoothスピーカーにしてしまうか、「Bluetooth使いたいなら別売りレシーバーあるから勝手にしろやオラ」みたいな姿勢らしい。そうじゃないんだ。別売りレシーバー増えたら電源管理が面倒になるからオールインワンがいいんだよ。Bluetoothオンにして、アンプの電源入れて、レシーバーの電源入れて……とかいちいち面倒くさいでしょ。
その点、このAI-301DAはBluetoothクライアントが再接続すれば自動検知してスリープ復帰してくれるし、PCの電源を入れればUSB接続を自動検知してスリープ復帰してくれる。話の分かるやつだ。
(Bluetoothはペアリングの問題で同一デバイスでないと自動検知してくれない。後述)
おまけにこいつはとても小さい。AVアンプやデジタルアンプはどれも両手で持たなければいけないほどデカいのだけど、これは片手でひょいと持ち上げられるサイズ。重量も2kg程度と軽いので、うちではミドルタワーデスクトップPCの上に置いている。
この構成で不満がある点は2つ。
1つめはBluetoothのペアリングを一対多で共存させることができない。Macbook Airで音楽再生した後にベッドに寝転んでTVでも見ようとすると、Macbook Air⇔アンプ間のペアリングをNexus7⇔アンプ間のペアリングに変更しないといけない。新たなペアリングを探索するにはアンプ本体側のボタンを押せばいいのでたいした手間じゃないといえばそうなんだけど、できればAirplayのように、クライアント側の操作だけでリモートで上書きペアリングして欲しいところ。おそらくBluetoothの仕様による制限なのだろうけども。
上記の問題のため、一旦ペアリングしたデバイスでないとスリープ状態から自動復帰してくれない。スリープ状態時に別デバイスを使いたい場合は手動でスリープ復帰させて手動でペアリングし直す必要がある。
ちなみにBluetoothの代わりにAirplayを活用するというワザもあるけど、Airplayは遅延がひどい。平均1秒、ひどいときで2秒くらい遅れる。音楽を流す分には問題ないんだけど、Macbook AirでYouTube見ながら音だけアンプに飛ばしてみるとまともに楽しめないほど遅れる。間にワイヤレスルータ1個挟んでるだけなんだけどな。その点、Bluetoothはそういう使い方をしてもひどい遅延だと感じることはない。
そんなわけでうちには不要になったAirplay/DLNA対応アンプ、TEAC NP-H750があるんだけど誰か買い取りませんか。
不満点2つめは複数インプットのミックスをしてくれない点。これはデジタル入出力なのとミキサーがないため仕方ない。例えばデスクトップPCでゲームしながらMacbook Airで音楽も流す、ということが同時にできない。これはわざわざ分ける必要もないので、デスクトップPC側で音楽再生して内部でミックスさせればよいだけの話だけど、できたら自由度上がるのになー、という意見。
そんな不満はありつつも、PCだろうがタブレットだろうがスマホだろうが関係なく、快適なスピーカーで音楽を楽しめる環境になったので嬉しい。ひとまずNexus7やiPhoneの本体スピーカー等でシャカシャカした不快な音を聴く状況からは逃げることができた。
音源⇔アンプ間をデジタルで統一することにこだわってみたのだけど、いざ導入してみるとそこまで聞き分けられるほど耳が良くなかったらしく、アナログ接続時代からの音質向上を実感することはなかった。最終的に使い勝手がよくなったからいいんだけどね。
UDCP Advent Calendar 2013 の 6日目。
http://www.adventar.org/calendars/233
先日書いたエントリがFacebookでシェアされたりイイネされたりしたのだけど、それを見て愕然。
なんぞこのドット絵みたいな関係ないアイコン…。
どうやらFacebookではリンクのサムネイルを付けようとするらしく、お節介にも自動で適当な画像を見つくろってサムネイルに仕立て上げるらしい。なのでサムネイルや説明画像がないようなエントリを書いてしまうと手近にある無関係な画像がこのように現れてしまうワケ。まったく大きなお世話ですね。
こっちはタイトルすら分からないURLだけ…。まるでフィッシングサイトみたいだ。
どうやらサムネイルすら自動で作れなかったらしい。
これを解決するにはFacebookがちゃんと解釈できるようにソースを仕込むしかない。ページのサムネイルやデスクリプションを定義できるオープングラフプロトコル(OGP)というものがあるので、それをMETAタグ内に指定する。OGPはFacebookに限らず他のSNSでも使われているらしい。
Facebookでシェアされた時のテキスト・サムネイルの変更方法
http://html-five.jp/84/
私は面倒くさいのでWordpressプラグインに頼った。
Open Graph Pro – OGPに対応したメタタグを出力するWordPressプラグイン
http://netaone.com/wp/open-graph-pro/
たぶんこれで大丈夫なはず。
もはやAdvent Calendar関係ないけど、まあいいや。