趣味のプログラム工房

Android

Google homeで家電を操作

楽天スーパーセールでつい、Google homeを購入してしまいました。
あとこれも、ついついeRemoteを購入してしまいました。
ただ、、これが成功なのか失敗なのか、、、

eRemoteってGoogle homeから操作できないんですよね!(爆

というか、対応端末が少ない??

それはさておき、Google homeでeRemoteによる家電の操作です。
結論から言えば、、、まあ、可能です。
やり方は↓
https://qiita.com/miso_develop/items/204b2e16b1e58e52dc07

ただ、ここで注目すべくは、IFTTTと連携できる話ではなく、
nodeから家電を操作できる点です。

これがあれば!!
Autovoice→tasker→http get→Linux(webサーバ)→node broadlinkjs-rm
→eRemote→家電(赤外線)
ということができる!!
というか、実際我が家ではできました。
前回の記事の通り、OK googleを言わなくてもいいので便利です。

、、、あれ?
Google homeいらなくね?
正直、現時点でAndroidスマホよりGoogle homeが勝っている点は、ピカチュウトークができるくらい
というわけで、別に、Google homeいらないよね。。。
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Google Home Mini チョーク(グーグル ホーム ミニ チョーク)
価格:6480円(税込、送料無料) (2017/12/13時点)




2017年12月13日


androidのOK googleを変更

Gooogle Nowの起動させる言葉「OK Google」を変更する方法。
所謂Hot wordを変更する方法を発見しました。

まあ、Tasker+AutoVoiceの組み合わせなんですが、
これ、AutoVoiceの設定が難しすぎ、すごいはまりました。


この設定をすると、AutoVoice→Tasker→Google Nowという連携ができます。
これのメリットとして、本日のメインである、OK Googleの変更ができます。
二つ目に、Google Nowで作ることができないオリジナルコマンドを作ることができます。
Google Now→AutoVoice→Taskerという流れだと、Google Nowでコマンドとして登録されているキーワード(例えばテレビというワードが入るとか)はGoogle Nowで処理されてしまい、Taskerが動かないんですよね。。。それ解決できるのは大きいです。


ポイントは下記
Android
①ユーザ補助にて、TaskerとAutoVoiceを有効にする。
②音声入力のアプリをGoogleであることを確認。

AutoVoiceの設定
②AutoVoiceでGoogle Nowの項目を有効(enable)にする
③Personal Assistantの設定で、Replace Google Assistantで音声入力のアプリをAutoVoiceに”設定しない”。
Googleのままにする必要がある。
正直よくわかんないのですが、これをAutoVoiceに設定しちゃうと、なぜか、AutoVoiceで受けてくれないんですよね。なぜか。
普通なら逆っぽい気がするんですけど
④Google NowのAdvancedでAlways Cancel Ok Googleを有効
⑤General SettingsでAutoVoice ContinuousのControl Continuousを有効←一番重要
重要そうなのはこれくらい。
あとは適度にオプションを調整してください。
あと、AutoVoiceのバージョンによって、メニュー構成が違うので、違う場所にオプションがあったりするので適当に読み替えてください。

Taskerの設定
⑥Profilesを追加
Event - plugin - Autovoice - Recognized
その設定画面では、Configurationを開いて、希望のHot Wordを設定。
(私は、設定にはHard Wayをよく使います。)
→これで、設定したキーワードを受けると、Google Nowが起動するという仕組み。
⑦タスクでは音声検索、もしくは、Googleを起動するのを設定。

あと、⑦でGoogle Nowに渡さなくても処理するものは個別に設定できるので結構便利。
オリジナルコマンドはGoogle Nowで処理しないので、そのほうが便利ですよね。


ちなみに、いろいろ調べたのですが、家電を操作するなら、Alexaのほうが優秀そう。。。
Googleは対応するのが少ないみたい。
SeriならSeriでHomekitとか使えるのに。

2017年12月10日


【KODI】テレビを音声操作 概要

我が家では、KODI+chinachuの組み合わせで、スマートテレビ?
まあ、何でもできるテレビ化しております。
音楽再生できるし、録画もできるし、WEBやスマートフォン、普通のテレビのリモコンから操作もできるし。

さて、最近Google Homeなんかも出てきていますが、このテレビ KODIが音声操作できれば面白いのではないかと思った次第。

というわけで、数時間かけて(意外と簡単)、音声操作システムを作りました。これで我が家もスマートホームです。



Google NowとTasker + AutoVoiceはandroidの音声操作においては比較的ポピュラーな組み合わせのようです。

今回はこれを利用し、
①Androidで音声を認識(Google Now)
②音声が登録済みのコマンドと一致したら、登録しているタスクを実行
 (Tasker + AutoVoice)
③登録済みのタスクとして、Linuxサーバに登録してあるコマンドを実行するためのPOSTを実行(Tasker + AutoVoice)
④LinuxサーバでPOST(phpへのアクセス)を受け取り、それに基づいたphpスクリプト→Pythonを実行
 ・KODIへのインターフェースとして、texturecache.pyを利用
 ・LinuxサーバにはWEBサーバ、pho、Pythonをインストール済み
 ・WEBをインタフェースとして、php→Pythonを実行
⑤KODIを操作するPythonスクリプトtexturecache.pyを実行
⑥テレビが操作できてめでたしめでたし

という具合です。

texturecache.pyのマニュアルは完全に英語(ネット上にも日本語の情報は一つもなし)
Tasker + AutoVoiceも英語(ネット上にもあまり情報なし)

言語の壁のせいで意外と苦労しました。。。
でも、ほぼそれだけ。楽勝ですね!

次回以降で詳細説明予定

ちなみに、Kodiはraspberry piを利用。
Amazon Echoとか、最近はAIスピーカーキットとかも出ているようですが、お金がかかるので、無償で実現できる方法として。(Taskerに数百円かかるのは無視)
スマホを利用することが肝ですね。




2017年11月02日


Android TVを使ってみた

Raspberry Pi 3用にAndroid TVをインストールしてみました。
が、現時点では実用には程遠い感じ。

そりゃ、ネット上にほとんど情報がないわけだ、書くことがない。
使えないです。。

2017年07月16日


Android セーフモードでアプリを動かす!

我が家のAndroidがどうもハード的に壊れてセーフモードでしか起動しなくなってしまい使い物にならなくなった。。。

というのを若干解決したので、報告。

割と単純ですが、セーフモードでもadbを使えばアプリを起動できることを発見。


adbを使えるようにするやり方は割愛。
と思ったけど、検索で出てくるページは結構古い情報が多く、その通りにはできないので、ちょこっとだけ説明

ダウンロードするSDKは「tools_r25.2.3-windows.zip」とかでOK。
インストーラ形式でないため、「SDK Manager」は勝手に上がってきません。
セットアップのEXEはもう配布されていないのかな?
ZIPを解凍して「android.bat」を動かせば、「SDK Manager」が動きますが、、このままだと、たぶんCドライブ直下にモジュールがインストールされるので、バッチを少し書き換える必要があります。
というわけで、「android.bat」の中に記載されている、「tools_dir」のパスをインストール先のディレクトリに書き換えてください。(たぶん67行目)
例えば、こんな感じ「set tools_dir=C:android_sdk_toolstools」

あとは、ほかのページにお任せ。

adbからのアプリの起動方法は、
まず、動かしたいアプリ(パッケージ)のパッケージ名を調べます。
パッケージ一覧:pm list package

そのあと、「activity」を探します。
pm dump [パッケージ名]

そしてようやく、アプリの起動です。
adb shell am start -n [パッケージ名]/[activity]

これで、セーフモード中であってもandroidでアプリが上がるはずです。
以上!

2017年01月22日


Lenov YOGA Tablet 1050Lが壊れた!【常にセーフモード】

いきなりですが、我が家の主力タブレットLenov YOGA Tablet 1050Lセーフモードでしか起動しなくなりましたorz


どうやら、ボリュームの「マイナス」ボタンが常に押されているように認識されているようです。
(プラスボタンを押して再起動すると、リセットを行うようなブート画面が出ます)

ボリュームのところの部品がショートしてるのか、、、ボタンのがくっついちゃったのか。。。
修理に出すのもとっても高いみたいなので、ダメもとで分解してみることにしました。

分解の仕方は、まず、ヒンジのところを開けて、シールをはがします。


すると、普通のネジが出てくるので


あと、SDやSIMを入れるところを開け、「S」のシールを削ると、ネジが見えます。


あとは、割と簡単に開きます。
ネジも普通のネジでしたし、昔ばらしたMac iBook G3よりははるかに楽です。

で、問題のボリュームの部分を見てみました。

写真がうまく取れていないですが、、、異常はありませんでした。

いろいろいじっては見たのですが相変わらず、セーフモードから抜け出すことはかなわず、、、。
つーわけで、ブチ切れて、ボリュームの部品を切り取りました!
これで、ショートさせる部分(ボタン)がなくなるんだから押しっぱなし状態も解消するだろ!

と思っていたのですが、切り取っても全く状況は改善しなかった。。。
なぜだ、、、もっと内部でショートしてる?
押しっぱなしの状況は解消されたはずだけどボリュームの部品なくてもセーフモードになるの?
状況は悪化しました。(ボリュームコントロールがめんどくさくなった)

セーフモードは結局治らなかった。。。
さて困った。
ブラウザは動くのでネットはできるが、ゲームアプリとかが一切動かない。

だが、あきらめるのはまだ早い。
「adb shell」があるではないか!

というわけで、PCに環境を入れて、つないで、、
「adb shell am start -n [パッケージ/Activity名]」を打つと、、、
動いた!!

これで、最悪の事態は回避できたが、日本語が入力できないのは不便。。。
何とかならないのかなぁ。

2017年01月22日


Linux MintでSoftether VPN

--前回までの話。
Linux MintにVirtualBoxをインストール
ゲストOSとして「Sophos XG Firewall」をインストール。
Sophos XG FirewallでVPNサーバを構成しようとしたが上手くいかず断念。


というわけで、ホストの方に「Softether VPN」を入れることにしました。
目的はOpenVPNによるandroidスマホからの接続です。
インストール手順は、、ここでは省略。
インストール後、Softether VPNの設定自体は、ManagerをインストールしたWindowsマシンから行います。


当初、ローカルブリッジの設定にて、「物理的な既存のLANカードとのブリッジ接続」を行っていたのですが、上手くいかず断念。
仮想NATとか、構成してみたのですがどうやってもうまくいかず。

その後、ローカルブリッジの設定を「新しいtapデバイスとのブリッジ接続」で構成し、やはり、仮想NATとかを構成したり試行錯誤したのですがやっぱり思うようにいかず。
うーん、、、
そのあと、参考にしたのが
http://www.jifu-labo.net/2015/11/softether_ubuntu/
ひょっとしてブリッジインタフェースにIPの設定が必要なのか?
ということで、「新しいtapデバイスとのブリッジ接続」で作成された仮想ブリッジに対しIPアドレスを設定してみました。(仮想ブリッジ名はifconfigで確認できます。)
すると、、、おっ!こいつ、、動くぞ!

「Softether VPN」側の設定としては、VPNのクライアント側は別セグメントのアドレスを割り当てているので、SecureNAT機能を有効にして、仮想DHCPサーバを設定。
ただし、NAT変換は不要なので、SecureNAT機能を有効にしつつも、設定としては仮想NATは無効。
デフォルトゲートウェイには、上記で設定した仮想ブリッジのアドレスを設定。
正解かはわかりませんが、今のところこれで正常に動いています。

2016年12月19日


Zenfone2 Android 5.0 楽天モバイルでL2TPがうまく動かない

タイトル通り、Zenfone2、Android 5.0楽天モバイルの環境でL2TPがうまく動きません。

原因不明です。

自宅に、VPNのサーバを立てているのですが、まず、Wifiでは安定してつながります。
というわけで、ハード、OS、設定には問題なし。
しかし、MVNO(楽天モバイル)経由だとコネクションはされるのですが、しばらくするとすぐに切れる。
ほとんど使い物になりません。
ってことは、楽天モバイル(回線)が悪い?
でも、楽天モバイル(回線)をデザリングして、iPhoneからサーバへつなぐと安定してつながる、、、あれ?
というわけで原因不明なのです。

VPNサーバ - Wifiルータ - Zenfone2 ・・・OK
VPNサーバ - ルータ - 楽天モバイル - Zenfone2 ・・・不安定
VPNサーバ - ルータ - 楽天モバイル - Zenfone2 - iPhone ・・・OK

というわけで、これ何が原因なの?

いろいろと、トライ&エラーを繰り返してみたのですが、やっぱり原因不明。
syslogに Maximum retries exceeded for tunnel XXXX. Closing.
というログがあったので、これをヒントに調べたところ、
L2TPのKeepaliveの設定が怪しいとのこと。

というわけで、Gitからソースをダウンロードしてきて、L2TPの固定値を変更してコンパイルすることに。
2tp.h
#define NZL_TIMEOUT_DIVISOR 40
#define HELLO_DELAY 260 /* How often to send a Hello message
#define DEFAULT_MAX_RETRIES 20 /* Recommended value from spec */


network.c:248
// tv.tv_sec = 1;
tv.tv_sec = 10;

でも、全く意味なし。


いろいろ調べたのですが、どうも、android側から切断しているようなので、
サーバ側のパラメータを変更してもあまり意味がなさそうです。
(切断のタイミングを見たところ、どうもandroid側が先に切れている)

というわけで、全くのお手上げ。
回線の関係上、PPTPは使えないし、どうしたものやら。。。

2015年09月22日


AndroidでLTE(電波)を掴まない!MVNO SIMフリー端末

私は、Zenfon2なのですが、楽天モバイルでの購入品です。

で、タイトル通り、電波はあるはずなのですが、なかなかLTEを掴まない。
なので、電波があるのに通信ができないという状況にたまに遭遇します。

で、ネットで情報を探したところ、「不要なAPN設定の削除」で解決!
だそうです。


私のZenfon2ですが、楽天モバイルをはじめ、20社くらいのAPN設定が入っていました。
納得です。

というわけで、さっそく削除。
何となく改善した気がする。

2015年09月12日


バッテリーの持ちがよくなった!NOVA Launcher

Zenfon2を使用しているのですが、デフォルトはAsusuのランチャーなわけですが、
それをNova Launcherに変えてから、バッテリーの持ちがよくなった!(気がする)

軽いんですね。省エネでいいです!

それに、カスタマイズもできて、デフォルトより使いやすいです。
おすすめ!

2015年09月06日


次へ