とも のすべての投稿

新米NW&セキュリティ屋さんです。 ブログも転々としながら書いたり書かなかったり。 3度目?の自鯖構築のついでに本気で書いてみようかな~と思い立ったがまともに書かず・・・。

AQUOS R5G(SHG01)を購入しました。

ども。こんにちは。

発売日(2020/03/27)にヨドバシカメラ新宿西口本店で購入しました。

¥129,145なり。高い。。

今回は店員さんがとてもいい人で、余計な契約やオプションの追加もなく、むしろ不要なオプションの見直しなどしてくれました。
前回はさんざんだったので助かります。

ちなみにプランはピタットプラン5Gに変更しました。
SIMカードはそのままです。(入れ替えのみ)

これでおいらも5G対応!なんだけど、エリア(というか現時点だと”スポット”のほうが正しい気がする)が近所に無いのでまだ5Gにつながってません。

そしてついにHTC信者から卒業しました。HTCとは13年ほどの付き合いでした。
HTCからSnapdragon 865搭載のモデルが出ればすぐにでも買うつもりだったのですが、もう出ないかな。。。

【歴代スマートフォンたち】
X02HT(HTC Cavalier)
X04HT(HTC Touch Diamond)
X02T(これだけ東芝)
htc evo WiMAX(ISW11HT)
HTC J(初代J、ISW13HT)
HTC J One(HTL22)
HTC J Butterfly(3代目蝶,HTV31)
HTC U11(HTV33)
AQUOS R5G(SHG01) New!

HTC U11は本当に名機でした。発売日に購入したので、2年9ヶ月ほど使っていますが、バッテリーが少しヘタった以外は動作上も問題なくまだ現役で戦えます。

とはいえ、使い始めて3年近くになってきたし、画面も少し割れてるし5Gに合わせて買い替えたかったのでAQUOS R5Gを購入しました。

しかし、でかいですねぇ。。。
買い換えるたびに大きくなっていきます。

んで、SDカードもこれように買い足しました。

microSDXC 256GB SanDisk サンディスク Extreme PRO UHS-1 U3 V30 4K Ultra HD A2対応 SDアダプター付 [並行輸入品]

¥6,920なり。8Kでの動画撮影にはU3に対応したSDが必要らしい。256GB。

ちなみにこれは以前も購入しています。

ケースは今回もSPIGENです。

【Spigen】 AQUOS R5G ケース [ ストラップホール付き ] [ SH-51A / SHG01 ] 対応 TPU ソフトケース 全面 クリア 衝撃 吸収 指紋防止 薄型 軽量 アクオスR5G カバー シュピゲン リキッド・クリスタル ACS01048 (クリスタル・クリア)

¥1,590なり。

 

とりあえずいろいろ移行しました。

今回は折角なのでバックアップからは復元せずポチポチ移行していきます。
ずっとHTCだったので、かなりの精度で引き継ぎできていましたがメーカも変わったし心機一転再設定します。

・SNS系
Google/Twitter/Facebook/Messenger/LINE
・メール予定表他
Exchange(Office 365)
・電子マネー系
モバイルSuica
モバイルPasmo
楽天Edy
・認証系
銀行のトークン
クレジットカードのトークン
Microsoft Authenticator
→Microsoft Authentiatorはバックアップから復元できるので便利です。。
・VPN
FortiClient VPN
FortiToken

地味にモバイルSuicaとモバイルPASMOの切り替えに対応しています。

とりあえず使えるようになったので雑多な感想です。

  • 本体がでかい、裸だと持ちづらい、カメラが出っ張ってるので机に置くときに嫌な感じがある。
    • ケースで対応
  • 持つといちいちカメラに指が当たる
  • カメラがいまいち。12MPならそんなにわるくないかも。4Kとかは暗い感じであんまりきれいに取れない
  • 本体が発熱する気がする。(SD810ほどではない)
  • 充電終わってるのにずっと発熱していることがあった。
  • 時々パケづまり?ににた症状がある(Wifiでも)
  • エモパーは便利なのかよくわからない
  • Android 10のジェスチャーは慣れれば便利。戻るキーと違って右手操作でも片手て戻れるのは便利
  • 顔認証は意外と便利
  • Office365はプリインストールのPCメールとやらで同期しているがちょっと同期が不安定な気がする(バッテリーの最適化はoff)
  • LINEの通知や楽天Edyのオートチャージはやっぱりコケるのでバッテリーの最適化から外すこと。
  • テレビはまだ使ってない(使う気もない)
  • 動作はヌルサク、120Hzはアプリごとに切り替えできるぽい。
  • バッテリーは搭載容量の割に持ちが悪い(減りが早い)気がするがまだあんまり外出してないので未知数。

