goo blog サービス終了のお知らせ 

もんく [とある南端港街の住人になった人]

スペインかポルトガルの港町に住みたい
日本→インドネシア→台湾→マレーシア→日本
since Oct. 2004

MQTTで受信してデータベースに書き込み

2019-09-13 15:30:39 | マレーシアでニャー2019
MQTTで受信したデータをデータベース(Pythonに付いているSQLite)に書き込む事ができるようになった。

世間にあまり例が無かったのでちょっと苦心した。

今回やってみてわかった事。
1) 送信元が複数の時にどうするか。

paho.mqttの関数のsubscribe()の中にtopicを1つづつ入れて全部並べておく。
そんな事だったのか...

2) MQTT受信したデータの扱い。

適当に区切って変数に入れる。
....まあ、そうだろうとは思ったが、通常MQTTはloopで回っているので他に取り出し難かった。変数に入れたらすぐにデータベース書き込みの関数に渡してしまえば良い。グローバル変数にして後で処理は難しくするだけ。

3) データベースへの書き込み。

REPLACE INTOを使うとデータベースの中の表に無かったデータ(主キー)がまだ無いデータは新しい行を作って入れてくれる。もし主キーが既にあればアップデートされる。
今回は主キーをMQTTで使ったtopicにしたので、同じデバイスから送られてくればデータが無限に増える事なく、常に新しいデータに更新する事になる。(過去データを貯めないつもりだから。貯めたい場合は別のやり方が必要。)




ところで、PyCharmでデータベースファイルを見ると文字化けしていた。設定からエンコードを変更しても直らなかった。ここでいろいろやってみるのも面倒臭いので、DB browser for SQLiteと言うフリーソフトで見る事にしたら、ちゃんとデータがデータベースに入っている事が判明。よかった。



さあ、次はデータベースからデータを取り出してWeb表示するところ。来週にしようかな?

トラブルは続くだろう

2019-09-12 18:27:20 | マレーシアでニャー2019
昨日、FBのあるグループ(名前が長い)で教えてもらったところ、MQTTとWebアプリのFlaskを1つのプログラムにするのはあまりやらない事で途中にデータベースを入れて分けるのが普通だとのこと。

なのでMQTTの受信→データベース書き込みとWebアプリ←データベース読み出しと2つに分けてやってみている。まあ、MQTTは簡単だったけれどそこで受信したデータをデータベースに書き込むのは面倒で、あまり例が無かったけれども英語のサイトにあったので何とか出来そうな気がして来た。Flaskがデータベースから読み出すのも全然わからなかったが何となく出来そうだ。データベースのコマンドはこれはコメントなのか?と言う位人間の言葉みたいになっていて、これが逆に頭を混乱させる。

何にしろやればできるはずなんだが、いろいろなフレームワークが一緒になると頭の切り替えが大変だ。



話は変わるが、また今朝も生産管理のKがボヤいてた。変な事が多いらしい。

その変な事、マイナートラブルなのだけれど良い事ではない。関係する部署Aはその元を作った部署Bがミスしたと言う。自分たちがそれをチェックする機会が複数回ありながら止める事ができなかったと言うのは棚上げ。本音は知らないが。部署Bは部署Aが見てくれるからとか平気で言う。アホな!...どっちも。


工場でよくやるのが、ミスが発生したらミスのあった行程の後で検査を入れると言うような事。これやってると工場にやたら検査する行程が多くなってロスが大きくなる。時間も人件費も。ただ、それだけならまだマシで、もっと根本的にダメになってしまう事もある。


これは人間の性質によるもので、1つの仕事を1人でやる場合と2人でやる場合、そしてもっと多くの人数を割り当てる場合でどれが一番出来高が上がるかと言うあれ。2人で2倍には絶対ならない。5人で5倍は絶対無理。複数で同じ事をやると手待ちが増えると言うのもあるが、各人のパフォーマンスがガタガタと落ちてしまう。

検査も同じで複数段の検査はやればやるほど検査にならなくなる。1人でチェック表でも持たせてやる方がかなりマシ。作業員が見て、近くに検査員がいて、後工程でも検査があったりすると絶対全部スルーする場合が出てくる。

と言うわけで、朝、Kがボヤいていた時にちょうど部署Bのマネージャーが入って来たので気を付けた方が良いよと優しく言ってやったが、「部署Aが見ていてくれるから」などとバカな事を言う。もう、その意識がそのままトラブルにつながっているとわからないのか! まだまだ続く?

