ブログ

κυσο βλογ

買い占め行動(買いあさり)

原書房「民間防衛」
35ページ

一たび輸入がとまったとなれば、買いあさりが行われやすい。
この買いあさりは、すべての人が充分な資金力を持っているわけではないから、
反社会的な行動として、これを非難しないわけにはいかない
さらにまた、買いあさりが起これば、流通機構に平常以上の負担がかかるので、
日常生活用品の供給が困難になり、ひいては国内の在庫品の分配が不公平になる
このような買いあさりに加わることは、自分の社会連帯意識の低さ、
つまり、自分勝手なことをしたのでは社会が成り立たないという意識が欠けていることを、
暴露するだけでなく、自分が有事の際の備え、貯えを怠っていたことを証明するにほかならない

台風による気圧変化の記録

台風19号による気圧変化を二箇所で比較する

BME680で二箇所の環境データをM2Xに記録し続けている。今回の台風19号について気圧変化をメモしておく。

埼玉県鴻巣市の気圧グラフ

台風の目がかなり近くを通過したので、気圧変化は尖点を持つ特徴的なものになった。

f:id:XX-Prime:20191013173650p:plain
埼玉県鴻巣市 台風19号 気圧変化

最低気圧は971.9hPaであった。

滋賀県大津市の気圧グラフ

目はだいぶ遠くを通ったので、尖点を持たないグラフになった。

f:id:XX-Prime:20191013174108p:plain
滋賀県大津市 台風19号 気圧変化

最低気圧は976.4hPaであった。

二箇所のグラフの時間的なズレを見ると台風のだいたいの速度を概算できる。面倒なんでやらないけど。

switchbot カーテン

カーテン自動開閉マッシーン

switchbotがまた面白い製品を出すようだ。

ks.switch-bot.com

段差も越えて動く

f:id:XX-Prime:20191013205305g:plain
rail moving

日本で一般的な角型カーテンレールで動作するか?

たぶん問題ない。

カーテン以外の用途

レールなら割と何でもよさそうなので、別にカーテンだけに用途を絞る必要もなかろう。1次元的な動作を必要とする、自動化したい用途に一般的に使えるはずだ。本体にフックのような構造があると色々なモノを引っ掛けられるので便利だが、画像を見る限りそのようなものは無いので自分で何とかすればOKだろう。ある程度パワーがあるなら、2つ組み合わせて洗濯物を自動的に取り込む機構もかんたんに作れそう。

まとめ

買う。カーテン以外の用途を見つけたい。IoTのデモとかで、コレをつかっておバカで派手なモノを作る輩が現れるのが目に浮かぶ・・・。

M2Xの調子が悪い

珍しくM2Xのサーバが落ちている

f:id:XX-Prime:20191005131241p:plain
M2X_down
ほとんど落ちないM2Xのサーバが珍しく停止しているのでメモ。

M2X状態モニタを見る

上の画像でリンクがある、M2X状態モニタにアクセスしてみると、現在の状態とインシデントログを見ることができる。

f:id:XX-Prime:20191005131953p:plain
status-m2x.att.com
こういうながーいスクリーンキャプチャは、chromeのデフォルト機能でできることを今知った。参考リンク
requlog.com

2019年10月3日に障害が発生して一旦収まったものの、問題は悪化しているようだ。
現時点でレスポンスタイムが0に見えるのは、単にサーバが機能していないからである。

まとめ

珍しいこともあるもんだ。
複数サイトへのデータアップロードをしておけばよかった。
今はどのあたりのサイトがいいんだろうか。
M2Xが落ちるという想定はしていなかった。

M2Xで日本時間を扱う

今更だがM2Xはタイムゾーンに対応していた

M2Xで日本時間をうまく扱えるコードとそうでないコードがあってどこに差があるのかわからず不思議でしかたなかったが、今わかったのでメモ。

pythonのM2Xモジュールのサンプルを見てみる

github.com

これの時刻まわりのサンプル部分に