そんなところですかね。

少し発熱が気になる以外は満足です。

ではでは。またの機会に。

【雑記】書きたかったこと。出来事。買ったものとか(2020年3月)

ども。こんばんは。

雑記です。

■龍が如く7 光と闇の行方をクリアした(2020/03/08)

クリアしました。今回はかなり良かったですね。ストーリーも春日一番はじめ各キャラも魅力的でした。

■クラウドファンディングで買ったrestmeが届く(2020/03/20)

resetmeはこんなやつです。GREEN FUNDINGで支援していました。

磁力浮遊技術採用で360度自由自在コントロール!
作業効率向上に最適な新感覚リストレスト「Rest Me」

無事プロジェクトが完了したのですが、新型コロナウイルスの影響があって納品が遅れました。

うーん、これはちょっと、おいらには合わないかも。

なかなか滑りも良いのですが、おいらの姿勢が悪すぎてリストレストは合わないですね。とりあえず会社に持っていきました。

■映画 この素晴らしい世界に祝福を! 紅伝説をみた(2020/03/24)

これは面白かった!おすすめです。

■チタン製のキーリングを買ってみた(2020/03/25)

TISUR キーホルダー リング チタン カラビナ おしゃれ キーチェーン 紛失防止 取付簡単 (楕円形リング*1個+キーリング(K1)*1個)

Amazonで¥999なり。

今使っているキーリングがサビサビになったので交換。

軽くて錆につい良いらしい。確かに軽いですね。シンプルな見た目もいい感じです。

■AQUOS R5Gを購入して5Gの人になった(2020/03/27)

これは別記事で。

ではでは。またの機会に。

OCNバーチャルコネクトでIPoE + IPv4 over IPv6接続

ども。こんばんは。

混雑時間帯のフレッツが激遅になるので、IPoE + IPv4 over IPv6でフレッツ網を迂回してヒャッハーしようという話です。

前回の記事はこちら:
いつからIPoEはIPv4トンネリングももれなく対応していると勘違いしていた?

結論、できました。

どうやら、OCNのOCN v6アルファは、OCNバーチャルコネクトと全く同じ方式(MAP-E)らしいという情報があり、対応ルータをかってみました。

対応ルータについては以下のサイトが参考になります。
※ちなみにホームゲートウェイであるPR-500KIも対応はしているようですが、フレッツ・ジョイントとやらからソフトウェアをホームゲートウェイに突っ込まないとだめ?らしいです。

無線LANルーターの「OCNバーチャルコネクト」対応状況(2020年3月)

本当は、OCN v6アルファ契約時にレンタルされるものとほぼ同等と製品思われる、NECプラットフォームズのAterm WG1200HS3がほしかったのですが、在庫が少なかったり、値段が高かったりといい感じにてにはいりませんでした。

参考:NEC製市販ルータ、ついに【OCNバーチャルコネクト】対応!

参考2:OCNのIPoE、自社設備への完全移行か

なので、今回は以下のルータを購入しました。

BUFFALO WiFi 無線LAN ルーター WSR-1166DHPL/N

Amazonのタイムセールで¥3,980で購入できました。

決めては、発売時からOCNバーチャルコネクト対応していることと、値段です。

今回購入したのは簡易パッケージのものらしく、かなり簡素です。けど、このくらいで十分な気がしますね。

さて、特に設定上困るポイントはないです。
OCNバーチャルコネクトを選んでぽちってやるくらいです。

すぐに繋がりました。

ちなみに、ホームゲートウェイ側では前回同様IPv6がちゃんと払い出されていますね。

で、きになる速度ですが、混雑しやすい21;00〜23:00の間に何度か図ってみました。

この差です。

・PPPoE

・OCNバーチャルコネクト

PPPoE側は有線かつマシンスペックもそこそこです。
それでも無線にあっさり抜かれるほどフレッツ網は詰まっているのですね。

約4000円で世界が変わるとは・・・。

