先日snapパッケージの更新を手動で行ってうまく行かなかったのでメモしておきます.該当アプリケーションを終了してから更新すればうまく行きました.
タグ: snap
センサーのログをNextcloudのSensorloggerで記録してみる
この記事は 日本Androidの会秋葉原支部ロボット部 Advent Calendar 2020 の20日分の記事です.
日本Androidの会秋葉原支部ロボット部は現在月に一回勉強会を行い様々な話題で盛り上がっています.
次の勉強会はちょうど今日(20日)です.興味のある方は覗いてみてください.
センサーのログなどをアップロードするのに色々なwebサービスを使ったり,Googleスプレッドシートに書いたりしています.
便利なんだけどロックインになるのは嫌だなって思ったりします.
Nextcloudというファイル共有サービス+αなOSSがあります.アプリケーションを追加して機能を増やすことが出来ます.例えばテレビ電話や,オンラインオフィスとか,マップサービスとか様々なアプリがあります.
これを個人的に立てて便利に使っています
この中のアプリを眺めているとSensorloggerというセンサーのログを保存できそうなものを見つけたので試してみました.
まずNextcloudですが,とりあえず試すだけならsnapを利用するのがお手軽です.Raspberry Pi + Raspberry Pi OSなどでもOKです.
Debian sid amd64/Ubuntu 20.04 LTS/Raspberry Pi OS armhfでは以下の手順でOKでした.
$ sudo apt update && sudo apt upgrade (1)
$ sudo apt install snapd (2)
$ sudo snap install nextcloud (3)
- システムのパッケージを最新にする
- snapを使えるように
snapd
パッケージを導入 - snapでnextcloudを導入
10分位待つと導入が終わります.ウェブブラウザにIPアドレスを入力するとセットアップ画面が表示されるので管理者ID/PASSWORDを設定します.
これでとりあえず使えるようになったと思います.
この後Sensorloggerを導入します.
管理者権限のアカウントでNextcloudの右上のメニューから「アプリ」を開きます.
次に上の検索バーに「Sensorlogger」とかの文字列で検索して「有効」ボタンを押して導入します.
Tip
|
Nextcloudのアプリケーションはコマンドラインから導入することも出来ます.$ sudo -u www-data occ app:install sensorlogger #通常導入した場合$ sudo /snap/bin/nextcloud.occ app:install sensorlogger #snapで導入した場合 |
ここからは一般ユーザでOKです.
Nextcloudの上部から「Sensorlogger」のアイコンをクリックするとSensorloggerの画面が表示されます.
はじめはデータがないのでまっさらです.「Device」辺りでデバイスの登録をするのかな?と思いましたが出来ません.
「Read SensorLogger Wiki Devices」と書かれているのでWikiを参照してみます.
データを送ると自動的にデバイスが出来るようです.Simple, Complexの2種類のデータタイプがあるようです.Simpleは温度,湿度のようでとりあえずこれを試してみます.
以下の辺りから post.php を持ってきて使います.このscriptはダミーのランダムな温度と湿度データを作ってSensourloggerにデータを投げます.
$NEXTCLOUDPATH/apps/sensorlogger/tests/curl/post.php
通常導入した場合/snap/nextcloud/current/htdocs/apps/sensorlogger/tests/curl/post.php
snapで導入した場合- sensorlogger/post.php at master · alexstocker/sensorlogger GitHub
何箇所か書き換えます.
* $url = ` を自分のNextcloudのURLに変更します.
を
* `$array = array("deviceId" ⇒uuidgen
コマンドなどで生成したUUIDに変更します.
* $username =
をNextcloudの自分のユーザーに変更します.
* $token =
に「設定」「セキュリティ」ページの「デバイスとセッション」の一番下の「新しいアプリパスワードを作成」で作成したトークンに修正します.
そしてphpとphp-curlが必要なので導入します.
$ sudo apt install php-cli php-curl
この状態で post.php
を実行して成功すると以下のようなメッセージが帰ってきます.
$ php ./post.php
{"success":true,"message":"Sensor Log successfully stored","data":null}
Sensorloggerのページの List
を見るとエータがアップロードされているのが解ります :)
手動で実行するのは大変なのでcrontabにこんな感じで登録してみます.5分に一回データを送信します.
$ crontab -e (1)
$ crontab -l | grep post.php (2)
*/5 * * * * php ~/tmp/post.php 2&>1 > ~/tmp/post.php.log
- crontabの編集
- crontabに登録されたか確認
同様にRaspberry Piの温度も送ってみます.温度の $temperature
を以下のような感じで書き換えて,UUIDも書き換えるとOK.これもcrontabに登録します.
$temperature = system( '/opt/vc/bin/vcgencmd measure_temp | awk -F "[=\']" \'{print $2 }\' | tr -d \'\n\'' );
しばらく動かしてからダッシュボードを設定するとこんな感じのチャートが表示できました.
密集してよくわからない部分はマウスドラッグで矩形選択するとその部分がズームされます.
という感じでとりあえず動きました.ドキュメントが未だ充実していな買ったり使い勝手も悪いですが最低限の機能はあるかなという感じです.
興味があったら試してみてください.
若しくはおすすめのアプリやサービスを教えてください.
Debian sidでChromiumが更新されないのでsnap版を試す
以下の記事は一昨日(2019-11-04)やっていたことで昨夜(2019-11-05)updateを確認したら降りてきていました :)
$ /usr/bin/chromium --version Chromium 78.0.3904.87 built on Debian bullseye/sid, running on Debian bullseye/sid
Debian sid amd64 で Chromium がなかなか更新されないのでとりあえずsnap版を入れてみました。
snapd未導入なら導入。
$ sudo apt install snapd
検索して、
$ snap find chromium Name Version Publisher Notes Summary chromium 78.0.3904.70 canonical✓ - Chromium web browser, open-source version of Chrome chromium-ffmpeg 0.1 canonical✓ - FFmpeg codecs (free and proprietary) for use by third-party browser snaps restart-chromium 1 mgibbs-dfrs - Restart Browser dashkiosk-client-browser 0.1 ogra - Chromium in Kiosk mode specifically adjusted for dashkiosk boxy-svg 3.29.0 jarek-foksa - Scalable Vector Graphics (SVG) editor chromium-ffmpeg-test 0.1 osomon - Test snap that exercises the slots exposed by chromium-ffmpeg
導入。
$ sudo snap install chromium chromium-ffmpeg
$ snap list|grep chromium chromium 78.0.3904.70 920 stable canonical* - chromium-ffmpeg 0.1 15 stable canonical* - $ dpkg-query -W chromium chromium 76.0.3809.100-1
/snap/bin/chromium
に入るのでそちらのパスを /usr/bin
より優先して通しておく。
例えばbashだと ~/.bash_profile
などで /usr/bin
の設定のあとに以下の設定を書いておく。
if [ -d "/snap/bin" ] ; then PATH="/snap/bin:$PATH" fi
パスが通っているのを確認する。
$ chromium --version Chromium 78.0.3904.70 snap $ /usr/bin/chromium --version Chromium 76.0.3809.100 built on Debian bullseye/sid, running on Debian bullseye/sid
ちなみに今回の環境はamd64でしたが、他にi386, arm64, armhf もあるようです。
今回の状態はメンテナが動けない状態なのかな?
$ snap list|grep chromium chromium 78.0.3904.70 920 stable canonical* - chromium-ffmpeg 0.1 15 stable canonical* - $ dpkg-query -W chromium snapd chromium 76.0.3809.100-1 snapd 2.40-1 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
Windows用Notepad++をsnapパッケージでLinuxに導入
WindowsアプリケーションのNotepad++がWineとセットでsnapパッケージにされているらしいです.但し非公式.
winepackはFactpak化だったのでそれのsnap版みたいな感じですね.(こっちは単一のアプリケーションだけだけど)
- Notepad++ Home
- mmtrt/notepad-plus-plus: snap repo for notepad-plus-plus snap
- Notepad++ as a linux snap app | Notepad++ Community
- WineHQ – Notepad++
- winepak – Flatpak-ing Microsoft Windows applications with Wine
snapなので試すのは簡単です.
$ sudo snap remove notepad-plus-plus
試しに動かすと日本語は豆腐になってしまいます.多分フォントを入れれば解決する?
~/snap/notepad-plus-plus/common/.wine
にwineの設定があるのでその下のdrive_c/windows/Fonts
を覗いたらhostのsystemのfont全てにシンボリックリンク貼ってあったのでフォントは入ってそうです.
Notepad++の設定で適当なフォントを指定したら豆腐直りました.
設定は,「setting」->「preference」
で「日本語」
を指定,「設定」->「スタイル設定」
で適当な日本語対応フォントを指定.ここで「Global style : Default style」
のフォントを指定でとりあえずデフォルトの画面での豆腐は直りましたが,沢山スタイルあるのでこれ設定するの面倒そうです.(常用するならシステムのフォントも変えたほうが見やすくなりそうですね)
そしてちょっと使ってやっぱりXのバッファが使えないのが辛いので消しました><
$ sudo snap remove notepad-plus-plus
Windowsでこのアプリケーションを利用している人にはお手軽に導入できて良さそうです.