「今日は何の日?」はダメ

2019-09-11 08:22:07 | マレーシアでニャー2019
今日は何の日とキャサリンさんんは時々聞かれる。

もちろん自分は答えを知っていて聞くわけで、まあ、クイズみたいなものなのだけど、こっちはドキリとさせられる。あれ?何か忘れてたっけ? 結婚記念日はもう過ぎた気がするし、誕生日はまだだし、他に何かあったっけ?

それで、今日も聞かれた。はて?何だっけ?思い出せない。猫たちの誕生日は3月だし、親の...なんかはどうでも良いし、うーん、身の周りで過去の今日に何か?.... わからん。


ああ、そうだ、2001年の9月11日と言えば、他にない。アメリカで飛行機がツインタワービルに突っ込んだ日だった。2機目が突っ込むのを台湾でテレビで見ていたんだった。毎度言うけれど、ニュースじゃなくて映画かと思ったのだった。

あれから18年経ったのだった。(毎年こうしてカウントしている気がする。)


他の事はあまりカウントしたりはしないのだけれど、911だけはするのは何故だろう? あの映像が印象的過ぎるからか?


自分の事になるけれど、自分はあまり過去の事を覚えていられない人間らしいと感じている。記憶が無いわけじゃないのだけど、他人が覚えている事を自分はよく忘れる。前にも書いた事があるが、高校を卒業した途端に誰と同じクラスだったかが思い出せなくなった。それも卒業後1ヶ月以内に。校歌? 無理だ。

人の顔も覚えられないし、あった事は覚えている事もあるけれど、何年前かと問われると、ずっと昔っぽいと大体10年前か20年前としか答えられない。

だからどうって事もないが、少なくとも「今日は何の日?」の質問は止めてください。

MQTTのテスト再開

2019-09-10 23:03:08 | マレーシアでニャー2019
今、MQTTのテスト中。

前にもMQTTはやっていて問題なく動作する他人のプログラムを採用して使っていたところが、先週金曜日の帰り間際に問題が出た。続けて送信を何回もするとしばらくしてエラーが出て回復しない。

別に何も変えていないはずなのに?

いろいろやってみて、connectの後にpublish(送信)、そして再度connectのpublish、connect、publishしているとダメになるようだった。よく見るとdisconnectと言う関数もあった。なのでpublishの後にdisconnectを挟んでみたたエラーは出なくなった。

FBで相談したらMQTTにはkeepaliveと言うのがあって、何も指定しないと60秒だとか。その間にデータ送信が無くてもpingを送れ、送ったと言う相手確認が行われているそう。今回の問題はデータを送らないのではなくて、keepaliveの時間gq終わってないうちに再度connectしてしまっているのがダメな可能性が高い。

しかしながら仕様上はかなりの数、数万など、クライアントがあっても問題無さそうに書いてあるのだが?


それは置いておいて、まずkeepaliveの試験だけれど、デフォルトで何も指定無しでも1時間後に送ると再接続ができていた。なぜか?...不明。とりあえず、ループになっていて連続して送信できるらしい。が、もしかすると遠い将来それも有限かも知れないので、一定回数送信したらdisconnectして再connectするようにしておく事にした。それでも何の支障も無さそうなので。


それから、これまでのテストでは送信するデータは1個だったのを複数対応にした。計算値も一緒に送る事にしたから。また、サイクルタイムが長い行程の場合、サイクルタイムを待ってから受信側の画面更新になると空白期間ができるので送信データが無い場合に前のデータを1分置きに送るようにした。1分なら待てるだろう。

今日はここまで。

映画「鈴木家の嘘」- 「裏 鈴木家の嘘」製作希望

2019-09-09 22:04:26 | 映画って !
マレーシアではJapan Film Festivalと言うのを毎年国際交流基金が主催してやっている。日本での公開前の作品も混じっているとかでそれなりに話題作を集めてやってくれる。以前には鈴木京香の出ていたセカンドラブ(だったっけ?)を観せてもらった。(有料だけど)

それで今回は「鈴木家の嘘」を選んでみた。英語での題名はLying to Mom (お母さんへの嘘) 。

いろいろある中でこれを選んだのは、他の作品がどうも若い人向けばかりだったので年長者も楽しめそうなものにしたかったから。それにこの鈴木家、映画のなんとか賞をたくさん取っていると書いてあったし。