なんやかんやインターリンク契約できなくてよかった。。。
OCN光にしたぶん月額もちょっと浮いたかな。

2020/03/14追記
—————————
どうやら4時間(もっと長いかも・・・)に一回くらい通信ができなくなる問題が発生しているようで、多分ホームゲートウェイのDHCPv6の払い出しに関連してると思われます。

なので、WSR-1166DHPLのIPv6設定をNDプロキシモードに変更しました。

これでホームゲートウェイ上ではDHCPv6払い出し状況には出てこなくなるけど、通信もできるし4時間超えてもちゃんと繋がるぽいです。
—————————
2020/03/13追記その2
上記ルータの変更をしてもまた切れました・・・。
インターリンクの以下のページが参考になりそうだったので、
・ホームゲートウェイ(ONU一体型ルーター)を利用している方
の設定をしてみました。
※「バッファロールーターを利用している方」はすでに実施ずみ。

これで収まるといいけど・・・。

https://faq.interlink.or.jp/faq2/View/wcDisplayContent.aspx?id=654
—————————
2020/03/14追記
上記ルータの変更をしてもまたまた切れました・・・。
最後に「IPv6ブリッジを使用する」にもしてみましたが、翌朝には切れてました。
きれるというか、通信できなくなります。エラーカウンタが上がっていく感じ。表示は「通信中」のまま。。
ルータ自身からのIPv6 Pingがホームゲートウェイまでは到達するものの、その先に行けない感じですねぇ。どこが悪いんだろうorz
—————————
2020/03/21追記
サポートに問合せたところ、原因は不明で、以下で改善するか試してほしいとのこと。
IPv6設定「インターネット@スタートを行う」を選択してすぐ右下の「IPv6ブリッジを許可する」のを外す。
改善せずorz
パケットキャプチャをとってみたところやっぱりWSR-1166DHPLから先にパケットが出ていない。ただIPv6は通ってるのでMAP-Eの問題かなぁ。
最後の手段でファームウェアを1.00にダウングレード(設定は全部やり直しorz)してみた。。これで改善しなかったらおとなしくNECのルータに買い替えかなぁ。

 

ではでは。またの機会に。

いつからIPoEはIPv4トンネリングももれなく対応していると勘違いしていた?

2020/03/13追記
————————
結果、一台ルータを買いましたがうまくいきました。
詳細は以下の記事で。

ある種インターリンク契約しなくてよかったのでちょっと助かったかも。

OCNバーチャルコネクトでIPoE + IPv4 over IPv6接続
————————

ども。こんばんは。

いろんな勘違いが重なりました。

・混雑する時間帯のネットが遅い。2Mbpsとかに落ち込むし詰まってる感じがある
・DS-Liteでフレッツを迂回するのが良さそう
・フレッツv6オプションは無償で提供されているIPoEでやるのか
・OCNも対応しているな←勘違い
・でもうちはまだIPoEが対応してないっぽい←勘違い(※)
・OCN光ならIPoEが提供されている←せいかい
・OCN光に転用しよう!←まちがい
・OCNってDS-Liteじゃなくて OCN v6アルファとかいうサービスでMAP-Eだわ。しかも専用ルータ新型コロナウイルスの影響で出荷停止中だわ←げんじつ

※以下のページで見るとまだ準備中なのですが2019年3月にメールで開通したことが知らされていました。。。OCN光への申込時にカスタマーフロントの人に、OCN光に変わったらすぐにIPoE使えますか?と質問したところ、すでに使えますよ。。。とのことでした。
https://www.ntt.com/personal/services/internet/hikari/ipv6/ipoe/area.html

なんで、こんな勘違いをしたのでしょうかね。。

で、勘違いしたままFortiGateの設定をいじりまして、結論こんな感じでIPoEでIPv6接続はできました。

が、NTT東のゲートウェイにipv6-tunnel張っても全然パケットが帰ってこなくて発覚しました。。。

FortiGateの設定としては、こんな感じ。うちはひかり電話ありです。

今回は専用のvdom(ipv6)を切り出しています。

config system interface
    edit "ホームゲートウェイにつないだI/F"
        set vdom "ipv6"
        set type physical
        set snmp-index 17
        config ipv6
            set dhcp6-prefix-delegation enable
            set autoconf enable
        end
    next
end

これをやると、こんな感じでIPv6が降ってきます。

