twFathom

AIでデータを深く理解する。CSV、MQTT、APIソースを、pywebviewを通じて知的に分析・可視化するTWSNMPシリーズプロジェクト。

View on GitHub

twFathom

License Python

AIでデータを深く理解する。CSV、MQTT、APIソースを、pywebviewを通じて知的に分析・可視化するTWSNMPシリーズプロジェクト。

twFathom は、ローカルファイル(CSV/JSON)、MQTT、および外部のHTTPS APIからデータを定期的に収集し、美しくインタラクティブなダッシュボード上で知的に分析・可視化するためのオープンソースのデスクトップアプリケーションです。

twFathom インフォグラフィック


🌟 主な特徴

📊 サポートする測定項目

アプリは自動的にデータソースを解析し、以下のいずれかのスキーマにデータをマッピングします:

🌡️ 環境 (Environment) データ

🚪 窓開閉・コンタクト (Contact) センサー データ

🚶 人感・動体 (Occupancy / Motion) センサー データ

🌧️ 降雨・天候 (Rain) センサー データ

📳 振動・傾斜 (Vibration / Tilt) センサー データ

🔌 通信トラフィック (Traffic) データ

💻 システム (System) データ


📱 対応データソース仕様

1. HTTPS (API ポーリング)

指定したURLに対し、GETまたはPOSTリクエストを定期送信してJSONデータを取得します。

2. FILE (ローカルファイル監視)

ローカルのCSVやJSONファイルの更新(mtimeの変化)を自動的に検知し、最新データを読み込みます。

3. MQTT (リアルタイム受信)

MQTTブローカーに接続し、指定したトピックにパブリッシュされるデータをリアルタイムに受信します。


🚨 センサー警報機能 (Alert Management)

twFathom は、センサーデータが特定の閾値や異常状態に達した際に、直ちにユーザーへ通知するリアルタイム警報機能を搭載しています。

⚙️ 警報モード(警報種別)

🔔 警報の通知と運用機能


📦 インストール方法

macOS

最新のリリースから .pkg インストーラーをダウンロードして実行してください。 注意: アプリは Apple による公証(Notarized)を受けており、安全に実行できます。

Windows

最新のリリースから .msi インストーラーをダウンロードして実行してください。

Linux (AppImage)

最新のリリースから .AppImage パッケージをダウンロードして実行してください。


🚀 使い方

  1. データソースの追加: アプリを起動し、「ソース追加」から新しいデータソースを登録します。ソースの種別(HTTPS / FILE / MQTT)を選択し、URL、ファイルパス、ブローカー情報を入力します。
  2. データの収集開始: 登録したソースを「有効 (Active)」に設定すると、バックグラウンドコレクターがデータの収集を定期的に開始します。
  3. ダッシュボードでの可視化: ソースリストからダッシュボードを開くと、個別の分析ウィンドウ(初期サイズ 640x480)が開きます。複数のダッシュボードウィンドウがある場合、「自動整列 (Auto-Arrange)」機能で格子状に綺麗に配置できます。ウィンドウの位置、サイズ(枠なし状態含む)、表示期間、グラフ設定は次回起動時もそのまま復元されます。ヘッダーの「メインコンソール表示」ボタンで裏に隠れた管理画面を最前面に呼び出すことができ、グラフでズーム・選択した表示範囲外の古いデータは「表示範囲外データ削除」ボタンで手動で一括削除・整理できます。
  4. 警報(アラート)の設定: ダッシュボードのヘッダーにある警報設定アイコン(🚨)をクリックすると、「センサー警報設定」ダイアログが開きます。熱中症警戒アラート (WBGT)、環境温度上下限、CO2濃度、状態変化検知などのモードを選択し、発火閾値や BEEP 音の有無、放置時の自動消音時間を設定して保存します。「テスト警報実行」で動作確認を行うことも可能です。

💾 データの保存場所

すべてのデータは、お使いの PC 内のローカル SQLite データベースに保存されます。


📸 デモ & スクリーンショット

アプリケーション画面

| メイン画面(ソース一覧) | ソースの追加・編集 | | :—: | :—: | | メイン画面 | ソースの編集 |

ダッシュボード & 分析

| 環境モニター画面 | トラフィックモニター画面 | | :—: | :—: | | 環境モニター | トラフィックモニター |

🚨 センサー警報 & アラート表示

| センサー警報設定 | CRITICAL ALERT 画面 | | :—: | :—: | | センサー警報設定 | CRITICAL ALERT 画面 |


🛠 開発者向け

このプロジェクトは、TWSNMP の開発者によって維持されている ‘tw’シリーズの一部です。

開発環境のセットアップ

mise が必要です:

# 必要なバージョンのPython等のインストール
mise install
# 仮想環境の構築と依存パッケージのインストール
mise run setup

開発・ビルドコマンド

リリース・パッケージング


📄 ライセンス

Apache License 2.0 の下で公開されています。詳細は LICENSE を参照してください。