投稿

MQTTでIoT通信(3)受け取ったのデータのファイル保存 プログラムをサービスとして起動する

MQTTでIoT通信(4)受け取ったのデータのファイル保存に挑戦。 sudo apt install python3-paho-mqtt で Pythonの paho-mqtt ライブラリをインストール logger.pyとして import paho.mqtt.client as mqtt import os # --- 設定 --- BROKER = "localhost" TOPIC = "sensor/#"     # 受信したいトピック #LOG_FILE = "mqtt_data.csv" # 保存ファイル名 LOG_FILE_pre = "/tmp/mqtt-data-" # 保存ファイル名の接頭部分 # メッセージ受信時の処理 def on_message(client, userdata, msg):     # 届いた内容を文字列に変換     payload = msg.payload.decode("utf-8")     #トピックスのデータの処理 sensor/マシン名     myTOPIC = msg.topic.split('/')     #myTOPIC[0]がsensorで[1]がマシン名     #ペイロードのデータの処理     mydata = payload.split(':')        # mydata[0] = tmp  mydata[1]が温度になるはず      LOG_FILE = LOG_FILE_pre +myTOPIC[1] + '-' + mydata[0] + ".txt"   #logファイルの指定 /tmp/に接頭語 マシン[>          # ファイルに上書き保存(自動で閉じる仕組み) データの値だけ格納、温度だと24.45みたいな     with open(LOG_FILE, "w", encoding="utf-8")...

MQTTでIoT通信(2)mosquittoの設定

 mosquittoの設定する。 /etc/mosquitto/mosquitto.confが設定ファイルで、初期設定では以下のようになっている。 #Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf #pid_file /run/mosquitto/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d 詳細は /etc/mosquitto/conf.d 以下からインクルードするようになっている。特にファイルは置かれていない(READMEだけ)。取りあえず最低限の記述をするために /etc/mosquitto/conf.d/01mosquitto.conf を作成 listener 1883 0.0.0.0 allow_anonymous true 全てのIPからポート1883で受信する パスワード認証とかは無し という設定です。   sudo systemctl restart mosquitto で再起動。 mosquitto_sub -d -t /client/abc を実行。別クライアントから mosquitto_pub -h [ IP address ] -p 1883  -t /client/abc -m "shee546978" で通信できる。 ユーザー認証 以下でユーザー作成1回目だけ -c をつける(ファイル pwfile が作成される) sudo mosquitto_passwd -c /etc/mosquitto/pwfile testuser パスワード入力を2回求められるので適当にいれると ファイル pwfile にハッシュ値?で保存される(違うユーザーで同じパスワードいれても違う値になるね)。...

MQTTでIoT通信(1)

  MQTTでIoT通信をしようと思う。まずはサーバーになるラズパイ(取りあえずはバーチャルマシンに構築したx64のRaspberry pi OSをインストールしたサーバー)にMQTT Broker(サーバーみたいなもの)をインストールソフトはmosquitto > sudo apt install mosquitto 次にパブリッシャーをインストール > sudo apt install mosquitto-clients ターミナルを2枚開いてAで受信状態にします。 mosquitto_sub -d -t /client/abc Bで送信コマンドを送る mosquitto_pub -d -t /client/abc -m "shee546978" A側で   Subscribed (mid: 1): 0 Client (null) received PUBLISH (d0, q0, r0, m0, '/client/abc', ... (10 bytes)) shee546978  と受信される。 取りあえず、これで動作確認ができる。 ただし現在はブローカーも、パブリッシャーもサブスクライパーも同じマシン上で動いていることに注意。 参考 https://qiita.com/sheep29/items/637f9f00e35cc707f681 https://elchika.com/article/ea67de45-ab62-4515-8a63-e9f83f056eed/ https://qiita.com/tsudaryo1715/items/da6092fecaa42f7d9b23

FreshRSSのアップデート1.28.0

  FreshRSSのアップデート1.28.0が出てた、バージョンアップは簡単簡単。昨日は特に欲しいものはなさそう、並び替えについて何件か強化とパフォーマンスの最適化。 取りあえず、バージョンアップ