ftg (ipv6) # diagnose ipv6 address list

dev=xx devname=xxx flag=P scope=0 prefix=64 addr=2400:4050:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

この時、ホームゲートウェイ(うちはPR-500KI)の「DHCPv6サーバ払い出し状況」を見ると、ちゃんと払い出されます。

ちなみにWAN側?というかNGN側?はひかり電話の場合は/56をもらってくるようです。そこからFortiGAteに/60で払い出してもらっています。(Prefex Delegation?なのかな。。。)

んで、DS Liteようにトンネルを作ります。

 

config system ipv6-tunnel
    edit "ds-lite"
        set source FortiGateのIPv6(オプションなので不要かも?) 
        set destination 2404:8e00::feed:101 ←100か101
        set interface "internal13"
    next
end

で、あとはここでつくったds-liteというインターフェースにipv4のデフォルトゲートウェイをstatic routeで設定し、さらにポリシーを書きます。NATは有効?にしておきました。

が、結局冒頭のとおりOCNはDS-Lite非対応なので、diagnose ipv6 ipv6-tunnel listで確認したところ、TX は増えるもののRXが増えません。

ちなみにこの状態でもIPv6での通信はできます。おいらがやりたいのはあくまでのこのIPv6網にIPv4をトンネルさせて混み合っているフレッツ網を迂回したいのです。。

ということで、インターリンクのzoot nativeに申し込みます。
これ、OCN解約してもいいのに、無駄に光コラボで逃げれなくなってしまった。まぁいいか・・・。

で、インターリンクのページからNTT東日本のお客IDとアクセスキーを入れてみたところ、以下のように出てしまいました。

入力いただいたフレッツ回線は、既に当社以外のIPoEサービスをご利用中のようです。

申込には他社のIPoE契約をご解約いただく必要があります。現在のご契約を確認してください。

まず、OCNのIPoEを解約しないと行けないようですが、やり方が分からいので、フレッツのサービス情報サイトからv6オプションを廃止しようとしてみても、

お客様のご利用の回線ではフレッツ・v6オプションを廃止できません。

と言われて先に進めません。

うーん。詰んだ。

一旦ここまで。

ではでは。またの機会に。

 

 

 

インターネット(IPv6 IPoE)に対応したプロバイダサービスをご利用の場合、インターネットがご利用いただけなくなります。

久々にフレッツネタ – サービス情報サイト(NGN IPv4)にFortiGateで接続する

ども。こんばんは。

別にFortiGateあんまり関係ないのですが・・・。

ちょっと最近混雑する時間帯のOCNの速度が全然出ないのでDS-Liteにでも手を出そうかなと思っていろいろ調べています。

ただ、OCNのIPoE方式は、我が家にはまだ対応していない模様。

OCN IPv6インターネット接続機能(IPoE) 今後の提供予定について

どうやら、「2017年7月24日以前にOCN 光をご利用開始したお客さま、2017年8月31日以前にOCN for ドコモ光をご利用開始したお客さま、2018年6月14日以前にOCN 光 with フレッツをご利用開始したお客さま」はまだ未対応らしい?です。

うーん。InterlinkのZOOT Nativeにでも契約してやろうかな。。。

さて、DS-LiteというかIPoE?を使ってVNEから出ていくためには、フレッツ・v6オプションとやらに申し込む必要があるらしい。

電話で申し込むと¥1,000かかるみたいですが、サービス情報サイト(旧称フレッツスクエア)からの申込みは無料らしい。
※ちなみにIPoEを申し込むときについでにv6オプションも申し込めるらしいです。

で、久々にサービス情報サイトでも覗いてみようかとつないでみます。

フレッツ 光ネクスト、フレッツ 光ライトプラス、フレッツ 光ライトご利用の方はNGNの方のIPv4かIPv6のサービス情報サイトにつなぐみたいですね。

なお、過去記事で引っ越し当時にはつないでいたみたいですが、SRXからFortiGateに変えたタイミングでなんか諦めていたっぽいです。理由は覚えてないですがつながっていないPPPoEインターフェースが残ってました。。

過去記事:NTT東日本フレッツ関連のメモ

とりあえずこれ見ればOKです。

ルーター等をご利用のお客さま

PPPoEを一本追加して、以下のページ記載のアドレス宛のルーティングをPPPoEに流します。
※本記事作成段階では、123.107.190.0/24と220.210.194.0/25。