>>> from datetime import datetime
>>> device = client.device('188a0afb3adc379706e780a4eafbd153')
<m2x.v2.devices.Device at 0x1652fd0>
>>> device.post_updates(values={
    'stream1': [
        {
            'timestamp': datetime.now(),
            'value': 100
        }, {

と書いてあり、エラーもなく実行できるが9時間前のUTC時刻としてデータが記録されて、グラフ表示も9時間前のデータポイントとして表示される。そんなもんか、と納得していたが、node.jsのM2Xモジュールでアップロードしたデータをグラフで見ると、ちゃんと日本時間で記録されたデータポイントとして表示される。上手くいってるnode.jsの方の時刻指定は以下のような感じである。

  var at = new Date().toISOString();
  var values = {
    temperature_enocean: [
      { value: message['value']['temperature'], timestamp: at } ],
    humidity_enocean: [
      { value: message['value']['humidity'], timestamp: at } ],
    enocean_rssi: [
      { value: message['dbm'], timestamp: at } ]
  };
  m2x_client.devices.postUpdates(
    M2X_DEVICE_ID, { values: values }, function(result) {
      console.log(result);
      if (result.isError()) {
        // Stop the update loop if an error occurs.
        //stopLoop();
        console.log(JSON.stringify(response.error()));
      }
    }
  );

つまり、toISOString()でISO8601形式に変換した文字列をセットしている。これをpythonでも真似て

            now = datetime.datetime.utcnow().isoformat()
            m2xDevice.post_updates(values={
                'temperature': [
                    {
                        'timestamp': now,
                        'value': sensor.data.temperature
                    }
                ],
                'humidity': [
                    {
                        'timestamp': now,
                        'value': sensor.data.humidity
                    }
                ],
                'pressure': [
                    {
                        'timestamp': now,
                        'value': sensor.data.pressure
                    }
                ],
                'air_quality_score': [
                    {
                        'timestamp': now,
                        'value': air_quality_score
                    }
                ]
            })

とやった所、日本時間でデータを表示できるようになった。下図はisoformat()を追加してから時刻が正常になって9時間分未来に飛んだ様子である。
f:id:XX-Prime:20180709214810p:plain

まとめ

pythonのM2Xモジュールを使っていてデータを日本時間で表示できない場合は、時刻指定でisoformat()を追加すると正常になる。

Xively personal が2018年の1月15日に停止する

メールでXively personal停止のお知らせが来た

2018年の1月15日 午後12:00(たぶんUTC) にxively personalが消滅するというお知らせメールが2017年の12月22日の午前2時(JST)に来た。
サービス消滅まで1ヶ月もない突然のお知らせというのはなかなか例が無い。

メールで推奨されている選択肢は2つ

有料のXively Enterprise に移行

ねえな。

他の無料サービスに移行

xivelyがおすすめしている無料サービスは以下の3つ

  1. Adafruit https://learn.adafruit.com/category/adafruit-io
  2. Thingspeak https://thingspeak.com/
  3. SparkFun https://www.sparkfun.com/

どれも試したことがないのでコメントできない。

データは貴重

何もしないとこれまでアップロードしてきたデータが全て消えてしまう。
特に、長い期間データをため続けてきた場合、欠損値も含めて極めて貴重な実測データなので、このまま消えて無くなるのはあまりに損失が大きい。
気の利いたマトモなサービス屋だと、サービス停止までには3ヶ月から半年程度の猶予と、データをエクスポートする手段も提供するが、xivelyを買収したlogmeinはそうではなく一ヶ月も猶予無くデータを消すよ、と言っておる。鬼畜だね。
よってデータをエクスポートするコードを自分で作る必要がある。一気に全て持ってこようとすると、apiのアクセス制限に引っかかるだろうから、少しずつgetするコードが必要だろう。
まずapiの制限を調べて、制限の元で動くエクスポートプログラムを書かないといけない。2018年の1月15日までに全データをgetできるように。うわめんどくせ。

メール本文

サービスのダメダメな終わり方の貴重な資料として、メール本文を以下に記録しておこう:

After careful consideration, LogMeIn has made the decision to retire Xively Personal from its current line of products effective January 15, 2018 at 12:00PM ET . Please note that LogMeIn will continue to offer our Xively Enterprise edition – there is no change to that edition and we will continue to support that platform as part of our IoT business.

Retiring a product is never an easy decision, and we recognize it does introduce potential challenges to active users. So we want to make sure you have all the information you need to make as seamless a transition as possible.

Access to your account:
Your Xively Personal account will remain active until January 15th. Please note that devices will not be accessible via the Xively Personal service once it is retired.

Transferring your products to another IoT service:
Should you choose to switch to another service, there are essentially two options.

1) Migrate to Xively Enterprise: The latest Enterprise version of Xively is built on a more modern and reliable architecture, which brings the benefits of pre-built hardware integrations, identity and device management features, MQTT messaging, and best-in-class security, but it may require some reconfiguring of your current devices. We do offer a 30 day free trial of Xively Enterprise should you want to try it out for yourself.

2) Migrate to another free service: If your use is primarily for experimenting and personal projects, there are several free IoT platform options on the market, such as Adafruit, Thingspeak, or SparkFun.

Please note that while no changes will be made to your account or service until January 15th, we recommend taking action to start your transition at your earliest convenience.

If you have questions, you can reach out to our team at xivelypersonal@logmein.com

The Xively Team

まとめ

完成度の高かったサービスだけに終了は残念だ。が、無料でよくここまで続いたという見方もできる。終わらせ方は最低の部類と言える。