NEC UNIVERGE IX2215(7) ファームのアップデート

 NEC UNIVERGE IX2215(1)を中古で購入 2024/12/30 でも書いたけど、NECのルーターファームの取り扱いが楽になってすげー便利 NetMeister https://www.nw-meister.jp/  のおかげで遠隔でもファームのアップデートができる。 よいですね。しばらくファーム確認していなかったけど ver.10.10 からver.10.11系にバージョンが上がっていた。 特に大きな変更はなかったのでそのままでも良かった一応バージョンアップ。

Windows でuvでpython環境の備忘録

 Windows でuvでpython環境の備忘録 uv で python環境の構築 - 2025/11/03 の再構築 基本powershellで実行します。 インストール 公式ページに有るようにpowershellで > powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  実行。インストールされる uvのアップデートはpowershellで以下のコマンドで実行される。 > uv self update success: Upgraded uv from v0.9.7 to v0.9.18! https://github.com/astral-sh/uv/releases/tag/0.9.18 バージョン確認  > uv self version インストールしたツールごとに方法は異なるので注意  仮想環境構築 testと言うプロジェクトを構築 uv init test vs codeの環境構築 普通にフォルダーで開くと動くようだ ライブラリーのインストール pipみたいなこと、pandasを追加 uv add pandas vsコードのターミナルでもOK  

2025年デスクトップPC新調計画 その13(ASROCK BIOS update 12/15 4.03)

 4.03 2025/12/15  Update AGESA to ComboAM5 1.2.7.1 for upcoming CPU compatibility. が公開されていた。 バージョン番号は大きくあがっているが内容はupcoming CPU compatibility.なので新CPU向けの対応か、それ以外あんまり書いていないから今回はパスかな。 Gigabyteは一部のマザーで Checksum : 9AAA Improve system compatibility F7 でAGESAのバージョン書いていないね。

Fire TV Stick 4K Select買った。(2)

 一月ほどFire TV Stick 4K Select使ってみて、Nebula 4K Streaming Dongleよりも、キビキビしていると思う。RAMが1GBがネックだったが、あんまり、そのへんは気にならない。というか、動画を視聴しているだけなら分からないし、メニュー画面もFireTVの方が軽快感はある。 ただ、ベースがAmazon のアカウントというのが罪悪感を感じる・・・。googleアカウントが気安いということは無いが、わりとアカウント作りやすいからね。

ブラザーのプリンタのSNMP

 なんかブラザーのプリンタのSNMPがmuninで取れていない事に気付く。 で、munin-updateには Config node [プリンタ名] listed no services for [プリンタ名], (advertised as [muninが稼働しているサーバー名]).  Please see http://munin-monitoring.org/wiki/FAQ_no_graphs for further information. ってなる。  でもmuninサーバーが動いているマシンから snmpwalk -v 2c -c public [プリンタ] ってしても問題なく値が返ってくる、なんじゃいな。 dcp 系のプリンタは読み込めるが、mfc系のプリンタが読み込めない。 なぜだ。  

やりやがったなATOK

 やりやがったなATOK。いやいや、月330円安いと思っていた。660円への移行、プレミアム版が使えるなら、高いとも思わない。Arm版windowsにも興味がある。でもそこじゃ無い 月払い660円、年払い7920円????ちょっと安くなっているっておもったけど、計算してみたら660×12= やっぱり7920 やんけーーーーーーーーーー せめてひと月分くらい安くてもいいんじゃない、