https://flets.com/customer/next/square/faq/faq_routing.html

*.v4flets-east.jp関係の名前解決を以下のDNSサーバに向けます。
※本記事作成段階では、123.107.190.5と123.107.190.6

https://flets.com/customer/next/square/faq/faq_dns.html

うちの場合は内部のDNSサーバでゾーンを作ってFowardしています。こんな感じ。

        zone "v4flets-east.jp" {
                type forward;
                forward only;
                forwarders {
                        123.107.190.5;123.107.190.6;
                };
        };

ちなみに、これ設定したところ、以下のようなエラーがでて名前解決ができませんでした・・・

error (broken trust chain) resolving ‘www.v4flets-east.jp/A/IN’: 123.107.190.5#53

よくわからんので、DNSSECをまるっと無効にして逃げました。
DNSSEC一回ちゃんと勉強しよう・・・。

んで、まぁ結局アクセスできました。

久々にみたわー。

結果、v6オプションは申込済みでした。
よく覚えてないのですが、引越し前にNTT西日本で申し込んでたので、そのまま東でも申し込んでたのかなぁ。セッションプラスも契約してたみたい。
※セッションプラス申し込まないと同時2セッションなので、うちの場合サービスサイト用のPPPoEは接続できません。(すでにOCNとInterlinkにPPPoEを張っているため)

ではでは。またの機会に。

令和になったことだしクラウドへ移行する – 15 – Azure AD Connectを強制停止する

ども。こんにちは。

先日ADをぶっ壊してしまい、再構築しましたが、AD Connectはインストールしておらず、以前のオンプレEchangeからExchange online(Office 365)へ移行した際に設定したAzure AD Connectがずっと同期エラーの状態でした。

また、こんな感じでソースが「Windows Server AD」となっているユーザは、Azure AD上で編集や削除ができません。
不要なユーザはAzure AD上でサインインをブロックに設定はしていましたが、いい加減適当な名前のユーザも結構います・・・。

もう二度とオンプレADと同期はしないと覚悟を決めたので、同期を強制的に解除します。

やり方としてはPowerShellで

 Set-MsolDirSyncEnabled -EnableDirSync $false

を叩くだけです。

参考:Office 365 のディレクトリ同期を無効にする

上記のページにも書いていますが、これは最終手段というかもう二度と同期しないくらいの覚悟?のコマンドのようですね。

PowerShell を使用して、ディレクトリ同期を無効にすることができます。 ただし、トラブルシューティング手順としてディレクトリ同期を無効にすることはお勧めしません。 ディレクトリ同期のトラブルシューティングに関してサポートが必要な場合は、「 Office 365 のディレクトリ同期の問題を解決する」の記事を参照してください。

ハマったのは、反映されるまでの時間です。

オンプレミス Active Directory Domain Services から Azure AD に同期したオブジェクトを管理、削除できない

注: アカウントが無効化されるまで、72 時間ほどかかる場合があります。処理に要する時間は、Office 365 サブスクリプション アカウントにあるオブジェクト数により異なります。

結局、ソースがAzure Active Directoryに変わるまで36時間ほどかかりました。

これで無事Azure AD上から削除できます。

で、やらかしたことは・・・

ユーザを消しすぎた

です・・。

オンプレExchangeからOffice 365に移行したときに、いくつかのメールボックスをユーザメールボックスから共有メールボックスに変換しています(ライセンス節約のため)が、変換前のユーザを勢いで消してしまい、一瞬共有メールボックスがみえなくなりました。。。。

すぐに削除済みユーザから戻したので復活しましたが・・・。

これ忘れそうだな。。。

以前ここで読んでたのに忘れてました。

ユーザー メールボックスを共有メールボックスに変換する

古いユーザー アカウントは削除しないでください。 それは共有メールボックスの固定に必要です。 ユーザー アカウントを既に削除している場合、「削除済みユーザーのメールボックスを変換する」 (削除されたユーザーのメールボックスを変換する) を参照してください。 

またやらかしそう・・・

ではでは。またの機会に。

【バックナンバー】

ではでは。またの機会に。

HaloCode(ESP32)でMicroPythonを動かす(1)

ども。こんばんは。

Codey Rockyに続いて同じくMakeBlock社のHaloCode(ハロコード)も買ってしまいました・・・。

