今日、動くことに気が付きました。ドラクエウォークはアップデート入ってましたけれど、OSのアップデートはまだ降ってきてないです。どうして動くようになったのかわかりません。パケットは見れていないです。
pixel6でWiFiのときドラクエウォークが動かない(つづき)
BUFFALOのルータを買いました。WAN側のMTUが設定できるの1454にしてパケットダンプ。DFが付いていない大きなパケットが内側から来るのできちんとフラグメントして外へ送っています。けれどサーバから応答がない。サーバがパケットを再構築してくれないんでしょうか。そんなことあるのか…
スマホでMTUはやっぱり変えられそうにないので、これで終了ですね。Android12になってWiFiとモバイルの切り替えがめんどくさくなったので、家ではウォークやらなければいいのかな。
pixel6でWiFiのときドラクエウォークが動かない
スマホをZenFone5(ZE620KL)からPixel6に変えたら、ドラクエウォークが自宅のWiFi接続のときにネットワークタイムアウトしてしまうんですよ。他のアプリケーションは問題なし。iPhone SEのドラクエウォークは問題なく動作。自宅のWiFiはTP-LinkのDECO M5。MTUが怪しいですがM5はMTUの設定ができない。androidもrootがないとMTUの設定はできない感じですね。どうしてrootないとダメなんでしょう。
MTUで間違いなければルータ買わないといけなさそうなのでパケットダンプしようかと思ったけれど、10Mのシェアードハブは捨ててしまってからだいぶ経つ。ポートミラーなんてCISCOのスイッチで10年以上前にしたのが最後ですよ。アマゾンでポートミラーできるハブを探すと、今は安いんですね。驚きました。TP-Linkのが安いですがM5の動作を不安に感じているのでNETGEARにすることに。5ポートは納期がかかりそうなのでGS308Eを購入。
ダンプしてみるとiPhoneのときにはICMP(Destnation unreachable, Flagmentation needed)が返ってくるんです。それでちゃんとそれに従って小さくしたパケットを送ってるんですよね。でもPixel6のときにはICMPが返ってこない。返りの経路でなんかあるのか、でもiPhoneのときには返ってくるのになんでかなーと思ってたら、このICMPの原因になるPixel6の大きめパケットにはDFフラグがついてないのに気が付きました(iPhoneにはDFが付いています)。経路のルータがフラグメントしてくれてないんでしょうか。こちらでできることはなさそうなので、やはりルータを買わなければいけなさそうです…
ニンテンドースイッチ修理
スイッチが起動しなくなりました。メンテナンスモードでも立ち上がらず。
11月30日(土)コンビニから宅配便(ヤマト運輸)で送付。箱が大きかったのか、80サイズで送料1160円。12月1日(日)ヤマトで保管扱い。2日(月)に任天堂へ到着。
4日(水)任天堂から修理品受付完了メールが来る。
5日(木)11時頃、任天堂から点検の都合上、NNIDとの「いつもあそぶ本体」設定を解除したとのメール。
5日(木)20時頃、任天堂から修理品出荷とのメール。12540円。
6日(金)修理品到着。まっさらでセーブデータ全滅。データ消えるのは当たり前なんだけども、ひどいもんですな。
3.5インチモニター
amazonで「3.5インチ HDMI モニター」を検索するといくつかヒットしますよね。3250円のKumanのやつを買ったんですよ、3320円のQuimatのと同じかと思って。 GPIOの送り配線がありませんでしたよ。まぁ、レビューを読めばわかるんですけど、きちんと読んでなかった…。
この液晶にスマートメータから取得した電力表示をできれば良いですね。使用しないときはバックライトを消しておきたいです。でも単なるHDMIモニタなんですよね。ディスプレイの信号が来なくなってバックライトが消えるのなら好都合。そうでなければ、バックライトをGPIOから制御できると良いですが、さて、できるのかな。
以下、設定備忘録
sudo vi /boot/config.txt
framebuffer_width=480 framebuffer_height=320 hdmi_group=2 hdmi_mode=87 hdmi_cvt=480 320 60 6 0 0 0
電力を取ることにする
しばらく電力量を取っていましたが、最小単位が0.1kWhで30分ごとに取得(計算)してもあまり大きな数値にならなくて面白みに欠けます。なので、電力を取ることにします。
参考
RaspberryPiでスマートメータの電力を取得する2
こちらの方を参考にします。pHATを持っていないので、必要のないところはコメントアウトして、Ambientに送る部分を追加します。約30秒毎に電力を取ってきます。
https://ambidata.io/ch/channel.html?id=5740
Bルート(電力量)をラズパイで読む
Bルートの申し込み。8月6日、東京電力パワーグリッドの申込みサイトから申し込み。翌7日、申込受付メールが届く。9日にパスワード通知のメールが、10日にIDのお手紙が届く。申込み後1~2週間と表記されてましたが、今はもう、申込者が少ないのか早かったです。早さにちょっとびっくり。
RL7023 Stick-D/IPSを購入。 8704円。これは即納。夜にwebサイトからぽちったので翌日に発送、その次の日に到着。
参考サイト スマートメーターの情報を最安ハードウェアで引っこ抜く
ここのサンプルプログラムがきちんと動くので、ハード的にはokなことが確認できました。個人的にはラズパイから瞬時電力を拾ってもしょうがないかなと思う。なんかパネルに常に表示ならいいけど。グラフ描画的にはやはり電力量かなと。なので、この中にも書かれていますが、「第2部 ECHONET Lite 通信ミドルウェア仕様」と「APPENDIX ECHONET機器オブジェクト詳細規定 Release H」の「低圧スマート電力量メータクラス規定」は読む。
積算電力量計測値っていうのがあるので、これを読むことにする。先に手動で積算電力量単位を読むと、0.1kWh単位であることがわかりました。電力量を読んで1/10してkWhとする。前回値との差をAmbientへ送るって感じ。cronで30分ごとに実行。エラー処理さぼっているし、これでしばらく様子見です。
・ラズパイにシリアル関連が入ってなかったので下記実施。
sudo apt-get install python-serial
・スマートメータからの応答メモ
D7 01 06 積算電力量有効桁数->6桁
E0 04 00014CAE 積算電力量計測値
E1 01 01 積算電力量単位->0.1kWh
E7 04 00000214 瞬時電力計測値
/bootはdumpできないんですかね
ちょっと前にsshでリモートdumpするのを書きましたが、うまく動きませんね。FATってdumpできないんですかね。よくわかりません。まだまだ知らないことばかりです。
ラズパイでdht22を使い、Ambientへデータを送る
必要なパッケージ等を入れる
sudo apt-get install python-dev git git python-pip sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT sudo python setup.py install pip install git+https://github.com/AmbientDataInc/ambient-python-lib.git
参考
温度/湿度センサーDHT22をRaspberry Piで使用する方法
Ambient
スクリプトの作成
vi dht22.py
#!/usr/bin/python # coding: utf-8 import Adafruit_DHT as DHT import ambient ## センサーの種類 SENSOR_TYPE = DHT.DHT22 ## 接続したGPIOポート DHT_GPIO = 4 ## 測定開始 h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO) am = ambient.Ambient( xxxx, 'xxxx' ) r = am.send({ 'd1':'{0:0.1f}'.format(t), 'd2':'{0:0.1f}'.format(h) }) print r ## 結果表示 # print "Temp= {0:0.1f} deg C" . format(t) # print "Humidity= {0:0.1f} %" . format(h) print t print h
cronで5分に1回動くようにしておく。stdoutとstderrは始末しておく。
ssh公開鍵とパーティションのバックアップ
micro sdのバックアップは、OS止めて取る方が正解なんでしょうが、手間なので動かしながら取りたい。なのでsshでrootでパス無しで接続させる。
ssh接続先(バックアップを取る方)で
sudo vi /etc/ssh/sshd_config PermitRootLogin prohibit-password ← こいつをコメントアウト sudo systemctl restart ssh
ssh接続元で
sudo su cd /root ssh-keygen -t rsa cat .ssh/id_rsa.pub ←下のauthorized_keysに貼る
ssh接続先で
sudo su cd /root/.ssh vi authorized_keys ←上でcatしたやつを貼る chmod 600 authorized_keys
接続元からバックアップを取る。うちの環境ならば、/と/bootだけ取ればok
ssh 192.168.x.x '/sbin/dump 0fa - /boot' | cat >sda1.dmp ssh 192.168.x.x '/sbin/dump 0fa - /' | cat >sda2.dmp