それで、どうだったかと言うと、メタ情報読みなさいてんこ盛り作品だった。簡単に言うと、行間を読みまくれって事になっている。本当にこれ、現代人が読める作品なのか? よほど小説読んでいる人なんかでないとわからないんじゃないかな?

だって、要点になるようなポイントが全く説明されていない。シリアス作品にしたらエラいカッコ良いものになっていたかも知れないが、コメディタッチで包んでしまっているから全くもって読むのが難しくなっている。

長男っが自殺した原因、引きこもりの原因、お父さんが何やってた(定年?)人か、妹はトレーニングしかしてないが大学生?、近所の人とはどんな関係?、その他登場人物についてもほとんど詳しくは紹介されないし、自殺した兄はどんな本をあれだけ読んでいてそこに彼のどんな考え方が反映されていたのかなど、結局最後まで何の問題解決も提言も無し。

つまり観ていてわからない。わからないって所にポイントがあって、つまりメタの所が読まなきゃいけないテーマ的な事になっているらしいと脳みそをちょっと引いた視点に置いて気付く。


それで、ただわかるのはほとんどの人が良い人で愛情深いと言う事のみ。

結局のところ、これって、今の日本の現状そのものじゃないの!って事。毎年3万人近く自殺していて、引きこもりの人もたくさんいて、皆それを認識しているのに何もできず見ているしかない。原因はきっとその周囲にいた自分個人にあると自分を責める。つまり個人の問題として認識されて社会としてはそこから一歩も進まないまま。

解決策は生き残った家族と個人がその出来事を自分なりに解釈して納得する事しかない。妹は自助サークルに入る。父は少ないヒントを基に歩き廻る。母の妹はもう気持ちを切り替えて次へ行くしかないと言う。記憶の戻った母はそれは自分のせいだと考え、妹も自分の言葉が原因だったと考える。父も子への接し方がいけなかったと解釈。

日本中の誰も手も足も出ず。...それが現状。家族に愛があって解決する事でもなし、誰もアドバイスできるでもなし、と。採りようによっては痛烈な社会批判の社会派映画なのだけど、この作りからすると誰もそうはとらないと思う。

ちゃんと考えるなら、これ、鈴木家だけにやらせて家族に愛があって、お兄ちゃん死んじゃったけど仕方ないね、チャンチャン、にしといたらダメだろ日本!て映画のはず。家族の在り方とかそんなのじゃダメだったんだから。

数年経たないうちに「裏 鈴木家の嘘」作って欲しいな。

無理3つ

2019-09-09 18:21:57 | マレーシアでニャー2019
昨日は書かなかったので昨日までの事。

1) 一昨日、この住宅地で子猫が捨てられていて夜に何回かミルクを飲ませに行ったが、朝になって一緒にあった子供用の靴箱とともにいなくなっていた件で、拾ってくれた人がわかった。

以前、犬を散歩させているのを見た同じ地域の高校生位の女の子だった。ただ、家には犬がいて子猫を育てられないとガードハウスに預けて時々ミルクを持って行っているようだ。うちで飼ってくれないかと言われたが、うちも猫はいるしいつ引っ越すかわからないので無理。誰か良い人が見つかる事を願う。

女の子はずっと以前に数回だけ猫散歩中に会った事がある。チャイニーズだとけっこう警戒心があるので立ち止まって話をする事もあまり無いが、その子はどう言うわけかフランクに最初から話しかけてきた。育ちが良いようだ。

2) 市内のいつも行かないスーパーマーケットへ行くと、野菜を計量してくれるのはバングラデシュ人が多い。が、昨日は3人中2人がマレー人の若い女性だった。通常バングラデシュ人の方がパキパキ仕事ができる。100種類も200種類もある野菜を見ただけでそれがどのコードの野菜か覚えていて 入力してラベルを印字し袋に貼る。種類が多いと言うのはナスとキュウリの区別だけじゃなく、オランダのジャガイモとアメリカのジャガイモを目で見て区別すると言う事だ。

超高速でいくつもそれをやる。(とても自分には無理)

昨日はそれをマレー人がやっていたのでちょっと驚き。まあ、普段どう仕事してるか見ていないから驚くに値しないかもしれないが、マレー人もやっぱりやれるんだと。人間の能力って民族によらずすごいものだ。


3) 休日中は家でプログラミングはしないが、頭の中にはやっぱり残っていて時々他の事をしながら思い出したりアイデアを思いついたりする。