今回買ったのは、
Makeblock Halocodeスタンダードキット【国内正規品】
Amazonで¥5,890なり。

本体だけでも良かったのですが、電池ケースが欲しかったのでキットにしてみました。
本体だけなら¥3,000以下で購入できます。

HaloCodeもcodey rockyと同じESP32チップが乗っているようで、MicroPythonが動きます。もちろんWiFiにも繋がります。

マイクが付いてるので音声識別もできるらしいのと、モーションセンサーがついています。

出力機能はLEDなのでちょっとデバッグがしづらそうですが、小さくて面白そうなので購入してみました。

 

中身はこんな感じ。

本体はかなり小さいです。

とりあえずUSBケーブルに繋いで起動してみました。

mBlock 5経由でファームウェアをアップデートしました。
使えるブロックや拡張もcodey rockyとは違いますね。

モーションセンサーと音声認識は使ってみたいですね。日本語だめな気もしますが。。。

とりあえず、先日つくったリモコンでcodey rockyを動かすスクリプトを改変してHaloCodeのモーションセンサーに合わせて動くようにしようかな。

メッセージのやり取りはMQTTでつくってみようかなー。

色々楽しみですね。

ではでは。またの機会に。

codey rocky(ESP32)でMicroPythonを動かす(3) – テレビのリモコンでrockyを動かす

ども。こんばんは。

なぜだかわかりませんが思いの外ハマっています。楽しい。

ラズパイに比べてできることに制約が多いので、制約の中でできることを探しながら色々試すのが楽しいですね。

で、今回は、赤外線(Infrared)を使って、テレビのリモコンでrockyを操作するコードを作ってみました。

・Codey
Aボタン:リモコンから受け取ったコードを表示するだけ
Bボタン:全スクリプトを停止
Cボタン:リモコン操作で動くモード

・リモコン
音量大小:速度を変更(1-100)
上下左右:押している間rockyがその方向にすすむ

・おまけ
前に障害物がある場合は、止まる。

動かすとこんな感じです。
音量キーでの速度の調整がやたら早いので少しwaitを入れたいのですが、他のコード受信時と同じ処理でやっているので、waitをかけるとrockyの動きがカクカクになります。。。

 

 

■コード

import codey,rocky,event

#このグローバル変数イマイチ
rspeed = 10

def speedctl(flg):
    global rspeed
    if flg == "up":
        if rspeed < 100: rspeed = rspeed + 5 else: if rspeed > 10:
            rspeed = rspeed - 5


#リモコンモード
# TOSHIBA製リモコン
# 64 26 音量大
# 64 30 音量小
# 64 62 上
# 64 64 下
# 64 95 左
# 64 91 右
@event.button_c_pressed
def button_c_cb():
    global rspeed
    codey.display.show("RC",wait=True)
    while True:
        ope = codey.ir.receive_remote_code()[1]
        codey.display.show(rspeed,wait=True)

        if ope == 26:
            speedctl('up')
        elif ope == 30:
            speedctl('down')

        if ope == 0:
            rocky.stop()
        elif ope == 91:
            rocky.turn_right(rspeed)
        elif ope == 95:
            rocky.turn_left(rspeed)
        elif ope == 62:
            if not rocky.color_ir_sensor.is_obstacle_ahead():
                rocky.forward(rspeed)
            else:
                rocky.stop()
        elif ope == 63:
            rocky.backward(rspeed)
        else:
            rocky.stop()

#ただのリモコン読み取りモード
@event.button_a_pressed
def on_button_a_pressed():
    codey.display.show("Recv mode",wait=True)
    while True:
        ope = str(codey.ir.receive_remote_code()[0])
        ope2 = str(codey.ir.receive_remote_code()[1])
        codey.display.show(ope2,wait=True)

#### TEMPLATE ####
#基本的な構文間違いなどにきづけるように起動時にok!と表示 
@event.start
def on_start():
    codey.display.show("ok!")

#スクリプト停止
@event.button_b_pressed
def on_button_b_pressed():
    codey.display.show("Stopped",wait=True)
    codey.stop_all_scripts()

 

ちなみに、赤外線の送信はまだうまく行ってません・・・。というか、送信機能未完成っぽい?

フォーラムでテクニカルサポートからこんな回答がでてます・・・。