Fire TV Stick 4K Select買った。

  2023年02月頃にNebula 4K Streaming Dongleを買ってから二年半くらいですかね。Fire TV Stick 4K Selectをかった。特にNebula 4Kに不満があったわけではないが、買ってみた。 使ってみた感想はFire TV Stick 4K Selectはレビューとかだと少しもっさりしているとの意見が多かったが、使ってみるとNebula 4Kとかわらないか、少し軽快な感じ。まあほとんどかわらない。 Nebula 4KはCPUに何を使っているか分からないが、RAMが2GBものっていることに驚き。Fire TV Stick 4K Selectは非公表ですが1GBのという説が一般的なようです。 Nebula 4Kが2021年10月発売でFire TV Stick 4K Selectが2025年9月なので4年くらいか。 アプリの数はNebula 4Kの圧勝かも、ただ、いわゆる動画配信系のアプリに関して言えば特に問題ない。 Amazonの新OS Vega OSが入っているらしいのでどんなモノかさわってみたい。

AIM Toolkit Version 20251027 バージョンアップ

  Version 20251027が2025-10-27に公開されていた。 前回の8月から3回くらいのバージョンアップが行われていた。  dynamic ramdisks: added large-page memory allocations  updated driver and aim_cli.exe  RamDiskUI.exe and RamDyn.exe: improved ramdisk creation reliability  driver updated  updated polish translation  fix in MountImg.exe: mounting failed (regression from 20251015) ドライバーの更新とマウント失敗するのの修正が大きいかな  dynamic ramdisksはパフォーマンスにも影響有りそうだが  インストール後特に大きくかわっているところは内容にみえた。 RAMディスクの設定で「詳細」のMemory Typeに「Large-page」があるようだ、前のバージョンにあったかなかった記憶にはないが。しかし、これがグレーアウトしている。 「基本」の「メモリを動的に割り当てる」を有効にすると選択できるようになるが。実行しようとすると警告が出る。

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 6 mh-z19でmunin

 Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 5 python仮想環境 mh-z19 第2 前回作ったdist/ フォルダ内に  main をnz-h19-appとファイル名を変更し/usr/local/binに移動 /usr/share/munin/plugins/ に munin-chk-co2 を以下のようなファイルを作成 #!/bin/bash if [ "$1" = "autoconf" ]; then         echo "yes"         exit 0 fi if [ "$1" = "config" ]; then     # グラフタイトル     echo 'graph_title CO2'     # グラフ縦軸     echo 'graph_vlabel CO2 (ppm)'     # グラフのスケール設定 #    echo 'graph_args --base 1024 -l 0'     #カテゴリ     echo "graph_category Environment"     #グラフの縦軸の制限     echo graph_args --lower-limit 400 #--upper-limit 4000     # 凡例の設定        # each line name     echo server1.label CO2 #    echo server2.label WiMAX_Transfer2_amount     #ライン値設定     echo server1.draw LINE2     #    echo server2.draw LINE2 ...

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 5 python仮想環境 mh-z19 第2

 uvの仮想環境のディレクトリに作成されるmain.pyを以下のように書き換える import mh_z19 def main(): #print("Hello from mh-z19-test!") CO2_conce = mh_z19.read_all(serial_console_untouched=True)["co2"] print(CO2_conce) if __name__ == "__main__": main() uv run main.py で 400 とか測定結果だけが出てくる。 pyinstaller --onefile main.py を実行。結構時間かかる。 dist/ フォルダ内に  main というファイルができる、サイズが約11MB。 mvでファイル名変えてのOK。  

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 4 python仮想環境 mh-z19

  mkdir python uv init mh-z19-test で ~/python/mh-z19を作成。 cd mh-z19-test  uv add mh-z19 するがエラーになるので事前に、以下の2つをインストールしてから実行 sudo apt install -y swig sudo apt install -y liblgpio-dev   uv add mh-z19    uv add mh-z19 を普通にすると以下のエラーが出る。        Built mh-z19==3.1.7       Built getrpimodel==0.1.26   × Failed to build `lgpio==0.2.2.0`   ├─▶ The build backend returned an error   ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)       [stdout]       running bdist_wheel       running build       running build_py       running build_ext       building '_lgpio' extension       swigging lgpio.i to lgpio_wrap.c       swig -python -o lgpio_wrap.c lgpio.i       [stderr]       error: command 'swig' failed: No such file or directory       h...