そうそう、MQTTで受信したデータ、あれ、普通はデータベースに格納するのが普通だけれど、単に表示だけにしても良いのではないかと思い始めた。エッジ側で現在の状態、前回からのサイクルタイム、一定時間の間の平均サイクルタイムや回数などを計算して送って来る。

受信側は表示だけ。もっとデータが欲しい人は自分でNode-REDで受信する。そうするとデータベースは不要だし保存期間の事も心配しなくて良い。そうでないとデータベースの保管が時間とともにヘビーになりすぎていつかは無理が来る。だから保管はしないのがデフォルト。

それで明日から組んでみよう。

映画観るのは中止です

2019-09-07 23:54:03 | マレーシアでニャー2019
3連休なので明日どうしようと話していたら、そうだ、日本のアニメ映画やってるってね、と言う話になり、じゃあぜひ観てみようとなった。

そうそう、携帯電話のリワードで映画が安く観られるってあったよ。ああ、確かにちょっとだけ安くなる。それで観る事にして時刻と場所は? おお、何と隣のショッピングモールで観られるよ。映画館のウェブサイトではJapaneseって書いてるから日本語発音で字幕かな? 映画館スタッフに聞いてみたらその解釈で間違ってなかった。

よしよし、じゃ時刻は午前中のかな?

ところでどんな映画なのかな?

ネットで調べてみると、前の作品より良くない、主人公がxxした理由がわからない....
ふーん、物語はこうこうこう始まって主人公はxxに出会ってなんとかカントカ。

と言うあたりで全部頭の中の予定がキャンセル方向へ向かって梶を切ってしまった。

さよなら、久しぶりの日本映画。

他人にものを聞くとき

2019-09-06 14:13:14 | マレーシアでニャー2019
Webアプリのためにデータ受信用のMQTTを組み込もうと思ってたのだけど、前にも一度やった事があったのだった。忘れてた。しかしながら、とても簡単だった。こんなものプログラミングでも何でもない。ただのコピペだ。


ところで、昨日、帰りがけにMDから声をかけられた。昨日とそのちょっと前ともう少し前にマシンであるトラブルがあって、今も修理しているとか製品に不具合が出ているが...と言う出だし。

そこに後からすぐに通訳と現担当が加わってきた。

それで、症状は? 壊れた物は何? それは今どこに? 写真は撮ってある?...何も無かった。


おいおい、それで他人に何を聞くのだい?

前から言っているが、修理やトラブルで報告書を書かないし、残さないし、要求もしないし、審査もしない。しかも起きているリアルタイムではどこにも情報流してない。それで誰に何がわかるって言うわけ?

と、言う一方で、面倒臭いからチェックポイントとか考えられる原因等を今朝、エクセルに簡単にまとめてメールで送信しておいた。と言っても今まで起きた事の総集編なだけだ。ああー何て優しい自分。(つまんね)

Webアプリ、スタディ第1弾

2019-09-05 22:51:01 | マレーシアでニャー2019
WebアプリのフレームワークをDjangoからFlaskに代えて昨日やっていたのだけど、例がどれもけっこう複雑なので書いてある通りにやってもどこかで引っかかっていたりした。公式サイトの例は細かく書いてあるのだけれど逆に細かくて例題を作る以上のものが書かれていてわかりにくいし時間がかかる。

ともかく、あるサイトに出ていた例題を途中までやって感じを掴んだところでそれを利用しながら変更して最初のスタディモデルを作ってみた。







まだデータの入力が無いので入っている数値は全部ダミーだし、見た目もあまり良くない。でも、この状態で動くのは確認できたから良い事にする。また明日。


ところで、同じのをFacebookにも出しているのだけど、だいたいの人の反応は自分には無理と言うようなもの。

これまでは、プログラミングはちょっと難しかったけれども、ここ何年かで急激に簡単になってきた。子供向けの開発環境も出てきたし、IT系の仕事が増えたせいで覚えてすぐに使える人材が必要になったのもあるかと思う。お寿司屋さんが学校で3ヶ月学べば寿司が握れるようになったのと似ているかもしれないな。

と言うわけで、今はやってない皆さんにもお勧めします。仕事に多少なりともルーチンワークがある人か、なければ5000千円程度出してM5シリーズのどれか、ラズベリーパイのどれかを即買って何かしてみるとと良いです。ダメでも一生に1回で5000円なら何も問題無いはず。

Webアプリ苦戦中