リモコンに信号を送るには2つ送らないと行けないけどまだエミッターができてないよ、的な・・・。

2年経ったけどいかがでしょうか・・・。

Sensing IR signals

I am afraid that currently IR control port on mblock software is not open for users yet, although the firmware supports that. Users now cannot use remote controller to control codey rocky.
We will update the information if we add this function to mblock software officially.
Thank you for the feedback, we’ll complete APIs for IR reception emitter then.
 

【バックナンバー】

ではでは。またの機会に。

codey rocky(ESP32)でMicroPythonを動かす(2) – MQTTでメッセージの送受信

ども。こんばんは。

codey rockyではメッセージキューWとしてMQTTWが実装されています。

せっかくなのでちょっと試してみます。

MQTTについては少し古いですがこの辺がわかりやすいです。

MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する (1/3)

まずはMQTTのブローカーとしてmosquittoをRaspberry Pi上にインストールします。
※そのうちRabbit MQも試したいなと思いますがまずは手軽そうなmosquittoで試します。

ブローカーの動作環境はRaspbian GNU/Linux 9.11 (stretch)で、2020/02/16時点最新のパッケージになっています。

・mosquittoのインストール

sudo apt install mosquitto

うちの環境ではlibev4とlibwebsockets8も合わせてインストールされました。

・続いてクライアントもインストールします。

sudo apt install mosquitto-clients

libmosquitto1が合わせてインストールされました。

・ブローカーの起動

sudo systemctl start mosquitto

sudo systemctl status mosquittoで確認して特に問題なく起動していました。
1883ポートでLISTENしているみたいですね。

・テスト

以下のコマンドでtestというトピックを購読(サブスクライブ)します。

mosquitto_sub -d -t test

実行結果はこんな感じ。
※lexはうちのラズパイのホスト名です。

Client mosqsub/6162-lex sending CONNECT
Client mosqsub/6162-lex received CONNACK
Client mosqsub/6162-lex sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
Client mosqsub/6162-lex received SUBACK
Subscribed (mid: 1): 0

・テストメッセージ送信

別のターミナルでSSHに接続してtestトピックに投稿(publish)します。

mosquitto_pub -d -t test -m “test 1”

すると、サブスクライバー側で以下のように表示されます。

Client mosqsub/6162-lex received PUBLISH (d0, q0, r0, m0, ‘test’, … (6 bytes))

test 1

これで最低限の動作はokですね。

続いてcodey側にこんなコードをアップしてみました。
以下のリファレンスからサンプルコードを流用していますが、リファレンス内のサンプルコードの「from mqtt import MQTTClient」は誤りで、正しくは「from cloud_message.mqtt import MQTTClient 」です。

https://makeblock-micropython-api.readthedocs.io/en/latest/public_library/Third-party-libraries/mqtt.html

■サンプルコード

#import mqtt package
#リファレンスは"from mqtt import MQTTClient"となっているが実際はcloud.message.mqttが正しい
#https://forum.makeblock.com/t/importerror-no-module-named-mqtt/15029
from cloud_message.mqtt import MQTTClient

import codey, time, event
import utime

MQTTHOST = "mosquittoのサーバのIPアドレス"
MQTTPORT = 1883

#なんでもいいらしいが重複はだめっぽい。
#https://qiita.com/egnr-in-6matroom/items/3aef4bd45857e75bb1d3
client_id = "101"

# Example Path
#ここの指定方法がまだわからない・・・。全部取得してみる。
Topic = "#"

# ID / PWはオプション。今回はmosquitto側では指定していないので省略した。
#mqttClient = MQTTClient(client_id, MQTTHOST, port=MQTTPORT, user='test', password='test', keepalive=0, ssl=False)
mqttClient = MQTTClient(client_id, MQTTHOST, port=MQTTPORT, keepalive=0, ssl=False)

# Connect to the MQTT server
def on_mqtt_connect():
    mqttClient.connect()

# publish a message
def on_publish(topic, payload, retain=False, qos = 0):
    mqttClient.publish(topic, payload, retain, qos)

# message processing function
def on_message_come(topic, msg):
    #print(topic + " " + ":" + str(msg))
    #b'test'みたいな表示になるので、文字列化して分割。なおメッセージ自体に'(シングルクォーテーション)がある場合は""で囲まれるが未対応
    temp_msg = str(msg).split("'")[1]
    codey.display.show(temp_msg,wait=True)