2019-09-04 13:29:28 | マレーシアでニャー2019
Webアプリなんてきっと簡単だろうと思いきや、面倒臭い事がけっこうあると判明。

Djangoをやってみたが、やってできない事は無さそうだけれど、これは1人でやるものじゃない感じ。データベース、HTML、データの取り込みのコード、Django自体の操作。幅が広すぎる。

Node-REDでやる場合、Javascriptがわからないので細かく調整できない。しかも割とExampleが少ない。誰かPythonで動くNode-RED作ってくれないだろうか?

次の候補はFlask。Djangoと同じでPythonにフレームワークを提供するものらしいが、こちらの方が簡単と言う人もいる。(やってみないとわからないが。)


昨夜、と言うか、超早朝の4時にメッセンジャーのコールが鳴った。最近生産に関わらない事にしているので珍しい。何だ! 火事でもあったか? と思って見たら、ドバイから前ここにいた男からのコールだった。ガチャン (スマホだからガチャンではないが、感じを出すためにガチャンにしておく) 出ずに切った。

朝4時は無理。またね。



そう言えば、ビザの更新ができた。

今度は1年間だけ。理由は... もう10年だからか?.. わからない。

と言うわけで、1年間、次の仕事を探す時間の余裕ができたと言う事になる。早速いつものエージェントさんには報告した。続けてよろしくお願いします、と。


話しによるとマレーシアの現地求人もだんだんおかしくなってきているとか。以前は企業さんも構えて構えて進出してきたのが、今はけっこうカジュアルに進出してきているのか? もともと日本の企業はけっこうテキトーなところがあるのでまあ、そうなんだろうなあとも思う。(今のとこもそうだし)

Webアプリ作ってみよう

2019-09-03 13:35:26 | マレーシアでニャー2019
先々週までに工場の中のほとんどのデータを取れるエッジデバイスを作った。先週はそのバージョン2試作も始めていた。(バージョン1は使える)

そしてどう言う事に使えるか説明してマニュアルも作っておいた。それは1つには会社の金でやっているから義務って側面があるわけだしね。もう1つは、もしかして誰かやってみると言う可能性も無いとは言えないから。

が、2つめの可能性は予想通りに無しだった。

今の会社の感じからすると当たり前で、誰も工程の詳細な安定性なんて気にしていない。注文数できていればそれで良いと言うだけ。サイクルタイムがバラついていて無駄な工数が発生してたり、機械がメンテナンス時間以外に壊れてストップしてたり、品番切り替えが手間取る事があったり、無駄な労働力が投入されてるとか、材料にロスがあるとか。誰も気にしない。誰もって中にはそれに直接関わる人だけじゃなくて管理する人ももちろん含む。


と言うわけで、自分でセンサーを設置してみようかなと思ったのだけれど、設置してデータを取ったところで次のステップとして、そのデータが使われる事は無いだろう。

なのでやめた。アホらしいし。


それで、別の物を作る事に決めた。それは、データを大きな画面に一覧表示する表示器。よく工場のコントロールルームとかにあるあれ。データはサイクルタイムに絞れば良いだろう。サイクルタイムがあれば稼働率、トラブル停止など色々わかる。スクリーンを事務所に設置してデータを取るポイントは少しづつ増やしていけば良い。

そうなると多分Webアプリのようなのを作る事になると思うけれども、Pythonでテキトーに書けばきっとどうにかなるかもしれない。素人がテキトーにやると危険だからLAN内のみ公開として緩く始めよう。
(何から調べりゃいいんだ?)

夜遊び常習犯

2019-09-01 22:56:00 | マレーシアでニャー2019
最近、きなこが夜に家で寝てくれないので困る。朝帰り常習犯になってしまった。何がいけないのか? つぶあんはちゃんと家で寝るのに。



去勢してあるとは言え、やはり男の子は男の子なのかな。夜に家でチマチマしてるより外で動いている方が性分に合っているのだろう。喧嘩あいて怪我さへしなければ良いのだけれど。



「ゼロから作るIoT」サイトマップ

奇特な方がいて、こう言う資料をまとめてくれているので紹介。

実際に工場でやっている方なので実際に使える内容のようだ。こうした情報を多く発信してくれるのは通常趣味でやっている人が多いのでなかなか実例に巡り合えない。だからこれは今手に入る技術や物とその組み合わせに関する貴重な資料。流れは速いのでまた来年になったら違っているとは思うけれども、何はともあれここから読むべし。


マレーシアは明日も公休なのでゆっくり過ごす。