# subscribe message
def on_subscribe():
    mqttClient.set_callback(on_message_come)
    mqttClient.subscribe(Topic, qos = 1)

@event.button_a_pressed
def on_button_a_pressed():
    codey.display.show("Start",wait=True)
    codey.wifi.start('SSID', 'パスワード', codey.wifi.STA)
    time.sleep(1)
    if codey.wifi.is_connected():
        codey.emotion.smile()
        on_mqtt_connect()
        on_subscribe()
        codey.display.show("Ready!",wait=True)
        while True:
            #RTCがついてないので起動からの時間となる。
            #nowtime = utime.time()
            #codey.display.show(nowtime,wait=True)
            #codey.display.show(codey.battery.get_percentage(),wait=True)
            # Blocking wait for message
            mqttClient.wait_msg()
            #ブロッキングしない方
            #mqttClient.check_msg()
            time.sleep(1)

    else:
        codey.emotion.shiver()


@event.button_b_pressed
def on_button_b_pressed():
    codey.display.show("Stopped",wait=True)
    codey.stop_all_scripts()

これをcodeyにアップロードすると、パブリッシュされたメッセージを表示するようになります。

だいぶ前に作ったbrouteから消費電力を取得するスクリプトを少し改変して、取得した結果を単純にmosquitto_pub -d -t test -m 値で投稿(publish)するようにしました。
#python上からosコマンドを実行しています。こういう移植性のないことしちゃだめですね。ちゃんとmqttをpythonから操作するように変更しないと・・・

動作の様子はこんな感じです。
エアコンを入れると消費電力がちゃんと上がってますね。

 

本当はメッセージが無い間は、時計にでもしようと思ったのですが、odey rockyにはRTCが搭載されていないようで、utime.time()で取得した値は、電源投入後からの起動時間(秒)となります。

mqttClient.wait_msg()はブロックされますが、mqttClient.check_msg() はブロックされないので、まぁバッテリーの残量を出すとかそういう感じのことはできそうですね。

あと、MQTTのトピックの指定の仕方がよくわかりませんでしたので”#”としています。一応トピックは「test」で来てるみたいですが、「/test/」とかにしてもうまく拾えないんですよね。
これはもうちょっと調べないと。

次は赤外線周りをなんかやってみようかな。

【バックナンバー】

ではでは。またの機会に。

久々にRaspberry PIのパッケージを更新したらwpa_supplicantがどっかいった話

ども。こんばんは。

久々にうちのラズパイ(Raspberry Pi 3 Model B)のパッケージを更新しました。
※raspbianのバージョンは9.1 Stretchです。ディストリビューションはそのままでパッケージの更新だけした感じです。

普通にapt-get updateしてapt-get upgradeしただけなのになぜか無線がつながらない・・・。

結構悩みました。wpa_supplicantがうまく動いてない様子。

# systemctl status wpa_supplicant.service
● wpa_supplicant.service – WPA supplicant
Loaded: loaded (/lib/systemd/system/wpa_supplicant.service; enabled; vendor p
Active: failed (Result: exit-code) since Fri 2016-11-04 02:16:45 JST; 38s ago
Process: 376 ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant (code
Main PID: 376 (code=exited, status=203/EXEC)

11月 04 02:16:45 lex systemd[1]: Starting WPA supplicant…
11月 04 02:16:45 lex systemd[1]: wpa_supplicant.service: Main process exited, cod
11月 04 02:16:45 lex systemd[1]: Failed to start WPA supplicant.
11月 04 02:16:45 lex systemd[1]: wpa_supplicant.service: Unit entered failed stat
11月 04 02:16:45 lex systemd[1]: wpa_supplicant.service: Failed with result ‘exit

これ、結論から言うと、wpa_supplicantの実行ファイルが何故か消えてました。

# ls /sbin/wpa_supplicant
ls: ‘/sbin/wpa_supplicant’ にアクセスできません: そのようなファイルやディレクトリはありません

ただ、wpasupplicantパッケージ自体はapt上に存在している模様でしたので、apt-get remove wpasupplicantしてinstallしたら復活しました。

一体何だったんだろう・・・。

特に設定とかは変えてませんが、直ったあとに、wpa_passphraseコマンドでPSKを暗号化しておきました。

ではでは。またの機会に。