From 3edf60c625217db63fbf8995bd9d42c1e11926ca Mon Sep 17 00:00:00 2001 From: l5y <220195275+l5yth@users.noreply.github.com> Date: Tue, 16 Sep 2025 15:25:12 +0200 Subject: [PATCH] chore: clean up repository (#96) * chore: clean up repository * Fix message spec node lookup for numeric IDs (#98) * Fix message spec node lookup for numeric IDs * run rufo * Fix message node fallback lookup (#99) --- .github/dependabot.yml | 13 +- .github/workflows/codeql.yml | 62 +- .github/workflows/python.yml | 5 +- .gitignore | 1 + data/mesh.sh | 2 +- data/messages.sql | 24 +- test/mesh.db | Bin 102400 -> 0 bytes test/messages.json | 3242 --------------------------- test/nodes.json | 3553 ------------------------------ {test => tests}/debug.py | 0 tests/mesh.db | Bin 0 -> 102400 bytes tests/messages.json | 4002 ++++++++++++++++++++++++++++++++++ tests/nodes.json | 3653 +++++++++++++++++++++++++++++++ tests/update.sh | 21 + web/app.rb | 28 +- web/spec/app_spec.rb | 37 +- 16 files changed, 7753 insertions(+), 6890 deletions(-) delete mode 100644 test/mesh.db delete mode 100644 test/messages.json delete mode 100644 test/nodes.json rename {test => tests}/debug.py (100%) create mode 100644 tests/mesh.db create mode 100644 tests/messages.json create mode 100644 tests/nodes.json create mode 100755 tests/update.sh diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f650015..83e04aa 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,15 +1,10 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file - version: 2 updates: - - package-ecosystem: "ruby" # See documentation for possible values - directory: "/web" # Location of package manifests + - package-ecosystem: "ruby" + directory: "/web" schedule: interval: "weekly" - - package-ecosystem: "python" # See documentation for possible values - directory: "/data" # Location of package manifests + - package-ecosystem: "python" + directory: "/" schedule: interval: "weekly" diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 602ff18..409bb10 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,14 +1,3 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# name: "CodeQL Advanced" on: @@ -20,20 +9,10 @@ on: jobs: analyze: name: Analyze (${{ matrix.language }}) - # Runner size impacts CodeQL analysis time. To learn more, please see: - # - https://gh.io/recommended-hardware-resources-for-running-codeql - # - https://gh.io/supported-runners-and-hardware-resources - # - https://gh.io/using-larger-runners (GitHub.com only) - # Consider using larger runners or machines with greater resources for possible analysis time improvements. runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} permissions: - # required for all workflows security-events: write - - # required to fetch internal or private CodeQL packs packages: read - - # only required for workflows in private repositories actions: read contents: read @@ -47,53 +26,14 @@ jobs: build-mode: none - language: javascript-typescript build-mode: none - # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift' - # Use `c-cpp` to analyze code written in C, C++ or both - # Use 'java-kotlin' to analyze code written in Java, Kotlin or both - # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both - # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, - # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. - # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how - # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages steps: - name: Checkout repository - uses: actions/checkout@v4 - - # Add any setup steps before running the `github/codeql-action/init` action. - # This includes steps like installing compilers or runtimes (`actions/setup-node` - # or others). This is typically only required for manual builds. - # - name: Setup runtime (example) - # uses: actions/setup-example@v1 - - # Initializes the CodeQL tools for scanning. + uses: actions/checkout@v5 - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - # If the analyze step fails for one of the languages you are analyzing with - # "We were unable to automatically build your code", modify the matrix above - # to set the build mode to "manual" for that language. Then modify this step - # to build your code. - # ℹ️ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - if: matrix.build-mode == 'manual' - shell: bash - run: | - echo 'If you are using a "manual" build mode for one or more of the' \ - 'languages you are analyzing, replace this with the commands to build' \ - 'your code, for example:' - echo ' make bootstrap' - echo ' make release' - exit 1 - - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 with: diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index ca3ccaf..a17b613 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -1,6 +1,3 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - name: Python on: @@ -13,7 +10,7 @@ permissions: contents: read jobs: - build: + test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 diff --git a/.gitignore b/.gitignore index 84ce222..24dc2b0 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,7 @@ Gemfile.lock # Python cache directories __pycache__/ .coverage +coverage/ coverage.xml htmlcov/ reports/ diff --git a/data/mesh.sh b/data/mesh.sh index 9d7dc10..b2ee14a 100755 --- a/data/mesh.sh +++ b/data/mesh.sh @@ -18,5 +18,5 @@ set -euo pipefail python -m venv .venv source .venv/bin/activate -pip install -U meshtastic +pip install -U meshtastic black pytest exec python mesh.py diff --git a/data/messages.sql b/data/messages.sql index e00b79f..821b8a2 100644 --- a/data/messages.sql +++ b/data/messages.sql @@ -13,18 +13,18 @@ -- limitations under the License. CREATE TABLE IF NOT EXISTS messages ( - id INTEGER PRIMARY KEY, -- meshtastic packet id - rx_time INTEGER NOT NULL, -- unix seconds when received - rx_iso TEXT NOT NULL, -- ISO8601 UTC timestamp - from_id TEXT, -- sender node id (string form) - to_id TEXT, -- recipient node id - channel INTEGER, -- channel index - portnum TEXT, -- application portnum (e.g. TEXT_MESSAGE_APP) - text TEXT, -- decoded text payload if present - snr REAL, -- signal-to-noise ratio - rssi INTEGER, -- received signal strength - hop_limit INTEGER, -- hops left when received - raw_json TEXT -- entire packet JSON dump + id INTEGER PRIMARY KEY, + rx_time INTEGER NOT NULL, + rx_iso TEXT NOT NULL, + from_id TEXT, + to_id TEXT, + channel INTEGER, + portnum TEXT, + text TEXT, + snr REAL, + rssi INTEGER, + hop_limit INTEGER, + raw_json TEXT ); CREATE INDEX IF NOT EXISTS idx_messages_rx_time ON messages(rx_time); diff --git a/test/mesh.db b/test/mesh.db deleted file mode 100644 index 4ece084750c6b121bbf9c9ac06ba52d575ab7148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102400 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 diff --git a/test/messages.json b/test/messages.json deleted file mode 100644 index df0b39a..0000000 --- a/test/messages.json +++ /dev/null @@ -1,3242 +0,0 @@ -[ - { - "id":3094667674, - "rx_time":1758002943, - "rx_iso":"2025-09-16T06:09:03Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Moin!", - "rssi":-79, - "hop_limit":6, - "snr":11.0, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1596569460, - "rx_time":1758001093, - "rx_iso":"2025-09-16T05:38:13Z", - "from_id":"!177cfa26", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Guten Morgen", - "rssi":-116, - "hop_limit":2, - "snr":-11.75, - "node":{ - "snr":-11.75, - "raw_json":null, - "node_id":"!177cfa26", - "num":394066470, - "short_name":"lun1", - "long_name":"Lunet One", - "macaddr":"2y4XfPom", - "hw_model":"T_ECHO", - "role":"CLIENT", - "public_key":"YnT5fSoIXf7S5zLBhR7wR9Bd8VOQxNsRqtElF2gy1B8=", - "is_unmessagable":null, - "is_favorite":null, - "hops_away":1, - "last_heard":1758001093, - "first_heard":1757768167, - "battery_level":101.0, - "voltage":4.847, - "channel_utilization":0.0, - "air_util_tx":0.62547225, - "uptime_seconds":1029644, - "position_time":1758000320, - "location_source":"LOC_EXTERNAL", - "latitude":52.5021165, - "longitude":13.5000622, - "altitude":61.0 - } - }, - { - "id":32924066, - "rx_time":1758000325, - "rx_iso":"2025-09-16T05:25:25Z", - "from_id":"!9ea0c780", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Moin ☕️", - "rssi":-52, - "hop_limit":5, - "snr":11.25, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!9ea0c780", - "num":2661336960, - "short_name":"nguE", - "long_name":"ngud E Mobile", - "macaddr":"nBOeoMeA", - "hw_model":"HELTEC_WIRELESS_PAPER", - "role":"CLIENT", - "public_key":"J0g4pBWbfIYtD1tY/fCFplkx+slnQ5pyzPQcbLLa+yI=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758000325, - "first_heard":1757808007, - "battery_level":64.0, - "voltage":3.843, - "channel_utilization":5.0299997, - "air_util_tx":0.02638889, - "uptime_seconds":61, - "position_time":1757979817, - "location_source":"LOC_MANUAL", - "latitude":52.5369344, - "longitude":13.484032, - "altitude":66.0 - } - }, - { - "id":219813646, - "rx_time":1757999805, - "rx_iso":"2025-09-16T05:16:45Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Mehr!", - "rssi":-51, - "hop_limit":1, - "snr":10.75, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1470988520, - "rx_time":1757996560, - "rx_iso":"2025-09-16T04:22:40Z", - "from_id":"!e80cda12", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Gutn Mrgn", - "rssi":-55, - "hop_limit":3, - "snr":11.5, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!e80cda12", - "num":3893156370, - "short_name":"mowW", - "long_name":"mirkosw /pWisMeshTag", - "macaddr":"/ijoDNoS", - "hw_model":"WISMESH_TAG", - "role":"CLIENT_MUTE", - "public_key":"cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758000127, - "first_heard":1757797822, - "battery_level":94.0, - "voltage":4.114, - "channel_utilization":3.01, - "air_util_tx":0.014333334, - "uptime_seconds":66, - "position_time":1758000127, - "location_source":"LOC_INTERNAL", - "latitude":52.4725355, - "longitude":13.3700968, - "altitude":-39.0 - } - }, - { - "id":2844052841, - "rx_time":1757996484, - "rx_iso":"2025-09-16T04:21:24Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"moin", - "rssi":-54, - "hop_limit":6, - "snr":11.0, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":476809275, - "rx_time":1757993848, - "rx_iso":"2025-09-16T03:37:28Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Moin", - "rssi":-53, - "hop_limit":4, - "snr":11.5, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":2844052817, - "rx_time":1757984695, - "rx_iso":"2025-09-16T01:04:55Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"direkt", - "rssi":-55, - "hop_limit":6, - "snr":11.5, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":944620241, - "rx_time":1757969871, - "rx_iso":"2025-09-15T20:57:51Z", - "from_id":"!a0cb1608", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Yay, direct SNR -11.25", - "rssi":-115, - "hop_limit":4, - "snr":-11.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!a0cb1608", - "num":2697664008, - "short_name":"KBV5", - "long_name":"KeinBierVor5", - "macaddr":"MO2gyxYI", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757990312, - "first_heard":1757823622, - "battery_level":101.0, - "voltage":4.28, - "channel_utilization":1.2866666, - "air_util_tx":0.78044444, - "uptime_seconds":138304, - "position_time":1757980957, - "location_source":"LOC_EXTERNAL", - "latitude":52.4976128, - "longitude":13.5102464, - "altitude":40.0 - } - }, - { - "id":2873331581, - "rx_time":1757968463, - "rx_iso":"2025-09-15T20:34:23Z", - "from_id":"!bcf10936", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Gute Nacht zusammen!", - "rssi":-47, - "hop_limit":2, - "snr":10.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!bcf10936", - "num":3169913142, - "short_name":"0936", - "long_name":"Hopfensender HQ", - "macaddr":"0D688Qk2", - "hw_model":"RAK4631", - "role":"CLIENT", - "public_key":"XhxIf5cQIDMLvHCfCPIicjwSCKYycM0Yz0jdOOe5Rlk=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1758002497, - "first_heard":1757833703, - "battery_level":98.0, - "voltage":4.167, - "channel_utilization":3.8283334, - "air_util_tx":0.98713887, - "uptime_seconds":6373, - "position_time":1758001364, - "location_source":"LOC_MANUAL", - "latitude":52.5729792, - "longitude":13.43488, - "altitude":57.0 - } - }, - { - "id":1782815903, - "rx_time":1757968301, - "rx_iso":"2025-09-15T20:31:41Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hi", - "rssi":-13, - "hop_limit":7, - "snr":11.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - }, - { - "id":1376017812, - "rx_time":1757966842, - "rx_iso":"2025-09-15T20:07:22Z", - "from_id":"!a0cc6904", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hi", - "rssi":-118, - "hop_limit":1, - "snr":-13.25, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!a0cc6904", - "num":2697750788, - "short_name":"Kdû", - "long_name":"Khazad-dûm", - "macaddr":"MO2gzGkE", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757992840, - "first_heard":1757819079, - "battery_level":4.0, - "voltage":3.195, - "channel_utilization":0.7366667, - "air_util_tx":0.7919166, - "uptime_seconds":154899, - "position_time":1757987158, - "location_source":"LOC_INTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":57.0 - } - }, - { - "id":716585726, - "rx_time":1757966820, - "rx_iso":"2025-09-15T20:07:00Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hi", - "rssi":-48, - "hop_limit":6, - "snr":10.5, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":2504325195, - "rx_time":1757966797, - "rx_iso":"2025-09-15T20:06:37Z", - "from_id":"!9eeb25ec", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hi, just trying putting my node upstairs in my apartment.", - "rssi":-48, - "hop_limit":6, - "snr":11.0, - "node":{ - "snr":10.0, - "raw_json":null, - "node_id":"!9eeb25ec", - "num":2666210796, - "short_name":"25ec", - "long_name":"Meshtastic 25ec", - "macaddr":"nBOe6yXs", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757949314, - "first_heard":1757949314, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1376017811, - "rx_time":1757966748, - "rx_iso":"2025-09-15T20:05:48Z", - "from_id":"!a0cc6904", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"It seems to work.", - "rssi":-119, - "hop_limit":2, - "snr":-14.0, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!a0cc6904", - "num":2697750788, - "short_name":"Kdû", - "long_name":"Khazad-dûm", - "macaddr":"MO2gzGkE", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757992840, - "first_heard":1757819079, - "battery_level":4.0, - "voltage":3.195, - "channel_utilization":0.7366667, - "air_util_tx":0.7919166, - "uptime_seconds":154899, - "position_time":1757987158, - "location_source":"LOC_INTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":57.0 - } - }, - { - "id":2504325191, - "rx_time":1757966655, - "rx_iso":"2025-09-15T20:04:15Z", - "from_id":"!9eeb25ec", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hi, just trying putting my node upstairs in my apartment.", - "rssi":-48, - "hop_limit":6, - "snr":11.25, - "node":{ - "snr":10.0, - "raw_json":null, - "node_id":"!9eeb25ec", - "num":2666210796, - "short_name":"25ec", - "long_name":"Meshtastic 25ec", - "macaddr":"nBOe6yXs", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757949314, - "first_heard":1757949314, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":2504325189, - "rx_time":1757966636, - "rx_iso":"2025-09-15T20:03:56Z", - "from_id":"!9eeb25ec", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hi, just trying putting my node upstairs in my apartment.", - "rssi":-48, - "hop_limit":6, - "snr":11.5, - "node":{ - "snr":10.0, - "raw_json":null, - "node_id":"!9eeb25ec", - "num":2666210796, - "short_name":"25ec", - "long_name":"Meshtastic 25ec", - "macaddr":"nBOe6yXs", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757949314, - "first_heard":1757949314, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":2504325187, - "rx_time":1757966612, - "rx_iso":"2025-09-15T20:03:32Z", - "from_id":"!9eeb25ec", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hi, just trying putting my node upstairs in my apartment.", - "rssi":-48, - "hop_limit":5, - "snr":11.75, - "node":{ - "snr":10.0, - "raw_json":null, - "node_id":"!9eeb25ec", - "num":2666210796, - "short_name":"25ec", - "long_name":"Meshtastic 25ec", - "macaddr":"nBOe6yXs", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757949314, - "first_heard":1757949314, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1782815563, - "rx_time":1757958051, - "rx_iso":"2025-09-15T17:40:51Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Ich habe uns eine Webseite gebastelt. https://potatomesh.net", - "rssi":-64, - "hop_limit":7, - "snr":11.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - }, - { - "id":2783818859, - "rx_time":1757957659, - "rx_iso":"2025-09-15T17:34:19Z", - "from_id":"!03b9ca11", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Huhu, ich bin Back in Town. Irgendwas spannendes passiert seit Freitag?", - "rssi":-63, - "hop_limit":3, - "snr":10.75, - "node":{ - "snr":10.75, - "raw_json":null, - "node_id":"!03b9ca11", - "num":62507537, - "short_name":"ca11", - "long_name":"Meshtastic ca11", - "macaddr":null, - "hw_model":"UNSET", - "role":"CLIENT", - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":2, - "last_heard":1757957659, - "first_heard":1757957659, - "battery_level":57.0, - "voltage":3.869, - "channel_utilization":2.3766665, - "air_util_tx":0.1098889, - "uptime_seconds":26711, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":2939052889, - "rx_time":1757956367, - "rx_iso":"2025-09-15T17:12:47Z", - "from_id":"!db2b23f4", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"👍", - "rssi":-77, - "hop_limit":4, - "snr":7.5, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!db2b23f4", - "num":3677037556, - "short_name":"Eagl", - "long_name":"Gwaihir", - "macaddr":"EFHbKyP0", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"LL4XdtW32i1+U2L/aC32cBSV6U7/dJKQk1oUQqud9mg=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":4, - "last_heard":1757998529, - "first_heard":1757822402, - "battery_level":95.0, - "voltage":4.129, - "channel_utilization":5.5466666, - "air_util_tx":1.0283333, - "uptime_seconds":14291, - "position_time":1757998529, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":41.0 - } - }, - { - "id":1782815506, - "rx_time":1757956356, - "rx_iso":"2025-09-15T17:12:36Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"👍", - "rssi":null, - "hop_limit":7, - "snr":10.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - }, - { - "id":2939052888, - "rx_time":1757956315, - "rx_iso":"2025-09-15T17:11:55Z", - "from_id":"!db2b23f4", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Beste Werbung für Meshtastic: https://mastodon.social/@chatcontrol/115204439983078498 komplett beknackt der typ.", - "rssi":-52, - "hop_limit":5, - "snr":10.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!db2b23f4", - "num":3677037556, - "short_name":"Eagl", - "long_name":"Gwaihir", - "macaddr":"EFHbKyP0", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"LL4XdtW32i1+U2L/aC32cBSV6U7/dJKQk1oUQqud9mg=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":4, - "last_heard":1757998529, - "first_heard":1757822402, - "battery_level":95.0, - "voltage":4.129, - "channel_utilization":5.5466666, - "air_util_tx":1.0283333, - "uptime_seconds":14291, - "position_time":1757998529, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":41.0 - } - }, - { - "id":1343076781, - "rx_time":1757955702, - "rx_iso":"2025-09-15T17:01:42Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Nabend 👋", - "rssi":-52, - "hop_limit":null, - "snr":10.75, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":716585724, - "rx_time":1757955668, - "rx_iso":"2025-09-15T17:01:08Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Nabend Leute", - "rssi":-52, - "hop_limit":6, - "snr":10.0, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":2310268022, - "rx_time":1757954148, - "rx_iso":"2025-09-15T16:35:48Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"877c ich bekomme dich hier direkt rein. Empfang ist gut. Empfängst du meine Node?", - "rssi":-52, - "hop_limit":3, - "snr":10.5, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1376017806, - "rx_time":1757948886, - "rx_iso":"2025-09-15T15:08:06Z", - "from_id":"!a0cc6904", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Servus", - "rssi":-45, - "hop_limit":1, - "snr":11.0, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!a0cc6904", - "num":2697750788, - "short_name":"Kdû", - "long_name":"Khazad-dûm", - "macaddr":"MO2gzGkE", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757992840, - "first_heard":1757819079, - "battery_level":4.0, - "voltage":3.195, - "channel_utilization":0.7366667, - "air_util_tx":0.7919166, - "uptime_seconds":154899, - "position_time":1757987158, - "location_source":"LOC_INTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":57.0 - } - }, - { - "id":109295131, - "rx_time":1757948827, - "rx_iso":"2025-09-15T15:07:07Z", - "from_id":"!2f945044", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Servus", - "rssi":-118, - "hop_limit":4, - "snr":-12.25, - "node":{ - "snr":-12.25, - "raw_json":null, - "node_id":"!2f945044", - "num":798249028, - "short_name":"BND", - "long_name":"Briansnachrichtendienst", - "macaddr":"FCsvlFBE", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "public_key":"WZDH1WkYCpwoOrmjV7ctC2BgOONiXc9C6tBlQPgxNgM=", - "is_unmessagable":null, - "is_favorite":null, - "hops_away":2, - "last_heard":1757948827, - "first_heard":1757787385, - "battery_level":96.0, - "voltage":4.14, - "channel_utilization":6.011667, - "air_util_tx":0.0335, - "uptime_seconds":61, - "position_time":1757947583, - "location_source":"LOC_EXTERNAL", - "latitude":52.4435456, - "longitude":13.3906432, - "altitude":50.0 - } - }, - { - "id":717959241, - "rx_time":1757941762, - "rx_iso":"2025-09-15T13:09:22Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"mal wieder n Test: piep !?", - "rssi":-45, - "hop_limit":4, - "snr":11.0, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1542608087, - "rx_time":1757939642, - "rx_iso":"2025-09-15T12:34:02Z", - "from_id":"!9ee71c38", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Polarlichter incoming", - "rssi":-70, - "hop_limit":null, - "snr":10.5, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!9ee71c38", - "num":2665946168, - "short_name":"1c38", - "long_name":"Varus1c38", - "macaddr":"nBOe5xw4", - "hw_model":"HELTEC_V3", - "role":null, - "public_key":"+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757934899, - "first_heard":1757784888, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1376017801, - "rx_time":1757939575, - "rx_iso":"2025-09-15T12:32:55Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"KP größer 5. Sonne macht Action.", - "rssi":-67, - "hop_limit":1, - "snr":10.75, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1782814906, - "rx_time":1757937579, - "rx_iso":"2025-09-15T11:59:39Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Die Meldung kommt aber auch erst, wenn das Gewitter schon fast durch ist 😅", - "rssi":-58, - "hop_limit":7, - "snr":11.0, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - }, - { - "id":49, - "rx_time":1757934215, - "rx_iso":"2025-09-15T11:03:35Z", - "from_id":"!7c5b0920", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"🚨 KATWARN 🚨 Amtliche WARNUNG vor STARKEM GEWITTER", - "rssi":-67, - "hop_limit":5, - "snr":10.5, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!7c5b0920", - "num":2086340896, - "short_name":"FFTB", - "long_name":"Freifunk-Teufelsberg BOT 868", - "macaddr":"JFh8Wwkg", - "hw_model":"HELTEC_V3", - "role":"ROUTER", - "public_key":"bJtTR+CFGycDx7wjziwOUsHjqQvcP9QITqY1K1uDxWg=", - "is_unmessagable":null, - "is_favorite":null, - "hops_away":1, - "last_heard":1757959423, - "first_heard":1757828009, - "battery_level":97.0, - "voltage":4.149, - "channel_utilization":0.58, - "air_util_tx":1.0519166, - "uptime_seconds":43287, - "position_time":1757946866, - "location_source":"LOC_MANUAL", - "latitude":52.49795, - "longitude":13.24061, - "altitude":160.0 - } - }, - { - "id":48, - "rx_time":1757932990, - "rx_iso":"2025-09-15T10:43:10Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"😁", - "rssi":-56, - "hop_limit":7, - "snr":10.25, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - }, - { - "id":47, - "rx_time":1757932794, - "rx_iso":"2025-09-15T10:39:54Z", - "from_id":"!9ea0c780", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Jetzt ist es in Alt HH auch nass 😆", - "rssi":-64, - "hop_limit":4, - "snr":11.25, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!9ea0c780", - "num":2661336960, - "short_name":"nguE", - "long_name":"ngud E Mobile", - "macaddr":"nBOeoMeA", - "hw_model":"HELTEC_WIRELESS_PAPER", - "role":"CLIENT", - "public_key":"J0g4pBWbfIYtD1tY/fCFplkx+slnQ5pyzPQcbLLa+yI=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758000325, - "first_heard":1757808007, - "battery_level":64.0, - "voltage":3.843, - "channel_utilization":5.0299997, - "air_util_tx":0.02638889, - "uptime_seconds":61, - "position_time":1757979817, - "location_source":"LOC_MANUAL", - "latitude":52.5369344, - "longitude":13.484032, - "altitude":66.0 - } - }, - { - "id":46, - "rx_time":1757926859, - "rx_iso":"2025-09-15T09:00:59Z", - "from_id":"!0910c922", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"@varus in Hönow kam msg an👍", - "rssi":-61, - "hop_limit":4, - "snr":10.75, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!0910c922", - "num":152095010, - "short_name":"c922", - "long_name":"Meshtastic c922", - "macaddr":"4SYJEMki", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "public_key":"wpoWw1Lt4eBRmWB5kGorVMb6muRYSVko6BK35NCKjDs=", - "is_unmessagable":null, - "is_favorite":null, - "hops_away":3, - "last_heard":1757941729, - "first_heard":1757830191, - "battery_level":60.0, - "voltage":3.807, - "channel_utilization":9.351667, - "air_util_tx":1.0132778, - "uptime_seconds":31630, - "position_time":1757928193, - "location_source":"LOC_MANUAL", - "latitude":52.559872, - "longitude":13.6577024, - "altitude":null - } - }, - { - "id":45, - "rx_time":1757925469, - "rx_iso":"2025-09-15T08:37:49Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"hi", - "rssi":-64, - "hop_limit":1, - "snr":11.0, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":44, - "rx_time":1757925434, - "rx_iso":"2025-09-15T08:37:14Z", - "from_id":"!9ee71430", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"👀", - "rssi":-66, - "hop_limit":1, - "snr":11.0, - "node":{ - "snr":10.75, - "raw_json":null, - "node_id":"!9ee71430", - "num":2665944112, - "short_name":"FiSp", - "long_name":"FireSpark", - "macaddr":"nBOe5xQw", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"3TCf45+01J1qATTKrxG8+PGMeFJEVnKBi/GyuOr7ZEQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758001545, - "first_heard":1757838749, - "battery_level":95.0, - "voltage":4.125, - "channel_utilization":0.31333333, - "air_util_tx":0.21124999, - "uptime_seconds":327578, - "position_time":1758001545, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":67.0 - } - }, - { - "id":43, - "rx_time":1757924308, - "rx_iso":"2025-09-15T08:18:28Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"du kannst einstellen, wie viele \"hops\" deine nachricht macht, also über wie viele nodes sie springt. ich höre dich über 3. ich hab das auf 7 gestellt.", - "rssi":-56, - "hop_limit":7, - "snr":11.5, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - }, - { - "id":42, - "rx_time":1757924200, - "rx_iso":"2025-09-15T08:16:40Z", - "from_id":"!bcf10936", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"📍 Hopfensender HQ has shared their position and requested a response with your position.", - "rssi":-63, - "hop_limit":3, - "snr":10.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!bcf10936", - "num":3169913142, - "short_name":"0936", - "long_name":"Hopfensender HQ", - "macaddr":"0D688Qk2", - "hw_model":"RAK4631", - "role":"CLIENT", - "public_key":"XhxIf5cQIDMLvHCfCPIicjwSCKYycM0Yz0jdOOe5Rlk=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1758002497, - "first_heard":1757833703, - "battery_level":98.0, - "voltage":4.167, - "channel_utilization":3.8283334, - "air_util_tx":0.98713887, - "uptime_seconds":6373, - "position_time":1758001364, - "location_source":"LOC_MANUAL", - "latitude":52.5729792, - "longitude":13.43488, - "altitude":57.0 - } - }, - { - "id":41, - "rx_time":1757922177, - "rx_iso":"2025-09-15T07:42:57Z", - "from_id":"!16ced364", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"😀", - "rssi":-75, - "hop_limit":null, - "snr":11.0, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!16ced364", - "num":382653284, - "short_name":"Pat", - "long_name":"Pat HQ BS", - "macaddr":"mKMWztNk", - "hw_model":"STATION_G2", - "role":"CLIENT", - "public_key":"d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1758000721, - "first_heard":1757830983, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":1757994446, - "location_source":"LOC_MANUAL", - "latitude":52.4596978, - "longitude":13.3195129, - "altitude":72.0 - } - }, - { - "id":40, - "rx_time":1757921772, - "rx_iso":"2025-09-15T07:36:12Z", - "from_id":"!9ee71c38", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Wird diese Nachricht immer nur von den aktuellen Nodes in meiner Reichweite empfangen oder wird die noch weiter ins Mesh hinausgetragen? Versuche noch das alles zu verstehen;)", - "rssi":-77, - "hop_limit":null, - "snr":11.25, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!9ee71c38", - "num":2665946168, - "short_name":"1c38", - "long_name":"Varus1c38", - "macaddr":"nBOe5xw4", - "hw_model":"HELTEC_V3", - "role":null, - "public_key":"+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757934899, - "first_heard":1757784888, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":39, - "rx_time":1757920491, - "rx_iso":"2025-09-15T07:14:51Z", - "from_id":"!9ee71c38", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Montags Wetterblues", - "rssi":-78, - "hop_limit":null, - "snr":10.5, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!9ee71c38", - "num":2665946168, - "short_name":"1c38", - "long_name":"Varus1c38", - "macaddr":"nBOe5xw4", - "hw_model":"HELTEC_V3", - "role":null, - "public_key":"+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757934899, - "first_heard":1757784888, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":38, - "rx_time":1757920100, - "rx_iso":"2025-09-15T07:08:20Z", - "from_id":"!a3deea53", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Was erlaube Wetter? Wo ist die Sonne? :/", - "rssi":-80, - "hop_limit":2, - "snr":10.25, - "node":{ - "snr":10.0, - "raw_json":null, - "node_id":"!a3deea53", - "num":2749295187, - "short_name":"🐸", - "long_name":"green", - "macaddr":"/2mj3upT", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "public_key":"2F/3iuOgrVto9DgNZtUdknYaEI1ZVM+lvLOrPzSlCD8=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757949419, - "first_heard":1757920065, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":37, - "rx_time":1757918563, - "rx_iso":"2025-09-15T06:42:43Z", - "from_id":"!9ea0c780", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Guten Morgen ☕️", - "rssi":-85, - "hop_limit":5, - "snr":9.0, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!9ea0c780", - "num":2661336960, - "short_name":"nguE", - "long_name":"ngud E Mobile", - "macaddr":"nBOeoMeA", - "hw_model":"HELTEC_WIRELESS_PAPER", - "role":"CLIENT", - "public_key":"J0g4pBWbfIYtD1tY/fCFplkx+slnQ5pyzPQcbLLa+yI=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758000325, - "first_heard":1757808007, - "battery_level":64.0, - "voltage":3.843, - "channel_utilization":5.0299997, - "air_util_tx":0.02638889, - "uptime_seconds":61, - "position_time":1757979817, - "location_source":"LOC_MANUAL", - "latitude":52.5369344, - "longitude":13.484032, - "altitude":66.0 - } - }, - { - "id":36, - "rx_time":1757918014, - "rx_iso":"2025-09-15T06:33:34Z", - "from_id":"!bba83318", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Moin Moin Umland ☕️", - "rssi":-77, - "hop_limit":3, - "snr":11.5, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!bba83318", - "num":3148362520, - "short_name":"BerF", - "long_name":"Bernau-Friedenstal", - "macaddr":"LLy7qDMY", - "hw_model":"TBEAM", - "role":"CLIENT", - "public_key":"GfyQJ3jYKh+l0Li4w+8PzpA4i/vls1nrdCkcwVj2ICM=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758001805, - "first_heard":1757825270, - "battery_level":101.0, - "voltage":-0.001, - "channel_utilization":7.01, - "air_util_tx":0.030944444, - "uptime_seconds":61, - "position_time":1758001805, - "location_source":"LOC_INTERNAL", - "latitude":52.6778368, - "longitude":13.565952, - "altitude":21.0 - } - }, - { - "id":35, - "rx_time":1757917080, - "rx_iso":"2025-09-15T06:18:00Z", - "from_id":"!9ee71c38", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Guten Morgen!", - "rssi":-84, - "hop_limit":1, - "snr":9.25, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!9ee71c38", - "num":2665946168, - "short_name":"1c38", - "long_name":"Varus1c38", - "macaddr":"nBOe5xw4", - "hw_model":"HELTEC_V3", - "role":null, - "public_key":"+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757934899, - "first_heard":1757784888, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":34, - "rx_time":1757912511, - "rx_iso":"2025-09-15T05:01:51Z", - "from_id":"!e80cda12", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Aber gaaaaaaanaz viel Kaffee", - "rssi":-71, - "hop_limit":2, - "snr":10.25, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!e80cda12", - "num":3893156370, - "short_name":"mowW", - "long_name":"mirkosw /pWisMeshTag", - "macaddr":"/ijoDNoS", - "hw_model":"WISMESH_TAG", - "role":"CLIENT_MUTE", - "public_key":"cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758000127, - "first_heard":1757797822, - "battery_level":94.0, - "voltage":4.114, - "channel_utilization":3.01, - "air_util_tx":0.014333334, - "uptime_seconds":66, - "position_time":1758000127, - "location_source":"LOC_INTERNAL", - "latitude":52.4725355, - "longitude":13.3700968, - "altitude":-39.0 - } - }, - { - "id":33, - "rx_time":1757910410, - "rx_iso":"2025-09-15T04:26:50Z", - "from_id":"!a0cc6904", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Moin", - "rssi":-109, - "hop_limit":1, - "snr":-5.0, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!a0cc6904", - "num":2697750788, - "short_name":"Kdû", - "long_name":"Khazad-dûm", - "macaddr":"MO2gzGkE", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757992840, - "first_heard":1757819079, - "battery_level":4.0, - "voltage":3.195, - "channel_utilization":0.7366667, - "air_util_tx":0.7919166, - "uptime_seconds":154899, - "position_time":1757987158, - "location_source":"LOC_INTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":57.0 - } - }, - { - "id":32, - "rx_time":1757910388, - "rx_iso":"2025-09-15T04:26:28Z", - "from_id":"!e80cda12", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Guten Morgen allerseits", - "rssi":-40, - "hop_limit":1, - "snr":11.0, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!e80cda12", - "num":3893156370, - "short_name":"mowW", - "long_name":"mirkosw /pWisMeshTag", - "macaddr":"/ijoDNoS", - "hw_model":"WISMESH_TAG", - "role":"CLIENT_MUTE", - "public_key":"cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758000127, - "first_heard":1757797822, - "battery_level":94.0, - "voltage":4.114, - "channel_utilization":3.01, - "air_util_tx":0.014333334, - "uptime_seconds":66, - "position_time":1758000127, - "location_source":"LOC_INTERNAL", - "latitude":52.4725355, - "longitude":13.3700968, - "altitude":-39.0 - } - }, - { - "id":31, - "rx_time":1757909639, - "rx_iso":"2025-09-15T04:13:59Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Morgen", - "rssi":-103, - "hop_limit":3, - "snr":0.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":30, - "rx_time":1757890487, - "rx_iso":"2025-09-14T22:54:47Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"GN", - "rssi":-40, - "hop_limit":4, - "snr":11.25, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":29, - "rx_time":1757886696, - "rx_iso":"2025-09-14T21:51:36Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Gute Nacht", - "rssi":-43, - "hop_limit":2, - "snr":11.5, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":28, - "rx_time":1757879734, - "rx_iso":"2025-09-14T19:55:34Z", - "from_id":"!16ced364", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Weiss nicht ob die Node case insentitiv macht, nimm mal TEST als Großbuchstaben...", - "rssi":-79, - "hop_limit":3, - "snr":10.0, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!16ced364", - "num":382653284, - "short_name":"Pat", - "long_name":"Pat HQ BS", - "macaddr":"mKMWztNk", - "hw_model":"STATION_G2", - "role":"CLIENT", - "public_key":"d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1758000721, - "first_heard":1757830983, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":1757994446, - "location_source":"LOC_MANUAL", - "latitude":52.4596978, - "longitude":13.3195129, - "altitude":72.0 - } - }, - { - "id":27, - "rx_time":1757879364, - "rx_iso":"2025-09-14T19:49:24Z", - "from_id":"!a0cb1608", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Währe sehr praktisch", - "rssi":-77, - "hop_limit":6, - "snr":11.0, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!a0cb1608", - "num":2697664008, - "short_name":"KBV5", - "long_name":"KeinBierVor5", - "macaddr":"MO2gyxYI", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757990312, - "first_heard":1757823622, - "battery_level":101.0, - "voltage":4.28, - "channel_utilization":1.2866666, - "air_util_tx":0.78044444, - "uptime_seconds":138304, - "position_time":1757980957, - "location_source":"LOC_EXTERNAL", - "latitude":52.4976128, - "longitude":13.5102464, - "altitude":40.0 - } - }, - { - "id":26, - "rx_time":1757879358, - "rx_iso":"2025-09-14T19:49:18Z", - "from_id":"!a0cb1608", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Wie kann ich in den TEST channel?", - "rssi":-81, - "hop_limit":6, - "snr":9.5, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!a0cb1608", - "num":2697664008, - "short_name":"KBV5", - "long_name":"KeinBierVor5", - "macaddr":"MO2gyxYI", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757990312, - "first_heard":1757823622, - "battery_level":101.0, - "voltage":4.28, - "channel_utilization":1.2866666, - "air_util_tx":0.78044444, - "uptime_seconds":138304, - "position_time":1757980957, - "location_source":"LOC_EXTERNAL", - "latitude":52.4976128, - "longitude":13.5102464, - "altitude":40.0 - } - }, - { - "id":25, - "rx_time":1757878454, - "rx_iso":"2025-09-14T19:34:14Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"ja", - "rssi":-75, - "hop_limit":5, - "snr":10.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":24, - "rx_time":1757878126, - "rx_iso":"2025-09-14T19:28:46Z", - "from_id":"!43b6e530", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"@mowW 🎙Is this thing on?\n4 hops", - "rssi":-80, - "hop_limit":3, - "snr":11.0, - "node":{ - "snr":10.5, - "raw_json":null, - "node_id":"!43b6e530", - "num":1136059696, - "short_name":"FFSR", - "long_name":"Freifunk-Scherer BOT 868", - "macaddr":"SMpDtuUw", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"VbueTxbv8SjGmcLLrlt9/um15QDvis/HpIHiV2flyiI=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757994889, - "first_heard":1757832883, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":1757993935, - "location_source":"LOC_MANUAL", - "latitude":52.5481294, - "longitude":13.3669095, - "altitude":0.0 - } - }, - { - "id":23, - "rx_time":1757878115, - "rx_iso":"2025-09-14T19:28:35Z", - "from_id":"!e80cda12", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Guten Abend , liest denn jemand im TEST Channel mit ? 😃", - "rssi":-77, - "hop_limit":null, - "snr":11.0, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!e80cda12", - "num":3893156370, - "short_name":"mowW", - "long_name":"mirkosw /pWisMeshTag", - "macaddr":"/ijoDNoS", - "hw_model":"WISMESH_TAG", - "role":"CLIENT_MUTE", - "public_key":"cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1758000127, - "first_heard":1757797822, - "battery_level":94.0, - "voltage":4.114, - "channel_utilization":3.01, - "air_util_tx":0.014333334, - "uptime_seconds":66, - "position_time":1758000127, - "location_source":"LOC_INTERNAL", - "latitude":52.4725355, - "longitude":13.3700968, - "altitude":-39.0 - } - }, - { - "id":22, - "rx_time":1757877363, - "rx_iso":"2025-09-14T19:16:03Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"ja wenn dann LF", - "rssi":-78, - "hop_limit":5, - "snr":11.0, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":21, - "rx_time":1757877318, - "rx_iso":"2025-09-14T19:15:18Z", - "from_id":"!16ced364", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Meinte 434.1 MHz als Amateurfunker, auf LongModerate nun fast 3h gehorcht, tot. Bin da der einzigste.", - "rssi":-79, - "hop_limit":1, - "snr":10.25, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!16ced364", - "num":382653284, - "short_name":"Pat", - "long_name":"Pat HQ BS", - "macaddr":"mKMWztNk", - "hw_model":"STATION_G2", - "role":"CLIENT", - "public_key":"d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1758000721, - "first_heard":1757830983, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":1757994446, - "location_source":"LOC_MANUAL", - "latitude":52.4596978, - "longitude":13.3195129, - "altitude":72.0 - } - }, - { - "id":20, - "rx_time":1757875848, - "rx_iso":"2025-09-14T18:50:48Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"ne das is 868", - "rssi":-74, - "hop_limit":5, - "snr":10.5, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":19, - "rx_time":1757870521, - "rx_iso":"2025-09-14T17:22:01Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Alles MediumFast, aber nutz jemand wirklich 43MhHz?", - "rssi":-31, - "hop_limit":7, - "snr":10.75, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - }, - { - "id":18, - "rx_time":1757867411, - "rx_iso":"2025-09-14T16:30:11Z", - "from_id":"!abbdf3f7", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Medium fast", - "rssi":-43, - "hop_limit":null, - "snr":11.0, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!abbdf3f7", - "num":2881352695, - "short_name":"f3f7", - "long_name":"Smobi", - "macaddr":"/vmrvfP3", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT_MUTE", - "public_key":"dyVfk9OfJ5EslgHoeWg+AtmH305m7QtI9vWhD58XLQM=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757991481, - "first_heard":1757800536, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":1757991481, - "location_source":"LOC_INTERNAL", - "latitude":52.4550144, - "longitude":13.500416, - "altitude":41.0 - } - }, - { - "id":17, - "rx_time":1757864125, - "rx_iso":"2025-09-14T15:35:25Z", - "from_id":"!c0c32348", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Ping @icea\n", - "rssi":-42, - "hop_limit":2, - "snr":10.5, - "node":{ - "snr":-13.0, - "raw_json":null, - "node_id":"!c0c32348", - "num":3234014024, - "short_name":"CooP", - "long_name":"Cooper", - "macaddr":"/OjAwyNI", - "hw_model":"TBEAM", - "role":"CLIENT", - "public_key":"pVtIIO4i1Guq81AsLBLpn8Rh+3MWoojhggVOl7fP8i0=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757998318, - "first_heard":1757863184, - "battery_level":101.0, - "voltage":3.487, - "channel_utilization":6.44, - "air_util_tx":0.025638888, - "uptime_seconds":61, - "position_time":1757998318, - "location_source":"LOC_INTERNAL", - "latitude":52.5467648, - "longitude":13.4873088, - "altitude":62.0 - } - }, - { - "id":16, - "rx_time":1757863227, - "rx_iso":"2025-09-14T15:20:27Z", - "from_id":"!16ced364", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Weiss einer welche Modem Betriebsart auf 433MHz in Berlin genutzt wird, war auf LF und kein Empfang.", - "rssi":-43, - "hop_limit":3, - "snr":11.0, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!16ced364", - "num":382653284, - "short_name":"Pat", - "long_name":"Pat HQ BS", - "macaddr":"mKMWztNk", - "hw_model":"STATION_G2", - "role":"CLIENT", - "public_key":"d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1758000721, - "first_heard":1757830983, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":1757994446, - "location_source":"LOC_MANUAL", - "latitude":52.4596978, - "longitude":13.3195129, - "altitude":72.0 - } - }, - { - "id":15, - "rx_time":1757861974, - "rx_iso":"2025-09-14T14:59:34Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"❤️", - "rssi":-43, - "hop_limit":null, - "snr":10.5, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":14, - "rx_time":1757861768, - "rx_iso":"2025-09-14T14:56:08Z", - "from_id":"!a0cb1608", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"🦫", - "rssi":-117, - "hop_limit":6, - "snr":-12.5, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!a0cb1608", - "num":2697664008, - "short_name":"KBV5", - "long_name":"KeinBierVor5", - "macaddr":"MO2gyxYI", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":2, - "last_heard":1757990312, - "first_heard":1757823622, - "battery_level":101.0, - "voltage":4.28, - "channel_utilization":1.2866666, - "air_util_tx":0.78044444, - "uptime_seconds":138304, - "position_time":1757980957, - "location_source":"LOC_EXTERNAL", - "latitude":52.4976128, - "longitude":13.5102464, - "altitude":40.0 - } - }, - { - "id":13, - "rx_time":1757861679, - "rx_iso":"2025-09-14T14:54:39Z", - "from_id":"!da635e24", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"🍻🍕", - "rssi":-43, - "hop_limit":6, - "snr":11.0, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!da635e24", - "num":3663945252, - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "macaddr":"NLfaY14k", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757996484, - "first_heard":1757820949, - "battery_level":101.0, - "voltage":4.203, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "uptime_seconds":61, - "position_time":1757921223, - "location_source":"LOC_MANUAL", - "latitude":52.5343, - "longitude":13.4996, - "altitude":null - } - }, - { - "id":12, - "rx_time":1757861565, - "rx_iso":"2025-09-14T14:52:45Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"🤖☠️", - "rssi":-114, - "hop_limit":2, - "snr":-8.75, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":11, - "rx_time":1757861136, - "rx_iso":"2025-09-14T14:45:36Z", - "from_id":"!5d823fb1", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Ping", - "rssi":-42, - "hop_limit":null, - "snr":10.25, - "node":{ - "snr":-14.0, - "raw_json":null, - "node_id":"!5d823fb1", - "num":1568817073, - "short_name":"3fb1", - "long_name":"SoswB", - "macaddr":"5Hpdgj+x", - "hw_model":"RAK4631", - "role":"CLIENT", - "public_key":"7IFrQCY8KjH2jlHfz5zS7zYCZLOakjZsKm8FoZW+XXY=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1757945442, - "first_heard":1757774595, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":10, - "rx_time":1757861105, - "rx_iso":"2025-09-14T14:45:05Z", - "from_id":"!43b6e530", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"@MGN1 🏓PONG\nSNR:-2.0 RSSI:-95", - "rssi":-42, - "hop_limit":2, - "snr":11.25, - "node":{ - "snr":10.5, - "raw_json":null, - "node_id":"!43b6e530", - "num":1136059696, - "short_name":"FFSR", - "long_name":"Freifunk-Scherer BOT 868", - "macaddr":"SMpDtuUw", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"VbueTxbv8SjGmcLLrlt9/um15QDvis/HpIHiV2flyiI=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":1, - "last_heard":1757994889, - "first_heard":1757832883, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":1757993935, - "location_source":"LOC_MANUAL", - "latitude":52.5481294, - "longitude":13.3669095, - "altitude":0.0 - } - }, - { - "id":9, - "rx_time":1757861102, - "rx_iso":"2025-09-14T14:45:02Z", - "from_id":"!849a8ba4", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Ping", - "rssi":-42, - "hop_limit":3, - "snr":11.0, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!849a8ba4", - "num":2224720804, - "short_name":"MGN1", - "long_name":"Magnus 1", - "macaddr":"sIGEmouk", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"OfaBBiVBvYUijwF6t5jNN+UFBwyw+AV7W85pE3xB6xw=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":4, - "last_heard":1757998761, - "first_heard":1757829564, - "battery_level":101.0, - "voltage":4.201, - "channel_utilization":0.0, - "air_util_tx":0.025305556, - "uptime_seconds":740673, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":8, - "rx_time":1757860555, - "rx_iso":"2025-09-14T14:35:55Z", - "from_id":"!849a8ba4", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Ping", - "rssi":-118, - "hop_limit":1, - "snr":-13.25, - "node":{ - "snr":11.25, - "raw_json":null, - "node_id":"!849a8ba4", - "num":2224720804, - "short_name":"MGN1", - "long_name":"Magnus 1", - "macaddr":"sIGEmouk", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "public_key":"OfaBBiVBvYUijwF6t5jNN+UFBwyw+AV7W85pE3xB6xw=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":4, - "last_heard":1757998761, - "first_heard":1757829564, - "battery_level":101.0, - "voltage":4.201, - "channel_utilization":0.0, - "air_util_tx":0.025305556, - "uptime_seconds":740673, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":7, - "rx_time":1757858547, - "rx_iso":"2025-09-14T14:02:27Z", - "from_id":"!9c93a2df", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Empfangen in Baumschulenweg ", - "rssi":-42, - "hop_limit":3, - "snr":10.75, - "node":{ - "snr":10.75, - "raw_json":null, - "node_id":"!9c93a2df", - "num":2626921183, - "short_name":"xaRa", - "long_name":"xayax RAK", - "macaddr":"znKck6Lf", - "hw_model":"RAK4631", - "role":"CLIENT", - "public_key":"Rxo/Fw/ergQIhRqBbrHasLYy3gU+Ay8hrhu4OVnIPQc=", - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":1757983466, - "first_heard":1757799869, - "battery_level":77.0, - "voltage":3.962, - "channel_utilization":3.2316666, - "air_util_tx":0.5660833, - "uptime_seconds":215189, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":6, - "rx_time":1757852693, - "rx_iso":"2025-09-14T12:24:53Z", - "from_id":"!9ee71c38", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Latsche gerade durch Britz herum und teste das neue Gerät. Bin ganz frisch dabei bei Meshtastic.", - "rssi":-43, - "hop_limit":1, - "snr":11.25, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!9ee71c38", - "num":2665946168, - "short_name":"1c38", - "long_name":"Varus1c38", - "macaddr":"nBOe5xw4", - "hw_model":"HELTEC_V3", - "role":null, - "public_key":"+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757934899, - "first_heard":1757784888, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":5, - "rx_time":1757852049, - "rx_iso":"2025-09-14T12:14:09Z", - "from_id":"!9ee71c38", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Sehr schön:)", - "rssi":-43, - "hop_limit":1, - "snr":11.0, - "node":{ - "snr":11.5, - "raw_json":null, - "node_id":"!9ee71c38", - "num":2665946168, - "short_name":"1c38", - "long_name":"Varus1c38", - "macaddr":"nBOe5xw4", - "hw_model":"HELTEC_V3", - "role":null, - "public_key":"+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":null, - "last_heard":1757934899, - "first_heard":1757784888, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":4, - "rx_time":1757851803, - "rx_iso":"2025-09-14T12:10:03Z", - "from_id":"!5d823fb1", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Kam an. 😁", - "rssi":-41, - "hop_limit":null, - "snr":11.0, - "node":{ - "snr":-14.0, - "raw_json":null, - "node_id":"!5d823fb1", - "num":1568817073, - "short_name":"3fb1", - "long_name":"SoswB", - "macaddr":"5Hpdgj+x", - "hw_model":"RAK4631", - "role":"CLIENT", - "public_key":"7IFrQCY8KjH2jlHfz5zS7zYCZLOakjZsKm8FoZW+XXY=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1757945442, - "first_heard":1757774595, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":3, - "rx_time":1757851437, - "rx_iso":"2025-09-14T12:03:57Z", - "from_id":"!6c73bf84", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Hängt wohl auch hoch auf dem Dach", - "rssi":-42, - "hop_limit":3, - "snr":11.0, - "node":{ - "snr":2.75, - "raw_json":null, - "node_id":"!6c73bf84", - "num":1819524996, - "short_name":"ts1", - "long_name":"Tegeler See Node 1", - "macaddr":"oN1sc7+E", - "hw_model":"TBEAM", - "role":"CLIENT", - "public_key":"AW0bHoCVF0Yzo3yWx96b8XtA2kNZBQsWRyoQjKKm02A=", - "is_unmessagable":0, - "is_favorite":null, - "hops_away":3, - "last_heard":1757964116, - "first_heard":1757824664, - "battery_level":100.0, - "voltage":4.179, - "channel_utilization":6.3450003, - "air_util_tx":0.28575, - "uptime_seconds":30670, - "position_time":null, - "location_source":"LOC_MANUAL", - "latitude":52.559872, - "longitude":13.2907008, - "altitude":35.0 - } - }, - { - "id":2, - "rx_time":1757851276, - "rx_iso":"2025-09-14T12:01:16Z", - "from_id":null, - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Test mit neuer Antenne. Vlt geht ja so mal was raus.", - "rssi":-42, - "hop_limit":1, - "snr":11.25, - "node":{ - "snr":null, - "raw_json":null, - "node_id":null, - "num":null, - "short_name":null, - "long_name":null, - "macaddr":null, - "hw_model":null, - "role":null, - "public_key":null, - "is_unmessagable":null, - "is_favorite":null, - "hops_away":null, - "last_heard":null, - "first_heard":null, - "battery_level":null, - "voltage":null, - "channel_utilization":null, - "air_util_tx":null, - "uptime_seconds":null, - "position_time":null, - "location_source":null, - "latitude":null, - "longitude":null, - "altitude":null - } - }, - { - "id":1, - "rx_time":1757850801, - "rx_iso":"2025-09-14T11:53:21Z", - "from_id":"!194a7351", - "to_id":"^all", - "channel":0, - "portnum":"TEXT_MESSAGE_APP", - "text":"Noch jemand im ICC heute?", - "rssi":-18, - "hop_limit":7, - "snr":11.25, - "node":{ - "snr":11.0, - "raw_json":null, - "node_id":"!194a7351", - "num":424309585, - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "macaddr":"0p4ZSnNR", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "public_key":"UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", - "is_unmessagable":0, - "is_favorite":1, - "hops_away":0, - "last_heard":1758001135, - "first_heard":1757828307, - "battery_level":99.0, - "voltage":4.176, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "uptime_seconds":303417, - "position_time":1758001135, - "location_source":"LOC_EXTERNAL", - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0 - } - } -] diff --git a/test/nodes.json b/test/nodes.json deleted file mode 100644 index 6343f7b..0000000 --- a/test/nodes.json +++ /dev/null @@ -1,3553 +0,0 @@ -[ - { - "node_id":"!e138f77e", - "short_name":"PN", - "long_name":"Pankow-Nord", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1758002982, - "first_heard":1757808582, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":52.6123008, - "longitude":13.3955584, - "altitude":45.0, - "last_seen_iso":"2025-09-16T06:09:42Z" - }, - { - "node_id":"!4359d8f8", - "short_name":"fax", - "long_name":"fantastix", - "hw_model":"HELTEC_WIRELESS_PAPER", - "role":"CLIENT", - "snr":10.5, - "battery_level":101.0, - "voltage":4.243, - "last_heard":1758002976, - "first_heard":1757832819, - "uptime_seconds":61, - "channel_utilization":10.321667, - "air_util_tx":0.027138889, - "position_time":null, - "latitude":52.43278, - "longitude":13.47092, - "altitude":50.0, - "last_seen_iso":"2025-09-16T06:09:36Z" - }, - { - "node_id":"!33602324", - "short_name":"Jan", - "long_name":"Jan SUPREME", - "hw_model":"LILYGO_TBEAM_S3_CORE", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":1.54, - "last_heard":1758002860, - "first_heard":1757867591, - "uptime_seconds":279305, - "channel_utilization":2.2266667, - "air_util_tx":1.0572499, - "position_time":1758002860, - "latitude":52.5074432, - "longitude":13.4479872, - "altitude":108.0, - "last_seen_iso":"2025-09-16T06:07:40Z", - "pos_time_iso":"2025-09-16T06:07:40Z" - }, - { - "node_id":"!ba60638c", - "short_name":"638c", - "long_name":"Meshtastic 638c", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1758002818, - "first_heard":1757821860, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1758002818, - "latitude":52.5074432, - "longitude":13.6052736, - "altitude":57.0, - "last_seen_iso":"2025-09-16T06:06:58Z", - "pos_time_iso":"2025-09-16T06:06:58Z" - }, - { - "node_id":"!0c63e027", - "short_name":"l5ye", - "long_name":"l5yth e027 mf", - "hw_model":"T_ECHO", - "role":"CLIENT_MUTE", - "snr":-16.5, - "battery_level":101.0, - "voltage":4.403, - "last_heard":1758002651, - "first_heard":1757775015, - "uptime_seconds":64961, - "channel_utilization":1.3966666, - "air_util_tx":0.033833332, - "position_time":1758002651, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":50.0, - "last_seen_iso":"2025-09-16T06:04:11Z", - "pos_time_iso":"2025-09-16T06:04:11Z" - }, - { - "node_id":"!bcf10936", - "short_name":"0936", - "long_name":"Hopfensender HQ", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.0, - "battery_level":98.0, - "voltage":4.167, - "last_heard":1758002497, - "first_heard":1757833703, - "uptime_seconds":6373, - "channel_utilization":3.8283334, - "air_util_tx":0.98713887, - "position_time":1758001364, - "latitude":52.5729792, - "longitude":13.43488, - "altitude":57.0, - "last_seen_iso":"2025-09-16T06:01:37Z", - "pos_time_iso":"2025-09-16T05:42:44Z" - }, - { - "node_id":"!6e11aaed", - "short_name":"ARSH", - "long_name":"Marschi", - "hw_model":"HELTEC_MESH_POCKET", - "role":"CLIENT_MUTE", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1758002375, - "first_heard":1757954437, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1758002375, - "latitude":52.527104, - "longitude":13.4545408, - "altitude":50.0, - "last_seen_iso":"2025-09-16T05:59:35Z", - "pos_time_iso":"2025-09-16T05:59:35Z" - }, - { - "node_id":"!db29aa78", - "short_name":"_blx", - "long_name":"DB0BLX", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":4.229, - "last_heard":1758002284, - "first_heard":1757829484, - "uptime_seconds":480825, - "channel_utilization":0.8166667, - "air_util_tx":0.7813056, - "position_time":1758001092, - "latitude":52.4550144, - "longitude":13.3431296, - "altitude":null, - "last_seen_iso":"2025-09-16T05:58:04Z", - "pos_time_iso":"2025-09-16T05:38:12Z" - }, - { - "node_id":"!433ad740", - "short_name":"TWR3", - "long_name":"TWR3-Node", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-12.25, - "battery_level":101.0, - "voltage":4.204, - "last_heard":1758001973, - "first_heard":1757825041, - "uptime_seconds":475705, - "channel_utilization":4.1749997, - "air_util_tx":1.7455277, - "position_time":1758001973, - "latitude":52.525056, - "longitude":13.3255168, - "altitude":34.0, - "last_seen_iso":"2025-09-16T05:52:53Z", - "pos_time_iso":"2025-09-16T05:52:53Z" - }, - { - "node_id":"!ed6a8dc9", - "short_name":"PTA1", - "long_name":"K4PUT techo1", - "hw_model":"T_ECHO", - "role":"CLIENT", - "snr":-13.0, - "battery_level":101.0, - "voltage":4.765, - "last_heard":1758001946, - "first_heard":1757813123, - "uptime_seconds":60250, - "channel_utilization":1.39, - "air_util_tx":0.7958611, - "position_time":1758001946, - "latitude":52.4550144, - "longitude":13.3955584, - "altitude":77.0, - "last_seen_iso":"2025-09-16T05:52:26Z", - "pos_time_iso":"2025-09-16T05:52:26Z" - }, - { - "node_id":"!c0c321b4", - "short_name":"AFCK", - "long_name":"AufAckse", - "hw_model":"TBEAM", - "role":"ROUTER", - "snr":10.75, - "battery_level":101.0, - "voltage":0.0, - "last_heard":1758001928, - "first_heard":1757976245, - "uptime_seconds":61, - "channel_utilization":8.728333, - "air_util_tx":0.033555556, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T05:52:08Z" - }, - { - "node_id":"!bba83318", - "short_name":"BerF", - "long_name":"Bernau-Friedenstal", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":11.25, - "battery_level":101.0, - "voltage":-0.001, - "last_heard":1758001805, - "first_heard":1757825270, - "uptime_seconds":61, - "channel_utilization":7.01, - "air_util_tx":0.030944444, - "position_time":1758001805, - "latitude":52.6778368, - "longitude":13.565952, - "altitude":21.0, - "last_seen_iso":"2025-09-16T05:50:05Z", - "pos_time_iso":"2025-09-16T05:50:05Z" - }, - { - "node_id":"!db2b2418", - "short_name":"AmHe", - "long_name":"Amon Hen", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-13.75, - "battery_level":101.0, - "voltage":4.401, - "last_heard":1758001776, - "first_heard":1757830524, - "uptime_seconds":109810, - "channel_utilization":13.245, - "air_util_tx":1.0662222, - "position_time":1758001776, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":46.0, - "last_seen_iso":"2025-09-16T05:49:36Z", - "pos_time_iso":"2025-09-16T05:49:36Z" - }, - { - "node_id":"!b03d7b74", - "short_name":"unb2", - "long_name":"unblau-2", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":4.295, - "last_heard":1758001763, - "first_heard":1757829896, - "uptime_seconds":2159910, - "channel_utilization":4.366667, - "air_util_tx":0.45886108, - "position_time":1758001763, - "latitude":52.547584, - "longitude":13.3029888, - "altitude":0.0, - "last_seen_iso":"2025-09-16T05:49:23Z", - "pos_time_iso":"2025-09-16T05:49:23Z" - }, - { - "node_id":"!02788f81", - "short_name":"HanS", - "long_name":"Meshtastic 8f81", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT", - "snr":10.75, - "battery_level":58.0, - "voltage":3.877, - "last_heard":1758001632, - "first_heard":1758001632, - "uptime_seconds":471594, - "channel_utilization":3.7566667, - "air_util_tx":0.061694447, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T05:47:12Z" - }, - { - "node_id":"!849c4c24", - "short_name":"TMGG", - "long_name":"TMG green", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":4.239, - "last_heard":1758001547, - "first_heard":1757828747, - "uptime_seconds":1222581, - "channel_utilization":5.535, - "air_util_tx":1.0828055, - "position_time":1757988237, - "latitude":52.527104, - "longitude":13.5462912, - "altitude":60.0, - "last_seen_iso":"2025-09-16T05:45:47Z", - "pos_time_iso":"2025-09-16T02:03:57Z" - }, - { - "node_id":"!9ee71430", - "short_name":"FiSp", - "long_name":"FireSpark", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":95.0, - "voltage":4.125, - "last_heard":1758001545, - "first_heard":1757838749, - "uptime_seconds":327578, - "channel_utilization":0.31333333, - "air_util_tx":0.21124999, - "position_time":1758001545, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":67.0, - "last_seen_iso":"2025-09-16T05:45:45Z", - "pos_time_iso":"2025-09-16T05:45:45Z" - }, - { - "node_id":"!6eec6364", - "short_name":"FR_C", - "long_name":"Frosch/c", - "hw_model":"T_ECHO", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":101.0, - "voltage":4.759, - "last_heard":1758001515, - "first_heard":1757827060, - "uptime_seconds":5645, - "channel_utilization":3.7783332, - "air_util_tx":0.01511111, - "position_time":1758001515, - "latitude":52.5180928, - "longitude":13.5520256, - "altitude":50.0, - "last_seen_iso":"2025-09-16T05:45:15Z", - "pos_time_iso":"2025-09-16T05:45:15Z" - }, - { - "node_id":"!af51a025", - "short_name":"Mry0", - "long_name":"Mry BaseStation", - "hw_model":"SEEED_SOLAR_NODE", - "role":"CLIENT", - "snr":10.75, - "battery_level":65.0, - "voltage":3.846, - "last_heard":1758001298, - "first_heard":1757843714, - "uptime_seconds":192440, - "channel_utilization":1.3983333, - "air_util_tx":0.6596111, - "position_time":1757974248, - "latitude":52.4681216, - "longitude":13.303808, - "altitude":49.0, - "last_seen_iso":"2025-09-16T05:41:38Z", - "pos_time_iso":"2025-09-15T22:10:48Z" - }, - { - "node_id":"!da621dbc", - "short_name":"WbXn", - "long_name":"WebXnode", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-12.75, - "battery_level":101.0, - "voltage":4.81, - "last_heard":1758001266, - "first_heard":1757963288, - "uptime_seconds":32446, - "channel_utilization":1.8850001, - "air_util_tx":0.8733612, - "position_time":1757998084, - "latitude":52.6286848, - "longitude":13.3332992, - "altitude":45.0, - "last_seen_iso":"2025-09-16T05:41:06Z", - "pos_time_iso":"2025-09-16T04:48:04Z" - }, - { - "node_id":"!433e67e8", - "short_name":"FR_W", - "long_name":"Frosch/w", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":4.289, - "last_heard":1758001248, - "first_heard":1757819862, - "uptime_seconds":394618, - "channel_utilization":0.895, - "air_util_tx":1.0310278, - "position_time":1758001248, - "latitude":52.5180928, - "longitude":13.5520256, - "altitude":30.0, - "last_seen_iso":"2025-09-16T05:40:48Z", - "pos_time_iso":"2025-09-16T05:40:48Z" - }, - { - "node_id":"!fa6bb504", - "short_name":"TWR2", - "long_name":"TWR2-Zentrum", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-15.25, - "battery_level":101.0, - "voltage":4.216, - "last_heard":1758001199, - "first_heard":1757831988, - "uptime_seconds":2480111, - "channel_utilization":2.0066667, - "air_util_tx":0.5283889, - "position_time":null, - "latitude":52.5254656, - "longitude":13.3251072, - "altitude":82.0, - "last_seen_iso":"2025-09-16T05:39:59Z" - }, - { - "node_id":"!849a8b90", - "short_name":"📶", - "long_name":"bert", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-12.75, - "battery_level":101.0, - "voltage":4.274, - "last_heard":1758001165, - "first_heard":1757950681, - "uptime_seconds":56369, - "channel_utilization":10.768333, - "air_util_tx":1.1604723, - "position_time":1758001165, - "latitude":52.5074432, - "longitude":13.4479872, - "altitude":48.0, - "last_seen_iso":"2025-09-16T05:39:25Z", - "pos_time_iso":"2025-09-16T05:39:25Z" - }, - { - "node_id":"!da63e474", - "short_name":"🐧", - "long_name":"belug.de 868MHz", - "hw_model":"LILYGO_TBEAM_S3_CORE", - "role":"CLIENT_MUTE", - "snr":11.25, - "battery_level":100.0, - "voltage":4.121, - "last_heard":1758001158, - "first_heard":1757793513, - "uptime_seconds":1347958, - "channel_utilization":0.0, - "air_util_tx":0.0375, - "position_time":1758001158, - "latitude":52.5345, - "longitude":13.35849, - "altitude":null, - "last_seen_iso":"2025-09-16T05:39:18Z", - "pos_time_iso":"2025-09-16T05:39:18Z" - }, - { - "node_id":"!194a7351", - "short_name":"l5y7", - "long_name":"l5yth 7351 mf", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":99.0, - "voltage":4.176, - "last_heard":1758001135, - "first_heard":1757828307, - "uptime_seconds":303417, - "channel_utilization":1.475, - "air_util_tx":0.026222222, - "position_time":1758001135, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":39.0, - "last_seen_iso":"2025-09-16T05:38:55Z", - "pos_time_iso":"2025-09-16T05:38:55Z" - }, - { - "node_id":"!177cfa26", - "short_name":"lun1", - "long_name":"Lunet One", - "hw_model":"T_ECHO", - "role":"CLIENT", - "snr":-11.75, - "battery_level":101.0, - "voltage":4.847, - "last_heard":1758001093, - "first_heard":1757768167, - "uptime_seconds":1029644, - "channel_utilization":0.0, - "air_util_tx":0.62547225, - "position_time":1758000320, - "latitude":52.5021165, - "longitude":13.5000622, - "altitude":61.0, - "last_seen_iso":"2025-09-16T05:38:13Z", - "pos_time_iso":"2025-09-16T05:25:20Z" - }, - { - "node_id":"!4eb3bc8d", - "short_name":"Alex", - "long_name":"Alex /p1 (T-Echo)", - "hw_model":"T_ECHO", - "role":"CLIENT_MUTE", - "snr":11.25, - "battery_level":101.0, - "voltage":4.983, - "last_heard":1758000951, - "first_heard":1757798660, - "uptime_seconds":666909, - "channel_utilization":7.1883335, - "air_util_tx":0.014333334, - "position_time":1758000951, - "latitude":52.5074432, - "longitude":13.3431296, - "altitude":25.0, - "last_seen_iso":"2025-09-16T05:35:51Z", - "pos_time_iso":"2025-09-16T05:35:51Z" - }, - { - "node_id":"!6c740610", - "short_name":"🦄", - "long_name":"IDDQD 10435", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1758000816, - "first_heard":1758000812, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1758000717, - "latitude":52.54, - "longitude":13.41, - "altitude":null, - "last_seen_iso":"2025-09-16T05:33:36Z", - "pos_time_iso":"2025-09-16T05:31:57Z" - }, - { - "node_id":"!16ced364", - "short_name":"Pat", - "long_name":"Pat HQ BS", - "hw_model":"STATION_G2", - "role":"CLIENT", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1758000721, - "first_heard":1757830983, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757994446, - "latitude":52.4596978, - "longitude":13.3195129, - "altitude":72.0, - "last_seen_iso":"2025-09-16T05:32:01Z", - "pos_time_iso":"2025-09-16T03:47:26Z" - }, - { - "node_id":"!b03b3b38", - "short_name":"3b38", - "long_name":"Meshtastic 3b38", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.5, - "battery_level":78.0, - "voltage":3.977, - "last_heard":1758000599, - "first_heard":1757829178, - "uptime_seconds":2531225, - "channel_utilization":6.7633333, - "air_util_tx":1.1645555, - "position_time":1758000599, - "latitude":52.4550144, - "longitude":13.4479872, - "altitude":0.0, - "last_seen_iso":"2025-09-16T05:29:59Z", - "pos_time_iso":"2025-09-16T05:29:59Z" - }, - { - "node_id":"!44968f61", - "short_name":"PMRB", - "long_name":"PotatoMesh Rummelsburg MF", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":-0.001, - "last_heard":1758000564, - "first_heard":1757827764, - "uptime_seconds":303956, - "channel_utilization":1.72, - "air_util_tx":0.70775, - "position_time":1757698889, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":50.0, - "last_seen_iso":"2025-09-16T05:29:24Z", - "pos_time_iso":"2025-09-12T17:41:29Z" - }, - { - "node_id":"!5bcdae60", - "short_name":"Euv", - "long_name":"Euv Solar1", - "hw_model":"SEEED_SOLAR_NODE", - "role":"ROUTER_LATE", - "snr":10.75, - "battery_level":98.0, - "voltage":4.168, - "last_heard":1758000540, - "first_heard":1757795030, - "uptime_seconds":61396, - "channel_utilization":6.4266667, - "air_util_tx":1.4744445, - "position_time":1758000540, - "latitude":52.5074432, - "longitude":13.4479872, - "altitude":54.0, - "last_seen_iso":"2025-09-16T05:29:00Z", - "pos_time_iso":"2025-09-16T05:29:00Z" - }, - { - "node_id":"!a0cc1800", - "short_name":"SIXB", - "long_name":"bea22.mt.sixtopia.net", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-13.25, - "battery_level":101.0, - "voltage":4.266, - "last_heard":1758000359, - "first_heard":1757819160, - "uptime_seconds":50708, - "channel_utilization":1.0716666, - "air_util_tx":1.0038055, - "position_time":1757993488, - "latitude":52.5693177, - "longitude":13.2319891, - "altitude":0.0, - "last_seen_iso":"2025-09-16T05:25:59Z", - "pos_time_iso":"2025-09-16T03:31:28Z" - }, - { - "node_id":"!9ea0c780", - "short_name":"nguE", - "long_name":"ngud E Mobile", - "hw_model":"HELTEC_WIRELESS_PAPER", - "role":"CLIENT", - "snr":11.25, - "battery_level":64.0, - "voltage":3.843, - "last_heard":1758000325, - "first_heard":1757808007, - "uptime_seconds":61, - "channel_utilization":5.0299997, - "air_util_tx":0.02638889, - "position_time":1757979817, - "latitude":52.5369344, - "longitude":13.484032, - "altitude":66.0, - "last_seen_iso":"2025-09-16T05:25:25Z", - "pos_time_iso":"2025-09-15T23:43:37Z" - }, - { - "node_id":"!e80cda12", - "short_name":"mowW", - "long_name":"mirkosw /pWisMeshTag", - "hw_model":"WISMESH_TAG", - "role":"CLIENT_MUTE", - "snr":11.5, - "battery_level":94.0, - "voltage":4.114, - "last_heard":1758000127, - "first_heard":1757797822, - "uptime_seconds":66, - "channel_utilization":3.01, - "air_util_tx":0.014333334, - "position_time":1758000127, - "latitude":52.4725355, - "longitude":13.3700968, - "altitude":-39.0, - "last_seen_iso":"2025-09-16T05:22:07Z", - "pos_time_iso":"2025-09-16T05:22:07Z" - }, - { - "node_id":"!b03ceb58", - "short_name":"base", - "long_name":"c-base.org 868MHz", - "hw_model":"HELTEC_WIRELESS_TRACKER", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1758000087, - "first_heard":1757827634, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1758000087, - "latitude":52.512859, - "longitude":13.420156, - "altitude":57.0, - "last_seen_iso":"2025-09-16T05:21:27Z", - "pos_time_iso":"2025-09-16T05:21:27Z" - }, - { - "node_id":"!970588c4", - "short_name":"MxHQ", - "long_name":"Max HQ", - "hw_model":"HELTEC_VISION_MASTER_E290", - "role":"CLIENT_MUTE", - "snr":-13.75, - "battery_level":101.0, - "voltage":4.428, - "last_heard":1758000033, - "first_heard":1757830407, - "uptime_seconds":66, - "channel_utilization":1.4399999, - "air_util_tx":0.012, - "position_time":1758000032, - "latitude":52.4729555, - "longitude":13.3166989, - "altitude":50.0, - "last_seen_iso":"2025-09-16T05:20:33Z", - "pos_time_iso":"2025-09-16T05:20:32Z" - }, - { - "node_id":"!b03c97a4", - "short_name":"BLN1", - "long_name":"BLNo1 Fhain Süd ", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-14.5, - "battery_level":null, - "voltage":null, - "last_heard":1757999721, - "first_heard":1757831824, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757999721, - "latitude":52.502528, - "longitude":13.4561792, - "altitude":38.0, - "last_seen_iso":"2025-09-16T05:15:21Z", - "pos_time_iso":"2025-09-16T05:15:21Z" - }, - { - "node_id":"!a0cc2af8", - "short_name":"2af8", - "long_name":"Meshtastic 2af8", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.25, - "battery_level":76.0, - "voltage":3.958, - "last_heard":1757999631, - "first_heard":1757817531, - "uptime_seconds":71724, - "channel_utilization":0.0, - "air_util_tx":0.5922222, - "position_time":1757999631, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":61.0, - "last_seen_iso":"2025-09-16T05:13:51Z", - "pos_time_iso":"2025-09-16T05:13:51Z" - }, - { - "node_id":"!18de8f57", - "short_name":"TWR4", - "long_name":"TWR4-Node", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.0, - "battery_level":93.0, - "voltage":4.1, - "last_heard":1757999530, - "first_heard":1757826734, - "uptime_seconds":2522712, - "channel_utilization":2.3633332, - "air_util_tx":0.46722224, - "position_time":null, - "latitude":52.6032896, - "longitude":13.3308416, - "altitude":70.0, - "last_seen_iso":"2025-09-16T05:12:10Z" - }, - { - "node_id":"!db2b13fc", - "short_name":"SO36", - "long_name":"", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.5, - "battery_level":null, - "voltage":null, - "last_heard":1757999484, - "first_heard":1757828830, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T05:11:24Z" - }, - { - "node_id":"!2b292b2c", - "short_name":"RüP", - "long_name":"Rüdesheimer Platz", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757999468, - "first_heard":1757970516, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757999468, - "latitude":52.4731107, - "longitude":13.3152098, - "altitude":61.0, - "last_seen_iso":"2025-09-16T05:11:08Z", - "pos_time_iso":"2025-09-16T05:11:08Z" - }, - { - "node_id":"!ea24e0b4", - "short_name":"TWRu", - "long_name":"TWRu-Node", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "snr":-14.0, - "battery_level":101.0, - "voltage":4.311, - "last_heard":1757998811, - "first_heard":1757829609, - "uptime_seconds":1928320, - "channel_utilization":7.2566667, - "air_util_tx":0.68994445, - "position_time":1757976799, - "latitude":52.6245888, - "longitude":13.4815744, - "altitude":61.0, - "last_seen_iso":"2025-09-16T05:00:11Z", - "pos_time_iso":"2025-09-15T22:53:19Z" - }, - { - "node_id":"!849a8ba4", - "short_name":"MGN1", - "long_name":"Magnus 1", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.25, - "battery_level":101.0, - "voltage":4.201, - "last_heard":1757998761, - "first_heard":1757829564, - "uptime_seconds":740673, - "channel_utilization":0.0, - "air_util_tx":0.025305556, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T04:59:21Z" - }, - { - "node_id":"!a0cc1394", - "short_name":"KBV4", - "long_name":"KeinBierVor4", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.5, - "battery_level":96.0, - "voltage":4.143, - "last_heard":1757998637, - "first_heard":1757864736, - "uptime_seconds":136967, - "channel_utilization":2.6966667, - "air_util_tx":0.51630557, - "position_time":1757998637, - "latitude":52.6123008, - "longitude":13.3431296, - "altitude":45.0, - "last_seen_iso":"2025-09-16T04:57:17Z", - "pos_time_iso":"2025-09-16T04:57:17Z" - }, - { - "node_id":"!b1fa2b07", - "short_name":"FROG", - "long_name":"Frosch/p", - "hw_model":"T_ECHO", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":101.0, - "voltage":4.752, - "last_heard":1757998630, - "first_heard":1757911631, - "uptime_seconds":122785, - "channel_utilization":2.385, - "air_util_tx":0.038000003, - "position_time":1757998630, - "latitude":52.518912, - "longitude":13.5512064, - "altitude":68.0, - "last_seen_iso":"2025-09-16T04:57:10Z", - "pos_time_iso":"2025-09-16T04:57:10Z" - }, - { - "node_id":"!db2b23f4", - "short_name":"Eagl", - "long_name":"Gwaihir", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":95.0, - "voltage":4.129, - "last_heard":1757998529, - "first_heard":1757822402, - "uptime_seconds":14291, - "channel_utilization":5.5466666, - "air_util_tx":1.0283333, - "position_time":1757998529, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":41.0, - "last_seen_iso":"2025-09-16T04:55:29Z", - "pos_time_iso":"2025-09-16T04:55:29Z" - }, - { - "node_id":"!9ea0bcbc", - "short_name":"bcbc", - "long_name":"Meshtastic bcbc", - "hw_model":"HELTEC_WIRELESS_PAPER", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757998485, - "first_heard":1757872713, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T04:54:45Z" - }, - { - "node_id":"!c0c32348", - "short_name":"CooP", - "long_name":"Cooper", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":-13.0, - "battery_level":101.0, - "voltage":3.487, - "last_heard":1757998318, - "first_heard":1757863184, - "uptime_seconds":61, - "channel_utilization":6.44, - "air_util_tx":0.025638888, - "position_time":1757998318, - "latitude":52.5467648, - "longitude":13.4873088, - "altitude":62.0, - "last_seen_iso":"2025-09-16T04:51:58Z", - "pos_time_iso":"2025-09-16T04:51:58Z" - }, - { - "node_id":"!dc6e4013", - "short_name":"Kn5S", - "long_name":"Kein5Stein 4013 P", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.0, - "battery_level":94.0, - "voltage":4.111, - "last_heard":1757998259, - "first_heard":1757825108, - "uptime_seconds":380026, - "channel_utilization":1.8349999, - "air_util_tx":0.42697224, - "position_time":1757998259, - "latitude":52.4636282, - "longitude":13.3223541, - "altitude":50.0, - "last_seen_iso":"2025-09-16T04:50:59Z", - "pos_time_iso":"2025-09-16T04:50:59Z" - }, - { - "node_id":"!9eecb2fc", - "short_name":"scf1", - "long_name":"smartCityFarm-eV-greenhouse", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":4.273, - "last_heard":1757998157, - "first_heard":1757798528, - "uptime_seconds":573904, - "channel_utilization":0.2866667, - "air_util_tx":0.8055833, - "position_time":1757998157, - "latitude":52.4730368, - "longitude":13.4660096, - "altitude":43.0, - "last_seen_iso":"2025-09-16T04:49:17Z", - "pos_time_iso":"2025-09-16T04:49:17Z" - }, - { - "node_id":"!92476202", - "short_name":"WMDF", - "long_name":"WMDF/RAK", - "hw_model":"RAK2560", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757997879, - "first_heard":1757799337, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T04:44:39Z" - }, - { - "node_id":"!102cb4b8", - "short_name":"JAN", - "long_name":"Jan T114", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757997682, - "first_heard":1757877459, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757997682, - "latitude":52.512682, - "longitude":13.4566423, - "altitude":84.0, - "last_seen_iso":"2025-09-16T04:41:22Z", - "pos_time_iso":"2025-09-16T04:41:22Z" - }, - { - "node_id":"!9c56b631", - "short_name":"KatS", - "long_name":"KatSComm", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.0, - "battery_level":74.0, - "voltage":3.936, - "last_heard":1757997367, - "first_heard":1757824568, - "uptime_seconds":637262, - "channel_utilization":3.8866665, - "air_util_tx":0.86419445, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T04:36:07Z" - }, - { - "node_id":"!6c7311ec", - "short_name":"ts2", - "long_name":"Tegeler See Node 2", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":-14.0, - "battery_level":null, - "voltage":null, - "last_heard":1757997350, - "first_heard":1757824323, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T04:35:50Z" - }, - { - "node_id":"!068e1ebc", - "short_name":"f2ag", - "long_name":"free2air gateway", - "hw_model":"RAK11200", - "role":"CLIENT", - "snr":-13.0, - "battery_level":101.0, - "voltage":5.268, - "last_heard":1757996793, - "first_heard":1757829634, - "uptime_seconds":1849223, - "channel_utilization":2.33, - "air_util_tx":0.4883333, - "position_time":1757996793, - "latitude":52.5309528, - "longitude":13.40785, - "altitude":122.0, - "last_seen_iso":"2025-09-16T04:26:33Z", - "pos_time_iso":"2025-09-16T04:26:33Z" - }, - { - "node_id":"!da635e24", - "short_name":"LAN", - "long_name":"LAN (\"ping\"/SF)", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":4.203, - "last_heard":1757996484, - "first_heard":1757820949, - "uptime_seconds":61, - "channel_utilization":16.29, - "air_util_tx":0.012527777, - "position_time":1757921223, - "latitude":52.5343, - "longitude":13.4996, - "altitude":null, - "last_seen_iso":"2025-09-16T04:21:24Z", - "pos_time_iso":"2025-09-15T07:27:03Z" - }, - { - "node_id":"!25c2e7dc", - "short_name":"e7dc", - "long_name":"Julia Kløckchain", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757996090, - "first_heard":1757781280, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757996090, - "latitude":52.5074432, - "longitude":13.4479872, - "altitude":50.0, - "last_seen_iso":"2025-09-16T04:14:50Z", - "pos_time_iso":"2025-09-16T04:14:50Z" - }, - { - "node_id":"!90a0ecac", - "short_name":"MxSc", - "long_name":"Max Screen", - "hw_model":"SENSECAP_INDICATOR", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757995637, - "first_heard":1757822815, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T04:07:17Z" - }, - { - "node_id":"!ef6a21c5", - "short_name":"SEAm", - "long_name":"DMSEA mobil", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":101.0, - "voltage":4.207, - "last_heard":1757995531, - "first_heard":1757829688, - "uptime_seconds":42551, - "channel_utilization":0.465, - "air_util_tx":0.013194445, - "position_time":1757995531, - "latitude":52.4550144, - "longitude":13.500416, - "altitude":69.0, - "last_seen_iso":"2025-09-16T04:05:31Z", - "pos_time_iso":"2025-09-16T04:05:31Z" - }, - { - "node_id":"!fa6baed0", - "short_name":"TWR1", - "long_name":"TWR1-Nord", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":97.0, - "voltage":4.152, - "last_heard":1757995313, - "first_heard":1757811714, - "uptime_seconds":14463, - "channel_utilization":5.741667, - "air_util_tx":0.31316668, - "position_time":1757954484, - "latitude":52.604928, - "longitude":13.3341184, - "altitude":65.0, - "last_seen_iso":"2025-09-16T04:01:53Z", - "pos_time_iso":"2025-09-15T16:41:24Z" - }, - { - "node_id":"!45edbd08", - "short_name":"SOL1", - "long_name":"SOL1-Karow☀️", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.5, - "battery_level":97.0, - "voltage":4.155, - "last_heard":1757995081, - "first_heard":1757825874, - "uptime_seconds":5887731, - "channel_utilization":2.1116667, - "air_util_tx":0.6923889, - "position_time":null, - "latitude":52.6241792, - "longitude":13.481984, - "altitude":62.0, - "last_seen_iso":"2025-09-16T03:58:01Z" - }, - { - "node_id":"!43b6e530", - "short_name":"FFSR", - "long_name":"Freifunk-Scherer BOT 868", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.5, - "battery_level":null, - "voltage":null, - "last_heard":1757994889, - "first_heard":1757832883, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757993935, - "latitude":52.5481294, - "longitude":13.3669095, - "altitude":0.0, - "last_seen_iso":"2025-09-16T03:54:49Z", - "pos_time_iso":"2025-09-16T03:38:55Z" - }, - { - "node_id":"!5d9c7329", - "short_name":"mowM", - "long_name":"mirkosw /MF", - "hw_model":"T_ECHO", - "role":"CLIENT", - "snr":11.0, - "battery_level":87.0, - "voltage":4.032, - "last_heard":1757993742, - "first_heard":1757769553, - "uptime_seconds":563502, - "channel_utilization":8.078333, - "air_util_tx":0.8741944, - "position_time":1757993742, - "latitude":52.4629608, - "longitude":13.5136113, - "altitude":18.0, - "last_seen_iso":"2025-09-16T03:35:42Z", - "pos_time_iso":"2025-09-16T03:35:42Z" - }, - { - "node_id":"!a0cc6904", - "short_name":"Kdû", - "long_name":"Khazad-dûm", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.5, - "battery_level":4.0, - "voltage":3.195, - "last_heard":1757992840, - "first_heard":1757819079, - "uptime_seconds":154899, - "channel_utilization":0.7366667, - "air_util_tx":0.7919166, - "position_time":1757987158, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":57.0, - "last_seen_iso":"2025-09-16T03:20:40Z", - "pos_time_iso":"2025-09-16T01:45:58Z" - }, - { - "node_id":"!ba653ae8", - "short_name":"3ae8", - "long_name":"Meshtastic 3ae8", - "hw_model":"HELTEC_V3", - "role":"ROUTER", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757992712, - "first_heard":1757795468, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757976528, - "latitude":52.6385152, - "longitude":13.631488, - "altitude":70.0, - "last_seen_iso":"2025-09-16T03:18:32Z", - "pos_time_iso":"2025-09-15T22:48:48Z" - }, - { - "node_id":"!459d6743", - "short_name":"FiCr", - "long_name":"FireCracker", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":11.25, - "battery_level":95.0, - "voltage":4.129, - "last_heard":1757992472, - "first_heard":1757766762, - "uptime_seconds":114732, - "channel_utilization":15.9366665, - "air_util_tx":0.38538888, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T03:14:32Z" - }, - { - "node_id":"!3dd7fd1e", - "short_name":"nguT", - "long_name":"ngud T", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.0, - "battery_level":100.0, - "voltage":4.193, - "last_heard":1757992035, - "first_heard":1757829747, - "uptime_seconds":6545, - "channel_utilization":3.2233336, - "air_util_tx":0.73758334, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T03:07:15Z" - }, - { - "node_id":"!1d60dd3c", - "short_name":"FFZW", - "long_name":"Freifunk-Zwingli BOT 868", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "snr":11.25, - "battery_level":98.0, - "voltage":4.164, - "last_heard":1757991741, - "first_heard":1757579680, - "uptime_seconds":29060, - "channel_utilization":5.3433332, - "air_util_tx":0.82975, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T03:02:21Z" - }, - { - "node_id":"!d224b9ee", - "short_name":"b2", - "long_name":"Bobby 👾", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "snr":-13.5, - "battery_level":101.0, - "voltage":4.153, - "last_heard":1757991724, - "first_heard":1757808116, - "uptime_seconds":204023, - "channel_utilization":1.4983333, - "air_util_tx":0.0, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T03:02:04Z" - }, - { - "node_id":"!9e17349d", - "short_name":"TPT2", - "long_name":"teapot418 Mobile 2", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":101.0, - "voltage":4.137, - "last_heard":1757991656, - "first_heard":1757842651, - "uptime_seconds":118157, - "channel_utilization":1.475, - "air_util_tx":0.0048333337, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T03:00:56Z" - }, - { - "node_id":"!abbdf3f7", - "short_name":"f3f7", - "long_name":"Smobi", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT_MUTE", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757991481, - "first_heard":1757800536, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757991481, - "latitude":52.4550144, - "longitude":13.500416, - "altitude":41.0, - "last_seen_iso":"2025-09-16T02:58:01Z", - "pos_time_iso":"2025-09-16T02:58:01Z" - }, - { - "node_id":"!3addea0f", - "short_name":"BHMS", - "long_name":"BLN Hdf Stat", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757991088, - "first_heard":1757796687, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T02:51:28Z" - }, - { - "node_id":"!a0cb1608", - "short_name":"KBV5", - "long_name":"KeinBierVor5", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":4.28, - "last_heard":1757990312, - "first_heard":1757823622, - "uptime_seconds":138304, - "channel_utilization":1.2866666, - "air_util_tx":0.78044444, - "position_time":1757980957, - "latitude":52.4976128, - "longitude":13.5102464, - "altitude":40.0, - "last_seen_iso":"2025-09-16T02:38:32Z", - "pos_time_iso":"2025-09-16T00:02:37Z" - }, - { - "node_id":"!14f7692b", - "short_name":"692b", - "long_name":"Deft0nes 692b", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":11.5, - "battery_level":87.0, - "voltage":4.037, - "last_heard":1757990232, - "first_heard":1757795817, - "uptime_seconds":202119, - "channel_utilization":6.7833333, - "air_util_tx":1.0818888, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T02:37:12Z" - }, - { - "node_id":"!e50b45d8", - "short_name":"45d8", - "long_name":"Meshtastic 45d8", - "hw_model":"T_ECHO", - "role":"CLIENT", - "snr":-14.0, - "battery_level":73.0, - "voltage":3.923, - "last_heard":1757989890, - "first_heard":1757780400, - "uptime_seconds":164253, - "channel_utilization":1.6033332, - "air_util_tx":0.2508611, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T02:31:30Z" - }, - { - "node_id":"!d2545511", - "short_name":"pix", - "long_name":"knapix", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":10.25, - "battery_level":101.0, - "voltage":4.177, - "last_heard":1757989799, - "first_heard":1757825026, - "uptime_seconds":65238, - "channel_utilization":4.6466665, - "air_util_tx":0.032055557, - "position_time":1757989799, - "latitude":52.4419072, - "longitude":13.4610944, - "altitude":67.0, - "last_seen_iso":"2025-09-16T02:29:59Z", - "pos_time_iso":"2025-09-16T02:29:59Z" - }, - { - "node_id":"!b03d89fc", - "short_name":"SEAo", - "long_name":"DMSEA Oberschöneweide", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":97.0, - "voltage":4.153, - "last_heard":1757989024, - "first_heard":1757827023, - "uptime_seconds":329641, - "channel_utilization":4.17, - "air_util_tx":0.5981111, - "position_time":1757964172, - "latitude":52.4659233, - "longitude":13.5175972, - "altitude":null, - "last_seen_iso":"2025-09-16T02:17:04Z", - "pos_time_iso":"2025-09-15T19:22:52Z" - }, - { - "node_id":"!8d36a17d", - "short_name":"TPTS", - "long_name":"teapot418 Station", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":12.0, - "battery_level":99.0, - "voltage":4.184, - "last_heard":1757988854, - "first_heard":1757778153, - "uptime_seconds":97637, - "channel_utilization":1.195, - "air_util_tx":0.5630556, - "position_time":1757988854, - "latitude":52.5565952, - "longitude":13.3726208, - "altitude":42.0, - "last_seen_iso":"2025-09-16T02:14:14Z", - "pos_time_iso":"2025-09-16T02:14:14Z" - }, - { - "node_id":"!9ee70ed0", - "short_name":"AAMB", - "long_name":"AufAckse MB", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":0.0, - "voltage":3.09, - "last_heard":1757988219, - "first_heard":1757924327, - "uptime_seconds":29115, - "channel_utilization":6.14, - "air_util_tx":0.8681667, - "position_time":1757968452, - "latitude":52.6319616, - "longitude":13.5069696, - "altitude":0.0, - "last_seen_iso":"2025-09-16T02:03:39Z", - "pos_time_iso":"2025-09-15T20:34:12Z" - }, - { - "node_id":"!849c3d08", - "short_name":"LAN2", - "long_name":"LAN2 Frag mich @llm oder via DM", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.5, - "battery_level":null, - "voltage":null, - "last_heard":1757987152, - "first_heard":1757987152, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T01:45:52Z" - }, - { - "node_id":"!9eecf808", - "short_name":"F0oz", - "long_name":"(ㆆ_ㆆ) F0oz", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757983521, - "first_heard":1757814557, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T00:45:21Z" - }, - { - "node_id":"!9c93a2df", - "short_name":"xaRa", - "long_name":"xayax RAK", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":10.75, - "battery_level":77.0, - "voltage":3.962, - "last_heard":1757983466, - "first_heard":1757799869, - "uptime_seconds":215189, - "channel_utilization":3.2316666, - "air_util_tx":0.5660833, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T00:44:26Z" - }, - { - "node_id":"!6aac99f2", - "short_name":"GW10", - "long_name":"Greifswalder 10", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":11.25, - "battery_level":97.0, - "voltage":4.149, - "last_heard":1757983226, - "first_heard":1757828430, - "uptime_seconds":5584130, - "channel_utilization":8.151667, - "air_util_tx":0.94258326, - "position_time":null, - "latitude":52.529706, - "longitude":13.426035, - "altitude":58.0, - "last_seen_iso":"2025-09-16T00:40:26Z" - }, - { - "node_id":"!a2e17674", - "short_name":"MATg", - "long_name":"DB9MAT G2", - "hw_model":"STATION_G2", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":0.0, - "last_heard":1757982809, - "first_heard":1757826009, - "uptime_seconds":4280244, - "channel_utilization":1.0916667, - "air_util_tx":0.7342778, - "position_time":1757982809, - "latitude":52.5214663, - "longitude":13.6291073, - "altitude":60.0, - "last_seen_iso":"2025-09-16T00:33:29Z", - "pos_time_iso":"2025-09-16T00:33:29Z" - }, - { - "node_id":"!a6683ea5", - "short_name":"🏞", - "long_name":"sitnchill", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.5, - "battery_level":93.0, - "voltage":4.101, - "last_heard":1757982686, - "first_heard":1757820684, - "uptime_seconds":202779, - "channel_utilization":2.4883335, - "air_util_tx":0.36124998, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T00:31:26Z" - }, - { - "node_id":"!f9b0938c", - "short_name":"Ed-1", - "long_name":"Y35RO Plänterwald ", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "snr":11.25, - "battery_level":101.0, - "voltage":4.212, - "last_heard":1757982431, - "first_heard":1757803142, - "uptime_seconds":58146, - "channel_utilization":1.3100001, - "air_util_tx":0.61825, - "position_time":null, - "latitude":52.4550144, - "longitude":13.4479872, - "altitude":36.0, - "last_seen_iso":"2025-09-16T00:27:11Z" - }, - { - "node_id":"!b03bd350", - "short_name":"d350", - "long_name":"Meshtastic d350", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":4.317, - "last_heard":1757981824, - "first_heard":1757830628, - "uptime_seconds":832947, - "channel_utilization":4.1949997, - "air_util_tx":0.87469447, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T00:17:04Z" - }, - { - "node_id":"!fe794c32", - "short_name":"4c32", - "long_name":"Meshtastic 4c32", - "hw_model":"HELTEC_MESH_POCKET", - "role":"CLIENT", - "snr":10.75, - "battery_level":59.0, - "voltage":3.721, - "last_heard":1757981588, - "first_heard":1757830385, - "uptime_seconds":410078, - "channel_utilization":2.5049999, - "air_util_tx":0.40355557, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-16T00:13:08Z" - }, - { - "node_id":"!f1f67380", - "short_name":"ULLL", - "long_name":"ULLL", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.0, - "battery_level":91.0, - "voltage":4.072, - "last_heard":1757981349, - "first_heard":1757808552, - "uptime_seconds":1578588, - "channel_utilization":12.368334, - "air_util_tx":0.55258334, - "position_time":null, - "latitude":52.5156352, - "longitude":13.3251072, - "altitude":null, - "last_seen_iso":"2025-09-16T00:09:09Z" - }, - { - "node_id":"!da627d58", - "short_name":"DEF1", - "long_name":"Defcom1", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757979939, - "first_heard":1757829932, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757972506, - "latitude":52.5262848, - "longitude":13.3275648, - "altitude":34.0, - "last_seen_iso":"2025-09-15T23:45:39Z", - "pos_time_iso":"2025-09-15T21:41:46Z" - }, - { - "node_id":"!c0c30b10", - "short_name":"WIES", - "long_name":"7LA 0b10", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":-0.001, - "last_heard":1757979778, - "first_heard":1757979778, - "uptime_seconds":58896, - "channel_utilization":0.0, - "air_util_tx":0.71275, - "position_time":null, - "latitude":52.4550144, - "longitude":13.3431296, - "altitude":59.0, - "last_seen_iso":"2025-09-15T23:42:58Z" - }, - { - "node_id":"!b6428bf9", - "short_name":"WB", - "long_name":"W-Base", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":10.5, - "battery_level":73.0, - "voltage":3.921, - "last_heard":1757979520, - "first_heard":1757809702, - "uptime_seconds":60983, - "channel_utilization":6.5733337, - "air_util_tx":0.88427776, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T23:38:40Z" - }, - { - "node_id":"!45a351b8", - "short_name":"DLS", - "long_name":"NDB Luebars 📡 Replacement", - "hw_model":"HELTEC_VISION_MASTER_T190", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757975133, - "first_heard":1757809531, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":52.6139, - "longitude":13.3636, - "altitude":70.0, - "last_seen_iso":"2025-09-15T22:25:33Z" - }, - { - "node_id":"!849b8194", - "short_name":"ip83", - "long_name":"ijp83", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":-13.25, - "battery_level":45.0, - "voltage":3.683, - "last_heard":1757975065, - "first_heard":1757932193, - "uptime_seconds":47947, - "channel_utilization":7.023333, - "air_util_tx":0.0044444446, - "position_time":null, - "latitude":52.5074432, - "longitude":13.3431296, - "altitude":70.0, - "last_seen_iso":"2025-09-15T22:24:25Z" - }, - { - "node_id":"!d42e18e8", - "short_name":"RRun", - "long_name":"Road-Runner", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.5, - "battery_level":101.0, - "voltage":4.165, - "last_heard":1757975060, - "first_heard":1757831063, - "uptime_seconds":424452, - "channel_utilization":0.0, - "air_util_tx":0.8189722, - "position_time":1757946202, - "latitude":52.604928, - "longitude":13.3341184, - "altitude":69.0, - "last_seen_iso":"2025-09-15T22:24:20Z", - "pos_time_iso":"2025-09-15T14:23:22Z" - }, - { - "node_id":"!db898113", - "short_name":"8113", - "long_name":"xberg solar 8113", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757974079, - "first_heard":1757951837, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757974079, - "latitude":52.5074432, - "longitude":13.3955584, - "altitude":49.0, - "last_seen_iso":"2025-09-15T22:07:59Z", - "pos_time_iso":"2025-09-15T22:07:59Z" - }, - { - "node_id":"!9ee70320", - "short_name":"NS-N", - "long_name":"Klub Łączności ODRA baza \"N\"📡", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-14.0, - "battery_level":null, - "voltage":null, - "last_heard":1757974062, - "first_heard":1757974062, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T22:07:42Z" - }, - { - "node_id":"!e00cea30", - "short_name":"NHR1", - "long_name":"NHGR1_ea30", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.25, - "battery_level":101.0, - "voltage":4.275, - "last_heard":1757971839, - "first_heard":1757774673, - "uptime_seconds":1199785, - "channel_utilization":4.4483333, - "air_util_tx":0.7357222, - "position_time":1757971839, - "latitude":52.5074432, - "longitude":13.6577024, - "altitude":64.0, - "last_seen_iso":"2025-09-15T21:30:39Z", - "pos_time_iso":"2025-09-15T21:30:39Z" - }, - { - "node_id":"!90520695", - "short_name":"FuLo", - "long_name":"Funklochfüller", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757971200, - "first_heard":1757835032, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757971200, - "latitude":52.4550144, - "longitude":13.500416, - "altitude":37.0, - "last_seen_iso":"2025-09-15T21:20:00Z", - "pos_time_iso":"2025-09-15T21:20:00Z" - }, - { - "node_id":"!88071b58", - "short_name":"FlxS", - "long_name":"Flux/S", - "hw_model":"RAK4631", - "role":"CLIENT_MUTE", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757969892, - "first_heard":1757786586, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T20:58:12Z" - }, - { - "node_id":"!3269942c", - "short_name":"LLL", - "long_name":"Live Laugh Love", - "hw_model":"HELTEC_MESH_POCKET", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":89.0, - "voltage":4.051, - "last_heard":1757969171, - "first_heard":1757828787, - "uptime_seconds":1413885, - "channel_utilization":2.4150002, - "air_util_tx":0.0, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T20:46:11Z" - }, - { - "node_id":"!bb8a1ac6", - "short_name":"EDUP", - "long_name":"7EDU_Portable", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":10.0, - "battery_level":null, - "voltage":null, - "last_heard":1757967029, - "first_heard":1757871014, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757967029, - "latitude":52.4970876, - "longitude":13.4645596, - "altitude":40.0, - "last_seen_iso":"2025-09-15T20:10:29Z", - "pos_time_iso":"2025-09-15T20:10:29Z" - }, - { - "node_id":"!849b7154", - "short_name":"7154", - "long_name":"Meshtastic 7154", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":-14.5, - "battery_level":39.0, - "voltage":3.623, - "last_heard":1757967022, - "first_heard":1757915428, - "uptime_seconds":64985, - "channel_utilization":7.1850004, - "air_util_tx":0.00825, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T20:10:22Z" - }, - { - "node_id":"!bb9f80ca", - "short_name":"b1", - "long_name":"Bobby 🔌", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.75, - "battery_level":101.0, - "voltage":4.107, - "last_heard":1757966180, - "first_heard":1757825782, - "uptime_seconds":724212, - "channel_utilization":6.181667, - "air_util_tx":0.79294443, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T19:56:20Z" - }, - { - "node_id":"!da9d5a98", - "short_name":"5a98", - "long_name":"xberg 5a98", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757964900, - "first_heard":1757961563, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T19:35:00Z" - }, - { - "node_id":"!433ecff8", - "short_name":"44er", - "long_name":"DO7DSL stat.", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":101.0, - "voltage":4.285, - "last_heard":1757964614, - "first_heard":1757824216, - "uptime_seconds":739020, - "channel_utilization":1.6650001, - "air_util_tx":0.4716389, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T19:30:14Z" - }, - { - "node_id":"!43561304", - "short_name":"NBS", - "long_name":"NBS14 Base Station", - "hw_model":"HELTEC_WIRELESS_PAPER", - "role":"CLIENT", - "snr":11.5, - "battery_level":null, - "voltage":null, - "last_heard":1757964526, - "first_heard":1757820798, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T19:28:46Z" - }, - { - "node_id":"!9eecf3c0", - "short_name":"WT", - "long_name":"WalkieTextie", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":4.266, - "last_heard":1757964501, - "first_heard":1757808022, - "uptime_seconds":120864, - "channel_utilization":0.0, - "air_util_tx":0.03461111, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T19:28:21Z" - }, - { - "node_id":"!b03ca90c", - "short_name":"tnvr", - "long_name":"Tarnover", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":91.0, - "voltage":4.077, - "last_heard":1757964497, - "first_heard":1757813299, - "uptime_seconds":1262032, - "channel_utilization":1.5583334, - "air_util_tx":0.0, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T19:28:17Z" - }, - { - "node_id":"!6c73bf84", - "short_name":"ts1", - "long_name":"Tegeler See Node 1", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":2.75, - "battery_level":100.0, - "voltage":4.179, - "last_heard":1757964116, - "first_heard":1757824664, - "uptime_seconds":30670, - "channel_utilization":6.3450003, - "air_util_tx":0.28575, - "position_time":null, - "latitude":52.559872, - "longitude":13.2907008, - "altitude":35.0, - "last_seen_iso":"2025-09-15T19:21:56Z" - }, - { - "node_id":"!6cf821fb", - "short_name":"OKP1", - "long_name":"Okapi 1 (he) mobil", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT", - "snr":10.75, - "battery_level":85.0, - "voltage":4.051, - "last_heard":1757963585, - "first_heard":1757959167, - "uptime_seconds":66, - "channel_utilization":5.4233336, - "air_util_tx":0.03694444, - "position_time":1757962779, - "latitude":52.5074432, - "longitude":13.4479872, - "altitude":51.0, - "last_seen_iso":"2025-09-15T19:13:05Z", - "pos_time_iso":"2025-09-15T18:59:39Z" - }, - { - "node_id":"!7f7d7914", - "short_name":"hau2", - "long_name":"Hauke 2", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757963065, - "first_heard":1757963065, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T19:04:25Z" - }, - { - "node_id":"!7c5b0920", - "short_name":"FFTB", - "long_name":"Freifunk-Teufelsberg BOT 868", - "hw_model":"HELTEC_V3", - "role":"ROUTER", - "snr":11.5, - "battery_level":97.0, - "voltage":4.149, - "last_heard":1757959423, - "first_heard":1757828009, - "uptime_seconds":43287, - "channel_utilization":0.58, - "air_util_tx":1.0519166, - "position_time":1757946866, - "latitude":52.49795, - "longitude":13.24061, - "altitude":160.0, - "last_seen_iso":"2025-09-15T18:03:43Z", - "pos_time_iso":"2025-09-15T14:34:26Z" - }, - { - "node_id":"!7a6d877c", - "short_name":"877c", - "long_name":"【ツ】 877c", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":11.75, - "battery_level":null, - "voltage":null, - "last_heard":1757959338, - "first_heard":1757858681, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T18:02:18Z" - }, - { - "node_id":"!03b9ca11", - "short_name":"ca11", - "long_name":"Meshtastic ca11", - "hw_model":"UNSET", - "role":"CLIENT", - "snr":10.75, - "battery_level":57.0, - "voltage":3.869, - "last_heard":1757957659, - "first_heard":1757957659, - "uptime_seconds":26711, - "channel_utilization":2.3766665, - "air_util_tx":0.1098889, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T17:34:19Z" - }, - { - "node_id":"!43b6f328", - "short_name":"775", - "long_name":"BF775 ", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.5, - "battery_level":null, - "voltage":null, - "last_heard":1757954810, - "first_heard":1757774419, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T16:46:50Z" - }, - { - "node_id":"!28978f94", - "short_name":"8f94", - "long_name":"Landsberger K", - "hw_model":"TBEAM", - "role":"CLIENT_MUTE", - "snr":11.5, - "battery_level":2.0, - "voltage":3.099, - "last_heard":1757953198, - "first_heard":1757939754, - "uptime_seconds":13504, - "channel_utilization":8.165, - "air_util_tx":0.051833335, - "position_time":1757953102, - "latitude":52.559872, - "longitude":13.500416, - "altitude":115.0, - "last_seen_iso":"2025-09-15T16:19:58Z", - "pos_time_iso":"2025-09-15T16:18:22Z" - }, - { - "node_id":"!9d3dba8a", - "short_name":"FLV2", - "long_name":"Fluvius 2", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":-13.5, - "battery_level":null, - "voltage":null, - "last_heard":1757950866, - "first_heard":1757820166, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T15:41:06Z" - }, - { - "node_id":"!a3deea53", - "short_name":"🐸", - "long_name":"green", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":10.0, - "battery_level":null, - "voltage":null, - "last_heard":1757949419, - "first_heard":1757920065, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T15:16:59Z" - }, - { - "node_id":"!aafba2a5", - "short_name":"syn1", - "long_name":"I'm syncing ", - "hw_model":"T_ECHO", - "role":"CLIENT", - "snr":10.0, - "battery_level":null, - "voltage":null, - "last_heard":1757949399, - "first_heard":1757849097, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T15:16:39Z" - }, - { - "node_id":"!9eeb25ec", - "short_name":"25ec", - "long_name":"Meshtastic 25ec", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.0, - "battery_level":null, - "voltage":null, - "last_heard":1757949314, - "first_heard":1757949314, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T15:15:14Z" - }, - { - "node_id":"!2f945044", - "short_name":"BND", - "long_name":"Briansnachrichtendienst", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "snr":-12.25, - "battery_level":96.0, - "voltage":4.14, - "last_heard":1757948827, - "first_heard":1757787385, - "uptime_seconds":61, - "channel_utilization":6.011667, - "air_util_tx":0.0335, - "position_time":1757947583, - "latitude":52.4435456, - "longitude":13.3906432, - "altitude":50.0, - "last_seen_iso":"2025-09-15T15:07:07Z", - "pos_time_iso":"2025-09-15T14:46:23Z" - }, - { - "node_id":"!5d823fb1", - "short_name":"3fb1", - "long_name":"SoswB", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":-14.0, - "battery_level":null, - "voltage":null, - "last_heard":1757945442, - "first_heard":1757774595, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T14:10:42Z" - }, - { - "node_id":"!c5abeec2", - "short_name":"ICEM", - "long_name":"ICE Mobile", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT", - "snr":10.5, - "battery_level":84.0, - "voltage":4.047, - "last_heard":1757944855, - "first_heard":1757928259, - "uptime_seconds":22332, - "channel_utilization":6.893333, - "air_util_tx":0.7370833, - "position_time":1757944853, - "latitude":52.4156928, - "longitude":13.5135232, - "altitude":35.0, - "last_seen_iso":"2025-09-15T14:00:55Z", - "pos_time_iso":"2025-09-15T14:00:53Z" - }, - { - "node_id":"!0910c922", - "short_name":"c922", - "long_name":"Meshtastic c922", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":11.25, - "battery_level":60.0, - "voltage":3.807, - "last_heard":1757941729, - "first_heard":1757830191, - "uptime_seconds":31630, - "channel_utilization":9.351667, - "air_util_tx":1.0132778, - "position_time":1757928193, - "latitude":52.559872, - "longitude":13.6577024, - "altitude":null, - "last_seen_iso":"2025-09-15T13:08:49Z", - "pos_time_iso":"2025-09-15T09:23:13Z" - }, - { - "node_id":"!28978dd4", - "short_name":"Gelb", - "long_name":"Gelb innen", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":10.5, - "battery_level":null, - "voltage":null, - "last_heard":1757941652, - "first_heard":1757770565, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T13:07:32Z" - }, - { - "node_id":"!1551a9dc", - "short_name":"PELA", - "long_name":"PELA a9dc", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757939305, - "first_heard":1757913601, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757939302, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":31.0, - "last_seen_iso":"2025-09-15T12:28:25Z", - "pos_time_iso":"2025-09-15T12:28:22Z" - }, - { - "node_id":"!c0c309ec", - "short_name":"NJM1", - "long_name":"NHGJM1_09ec", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757939019, - "first_heard":1757820219, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T12:23:39Z" - }, - { - "node_id":"!64e2ecc2", - "short_name":"d0m", - "long_name":"d0m", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757936716, - "first_heard":1757831284, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T11:45:16Z" - }, - { - "node_id":"!9ee71c38", - "short_name":"1c38", - "long_name":"Varus1c38", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.5, - "battery_level":null, - "voltage":null, - "last_heard":1757934899, - "first_heard":1757784888, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T11:14:59Z" - }, - { - "node_id":"!da73ea58", - "short_name":"🏡", - "long_name":"dmho-ho", - "hw_model":"SEEED_XIAO_S3", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757934581, - "first_heard":1757882020, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T11:09:41Z" - }, - { - "node_id":"!9ea1bea4", - "short_name":"zwgl", - "long_name":"Zwanglos Boddin", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":101.0, - "voltage":4.29, - "last_heard":1757924831, - "first_heard":1757838418, - "uptime_seconds":1194263, - "channel_utilization":0.29, - "air_util_tx":0.0, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T08:27:11Z" - }, - { - "node_id":"!6c6964f4", - "short_name":"BXU9", - "long_name":"The Unknown Station #9", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":0.0, - "last_heard":1757922959, - "first_heard":1757892003, - "uptime_seconds":2223, - "channel_utilization":0.6433333, - "air_util_tx":0.09477778, - "position_time":1757922346, - "latitude":52.3829248, - "longitude":13.6511488, - "altitude":76.0, - "last_seen_iso":"2025-09-15T07:55:59Z", - "pos_time_iso":"2025-09-15T07:45:46Z" - }, - { - "node_id":"!9eecf544", - "short_name":"f544", - "long_name":"Meshtastic f544", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.0, - "battery_level":101.0, - "voltage":4.27, - "last_heard":1757920953, - "first_heard":1757775822, - "uptime_seconds":41210, - "channel_utilization":0.0, - "air_util_tx":0.35269445, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T07:22:33Z" - }, - { - "node_id":"!01bb88db", - "short_name":"GSBM", - "long_name":"Gedenkstätte Berliner Mauer", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":8.0, - "battery_level":null, - "voltage":null, - "last_heard":1757918174, - "first_heard":1757820966, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-15T06:36:14Z" - }, - { - "node_id":"!2b1f7a6f", - "short_name":"kerc", - "long_name":"kermit-cap", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":10.75, - "battery_level":101.0, - "voltage":4.188, - "last_heard":1757912588, - "first_heard":1757821520, - "uptime_seconds":203658, - "channel_utilization":0.0, - "air_util_tx":0.015694445, - "position_time":1757912567, - "latitude":52.5008896, - "longitude":13.4283264, - "altitude":26.0, - "last_seen_iso":"2025-09-15T05:03:08Z", - "pos_time_iso":"2025-09-15T05:02:47Z" - }, - { - "node_id":"!433b36c4", - "short_name":"36c4", - "long_name":"Meshtastic 36c4", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":101.0, - "voltage":4.22, - "last_heard":1757890305, - "first_heard":1757826915, - "uptime_seconds":61, - "channel_utilization":2.02, - "air_util_tx":0.013027778, - "position_time":1757890305, - "latitude":52.4550144, - "longitude":13.3955584, - "altitude":51.0, - "last_seen_iso":"2025-09-14T22:51:45Z", - "pos_time_iso":"2025-09-14T22:51:45Z" - }, - { - "node_id":"!433ef3e8", - "short_name":"F&F1", - "long_name":"F&F Node 1", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757889266, - "first_heard":1757889266, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T22:34:26Z" - }, - { - "node_id":"!2d070d01", - "short_name":"0d01", - "long_name":"Pankow-0d01", - "hw_model":"RAK4631", - "role":"ROUTER", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757887925, - "first_heard":1757769107, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T22:12:05Z" - }, - { - "node_id":"!9ea12df0", - "short_name":"Ed-2", - "long_name":"Plänti-2", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757886951, - "first_heard":1757798479, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T21:55:51Z" - }, - { - "node_id":"!dc7494c4", - "short_name":"narc", - "long_name":"free2air narcissus", - "hw_model":"T_ECHO", - "role":"CLIENT", - "snr":11.0, - "battery_level":101.0, - "voltage":4.885, - "last_heard":1757886215, - "first_heard":1757802406, - "uptime_seconds":120272, - "channel_utilization":1.08, - "air_util_tx":0.40763888, - "position_time":1757886215, - "latitude":52.5074432, - "longitude":13.3955584, - "altitude":98.0, - "last_seen_iso":"2025-09-14T21:43:35Z", - "pos_time_iso":"2025-09-14T21:43:35Z" - }, - { - "node_id":"!435b0714", - "short_name":"GR", - "long_name":"GolfRomeo", - "hw_model":"LILYGO_TBEAM_S3_CORE", - "role":"CLIENT", - "snr":11.75, - "battery_level":null, - "voltage":null, - "last_heard":1757880681, - "first_heard":1757796511, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757880661, - "latitude":52.5074432, - "longitude":13.3955584, - "altitude":6.0, - "last_seen_iso":"2025-09-14T20:11:21Z", - "pos_time_iso":"2025-09-14T20:11:01Z" - }, - { - "node_id":"!fa6a3d6c", - "short_name":"Kn1S", - "long_name":"Kein1Stein_3d6c", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757877889, - "first_heard":1757778421, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757877868, - "latitude":52.4645919, - "longitude":13.323267, - "altitude":20.0, - "last_seen_iso":"2025-09-14T19:24:49Z", - "pos_time_iso":"2025-09-14T19:24:28Z" - }, - { - "node_id":"!f6b3f9bf", - "short_name":"f9bf", - "long_name":"Meshtastic f9bf", - "hw_model":"UNSET", - "role":"CLIENT", - "snr":10.0, - "battery_level":92.0, - "voltage":4.084, - "last_heard":1757873438, - "first_heard":1757802296, - "uptime_seconds":587624, - "channel_utilization":0.0, - "air_util_tx":0.5816389, - "position_time":1757873438, - "latitude":52.5074432, - "longitude":13.3431296, - "altitude":10.0, - "last_seen_iso":"2025-09-14T18:10:38Z", - "pos_time_iso":"2025-09-14T18:10:38Z" - }, - { - "node_id":"!78299711", - "short_name":"EDUT", - "long_name":"7EDU_Tracker", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":10.0, - "battery_level":null, - "voltage":null, - "last_heard":1757872010, - "first_heard":1757872010, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T17:46:50Z" - }, - { - "node_id":"!7a6bf888", - "short_name":"g0r", - "long_name":"g0r", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757866046, - "first_heard":1757866046, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T16:07:26Z" - }, - { - "node_id":"!2fbb1f99", - "short_name":"TWR5", - "long_name":"TWR5-Node", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":-12.0, - "battery_level":96.0, - "voltage":4.135, - "last_heard":1757863942, - "first_heard":1757831000, - "uptime_seconds":461385, - "channel_utilization":9.408333, - "air_util_tx":0.37438887, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T15:32:22Z" - }, - { - "node_id":"!b03c9678", - "short_name":"9678", - "long_name":"Meshtastic 9678", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.5, - "battery_level":null, - "voltage":null, - "last_heard":1757862351, - "first_heard":1757862351, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T15:05:51Z" - }, - { - "node_id":"!43b7c694", - "short_name":"FFVH", - "long_name":"Freifunk-Vaterhaus 868", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-9.5, - "battery_level":101.0, - "voltage":-0.001, - "last_heard":1757860460, - "first_heard":1757596854, - "uptime_seconds":91324, - "channel_utilization":19.016666, - "air_util_tx":4.991889, - "position_time":1757860460, - "latitude":52.4649417, - "longitude":13.4852833, - "altitude":null, - "last_seen_iso":"2025-09-14T14:34:20Z", - "pos_time_iso":"2025-09-14T14:34:20Z" - }, - { - "node_id":"!2448d855", - "short_name":"D7DS", - "long_name":"DO7DSL port.", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":11.0, - "battery_level":58.0, - "voltage":3.785, - "last_heard":1757860140, - "first_heard":1757827324, - "uptime_seconds":96555, - "channel_utilization":3.425, - "air_util_tx":0.42688888, - "position_time":1757860140, - "latitude":52.4713984, - "longitude":13.4709248, - "altitude":37.0, - "last_seen_iso":"2025-09-14T14:29:00Z", - "pos_time_iso":"2025-09-14T14:29:00Z" - }, - { - "node_id":"!6d022fe7", - "short_name":"ACAB", - "long_name":"Køpi Bleibt!!", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":-13.5, - "battery_level":null, - "voltage":null, - "last_heard":1757859810, - "first_heard":1757859810, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T14:23:30Z" - }, - { - "node_id":"!abf83f48", - "short_name":"3f48", - "long_name":"xberg mqtt B<->HH 3f48", - "hw_model":"TBEAM", - "role":"CLIENT", - "snr":10.5, - "battery_level":100.0, - "voltage":4.159, - "last_heard":1757848344, - "first_heard":1757842531, - "uptime_seconds":394662, - "channel_utilization":1.1066667, - "air_util_tx":0.35994443, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T11:12:24Z" - }, - { - "node_id":"!bfbdc5ca", - "short_name":"c5ca", - "long_name":"gordon-shumway", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757846433, - "first_heard":1757846433, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T10:40:33Z" - }, - { - "node_id":"!ba6a8d40", - "short_name":"8d40", - "long_name":"Meshtastic 8d40", - "hw_model":"UNSET", - "role":"CLIENT", - "snr":10.5, - "battery_level":101.0, - "voltage":4.264, - "last_heard":1757841940, - "first_heard":1757841940, - "uptime_seconds":15602, - "channel_utilization":6.1633334, - "air_util_tx":1.1865834, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T09:25:40Z" - }, - { - "node_id":"!a2ed9ab0", - "short_name":"NFN1", - "long_name":"NFN-134#18-01 / notfunknetzwerk.de", - "hw_model":"STATION_G2", - "role":"CLIENT", - "snr":11.25, - "battery_level":101.0, - "voltage":0.0, - "last_heard":1757835205, - "first_heard":1757773995, - "uptime_seconds":223751, - "channel_utilization":6.5866666, - "air_util_tx":0.65761113, - "position_time":1757834618, - "latitude":52.5635584, - "longitude":13.3771264, - "altitude":82.0, - "last_seen_iso":"2025-09-14T07:33:25Z", - "pos_time_iso":"2025-09-14T07:23:38Z" - }, - { - "node_id":"!b03d9170", - "short_name":"9170", - "long_name":"Meshtastic 9170", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":11.0, - "battery_level":68.0, - "voltage":3.872, - "last_heard":1757830324, - "first_heard":1757830324, - "uptime_seconds":23462, - "channel_utilization":5.65, - "air_util_tx":0.76186115, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-14T06:12:04Z" - }, - { - "node_id":"!ba0cae50", - "short_name":"NJMA", - "long_name":"NHGJMA_ae50", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-10.0, - "battery_level":54.0, - "voltage":3.758, - "last_heard":1757816213, - "first_heard":1757816213, - "uptime_seconds":61, - "channel_utilization":2.675, - "air_util_tx":0.018166667, - "position_time":1757815898, - "latitude":52.5074432, - "longitude":13.6577024, - "altitude":72.0, - "last_seen_iso":"2025-09-14T02:16:53Z", - "pos_time_iso":"2025-09-14T02:11:38Z" - }, - { - "node_id":"!1bf8ed79", - "short_name":"MxMG", - "long_name":"Max Mobil Grau", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT_MUTE", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757815963, - "first_heard":1757815963, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757791826, - "latitude":52.477952, - "longitude":13.320192, - "altitude":41.0, - "last_seen_iso":"2025-09-14T02:12:43Z", - "pos_time_iso":"2025-09-13T19:30:26Z" - }, - { - "node_id":"!9ee71b3c", - "short_name":"🐸", - "long_name":"spuck", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-10.5, - "battery_level":18.0, - "voltage":3.406, - "last_heard":1757815862, - "first_heard":1757815862, - "uptime_seconds":99670, - "channel_utilization":5.3599997, - "air_util_tx":0.92630553, - "position_time":null, - "latitude":52.5074432, - "longitude":13.500416, - "altitude":49.0, - "last_seen_iso":"2025-09-14T02:11:02Z" - }, - { - "node_id":"!9ea1af60", - "short_name":"stph", - "long_name":"Stephie", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":-9.75, - "battery_level":null, - "voltage":null, - "last_heard":1757814507, - "first_heard":1757814507, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757814953, - "latitude":52.5041664, - "longitude":13.451264, - "altitude":36.0, - "last_seen_iso":"2025-09-14T01:48:27Z", - "pos_time_iso":"2025-09-14T01:55:53Z" - }, - { - "node_id":"!c8b928d6", - "short_name":"BPS", - "long_name":"BlackPress", - "hw_model":"RAK4631", - "role":"CLIENT", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757804907, - "first_heard":1757804907, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-13T23:08:27Z" - }, - { - "node_id":"!f9b262d4", - "short_name":"FPUD", - "long_name":"DD6UAT Vogelsdorf", - "hw_model":"TLORA_V2_1_1P6", - "role":"CLIENT", - "snr":11.25, - "battery_level":101.0, - "voltage":4.397, - "last_heard":1757796130, - "first_heard":1757796130, - "uptime_seconds":60, - "channel_utilization":2.5533333, - "air_util_tx":0.021277778, - "position_time":1757796133, - "latitude":52.5074432, - "longitude":13.76256, - "altitude":0.0, - "last_seen_iso":"2025-09-13T20:42:10Z", - "pos_time_iso":"2025-09-13T20:42:13Z" - }, - { - "node_id":"!2f91531c", - "short_name":"ijon", - "long_name":"mobile.ijon.tychie", - "hw_model":"T_DECK_PRO", - "role":"CLIENT", - "snr":11.0, - "battery_level":null, - "voltage":null, - "last_heard":1757786605, - "first_heard":1757786605, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-13T18:03:25Z" - }, - { - "node_id":"!433af570", - "short_name":"LB", - "long_name":"LAN Backpack", - "hw_model":"HELTEC_V3", - "role":"CLIENT_MUTE", - "snr":10.75, - "battery_level":101.0, - "voltage":4.226, - "last_heard":1757783077, - "first_heard":1757783077, - "uptime_seconds":61, - "channel_utilization":1.55, - "air_util_tx":0.007972223, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-13T17:04:37Z" - }, - { - "node_id":"!99bc90a8", - "short_name":"d**b", - "long_name":"d**b Deck", - "hw_model":"T_DECK", - "role":"CLIENT_MUTE", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757781032, - "first_heard":1757781032, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-13T16:30:32Z" - }, - { - "node_id":"!5b835c1c", - "short_name":"APRL", - "long_name":"AprilAllTheTime ", - "hw_model":"HELTEC_MESH_NODE_T114", - "role":"CLIENT", - "snr":10.75, - "battery_level":null, - "voltage":null, - "last_heard":1757776492, - "first_heard":1757776492, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757777355, - "latitude":52.5074432, - "longitude":13.3431296, - "altitude":36.0, - "last_seen_iso":"2025-09-13T15:14:52Z", - "pos_time_iso":"2025-09-13T15:29:15Z" - }, - { - "node_id":"!f840cb2d", - "short_name":"cb2d", - "long_name":"Meshtastic cb2d", - "hw_model":"UNSET", - "role":"CLIENT", - "snr":11.25, - "battery_level":null, - "voltage":null, - "last_heard":1757767695, - "first_heard":1757767695, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757767678, - "latitude":52.5074432, - "longitude":13.3955584, - "altitude":-6.0, - "last_seen_iso":"2025-09-13T12:48:15Z", - "pos_time_iso":"2025-09-13T12:47:58Z" - }, - { - "node_id":"!336019dc", - "short_name":"🥚", - "long_name":"Meshtastic 19dc", - "hw_model":"LILYGO_TBEAM_S3_CORE", - "role":"CLIENT", - "snr":10.25, - "battery_level":101.0, - "voltage":4.164, - "last_heard":1757767317, - "first_heard":1757767317, - "uptime_seconds":22630, - "channel_utilization":1.86, - "air_util_tx":0.74213886, - "position_time":1757796407, - "latitude":52.4896667, - "longitude":13.3502437, - "altitude":38.0, - "last_seen_iso":"2025-09-13T12:41:57Z", - "pos_time_iso":"2025-09-13T20:46:47Z" - }, - { - "node_id":"!17f58f25", - "short_name":"imja", - "long_name":"imja", - "hw_model":"TRACKER_T1000_E", - "role":"TRACKER", - "snr":10.25, - "battery_level":34.0, - "voltage":3.794, - "last_heard":1757766359, - "first_heard":1757766359, - "uptime_seconds":25255, - "channel_utilization":2.9433334, - "air_util_tx":1.000861, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-13T12:25:59Z" - }, - { - "node_id":"!b5954cf7", - "short_name":"jofi", - "long_name":"jofi 4cf7", - "hw_model":"TRACKER_T1000_E", - "role":"CLIENT", - "snr":-11.75, - "battery_level":null, - "voltage":null, - "last_heard":1757765297, - "first_heard":1757765297, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":1757765291, - "latitude":52.5074432, - "longitude":13.2907008, - "altitude":34.0, - "last_seen_iso":"2025-09-13T12:08:17Z", - "pos_time_iso":"2025-09-13T12:08:11Z" - }, - { - "node_id":"!ee59338a", - "short_name":"pizi", - "long_name":"Pitztaler Straße Panketal", - "hw_model":"SEEED_SOLAR_NODE", - "role":"CLIENT", - "snr":-1.25, - "battery_level":null, - "voltage":null, - "last_heard":1757765246, - "first_heard":1757765246, - "uptime_seconds":null, - "channel_utilization":null, - "air_util_tx":null, - "position_time":null, - "latitude":null, - "longitude":null, - "altitude":null, - "last_seen_iso":"2025-09-13T12:07:26Z" - }, - { - "node_id":"!db2b4f3c", - "short_name":"rboM", - "long_name":"rbo-mobile", - "hw_model":"HELTEC_V3", - "role":"CLIENT", - "snr":10.75, - "battery_level":99.0, - "voltage":4.178, - "last_heard":1757759115, - "first_heard":1757759115, - "uptime_seconds":45209, - "channel_utilization":1.1933333, - "air_util_tx":0.6788611, - "position_time":1757743846, - "latitude":52.5672448, - "longitude":13.5241728, - "altitude":76.0, - "last_seen_iso":"2025-09-13T10:25:15Z", - "pos_time_iso":"2025-09-13T06:10:46Z" - } -] diff --git a/test/debug.py b/tests/debug.py similarity index 100% rename from test/debug.py rename to tests/debug.py diff --git a/tests/mesh.db b/tests/mesh.db new file mode 100644 index 0000000000000000000000000000000000000000..cfd64761ad2612b790acc8862f8e4b764fff46a8 GIT binary patch literal 102400 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�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 H@&^7FR+Lvg literal 0 HcmV?d00001 diff --git a/tests/messages.json b/tests/messages.json new file mode 100644 index 0000000..98d2c01 --- /dev/null +++ b/tests/messages.json @@ -0,0 +1,4002 @@ +[ + { + "id": 3105865265, + "rx_time": 1758021531, + "rx_iso": "2025-09-16T11:18:51Z", + "from_id": "!bba83318", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Mahlzeit ", + "rssi": -121, + "hop_limit": 1, + "snr": -13.25, + "node": { + "snr": -13.25, + "raw_json": null, + "node_id": "!bba83318", + "num": 3148362520, + "short_name": "BerF", + "long_name": "Bernau-Friedenstal", + "macaddr": "LLy7qDMY", + "hw_model": "TBEAM", + "role": "CLIENT", + "public_key": "GfyQJ3jYKh+l0Li4w+8PzpA4i/vls1nrdCkcwVj2ICM=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758022862, + "first_heard": 1757825270, + "battery_level": 101.0, + "voltage": -0.001, + "channel_utilization": 7.01, + "air_util_tx": 0.030944444, + "uptime_seconds": 61, + "position_time": 1758022862, + "location_source": "LOC_INTERNAL", + "latitude": 52.6712832, + "longitude": 13.5593984, + "altitude": 50.0 + } + }, + { + "id": 1787405016, + "rx_time": 1758020618, + "rx_iso": "2025-09-16T11:03:38Z", + "from_id": "!43b6e530", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "@RRun 🏓PONG\n1 hops", + "rssi": -117, + "hop_limit": 3, + "snr": -12.0, + "node": { + "snr": -12.0, + "raw_json": null, + "node_id": "!43b6e530", + "num": 1136059696, + "short_name": "FFSR", + "long_name": "Freifunk-Scherer BOT 868", + "macaddr": "SMpDtuUw", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "VbueTxbv8SjGmcLLrlt9/um15QDvis/HpIHiV2flyiI=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758022410, + "first_heard": 1757832883, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758022410, + "location_source": "LOC_MANUAL", + "latitude": 52.5481294, + "longitude": 13.3669095, + "altitude": 0.0 + } + }, + { + "id": 785587518, + "rx_time": 1758020613, + "rx_iso": "2025-09-16T11:03:33Z", + "from_id": "!d42e18e8", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Ping", + "rssi": -116, + "hop_limit": 5, + "snr": -13.5, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!d42e18e8", + "num": 3559790824, + "short_name": "RRun", + "long_name": "Road-Runner", + "macaddr": "xrjULhjo", + "hw_model": "RAK4631", + "role": "CLIENT", + "public_key": "iL0CyO7cx9qTVyXpQ/f6dCBiW3vwqa+qMrQSZS7I8QM=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 5, + "last_heard": 1758021865, + "first_heard": 1757831063, + "battery_level": 94.0, + "voltage": 4.106, + "channel_utilization": 5.725, + "air_util_tx": 0.9239167, + "uptime_seconds": 452482, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 785587517, + "rx_time": 1758020588, + "rx_iso": "2025-09-16T11:03:08Z", + "from_id": "!d42e18e8", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hallo Meshland ...Mahlzeit !", + "rssi": -117, + "hop_limit": 4, + "snr": -13.0, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!d42e18e8", + "num": 3559790824, + "short_name": "RRun", + "long_name": "Road-Runner", + "macaddr": "xrjULhjo", + "hw_model": "RAK4631", + "role": "CLIENT", + "public_key": "iL0CyO7cx9qTVyXpQ/f6dCBiW3vwqa+qMrQSZS7I8QM=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 5, + "last_heard": 1758021865, + "first_heard": 1757831063, + "battery_level": 94.0, + "voltage": 4.106, + "channel_utilization": 5.725, + "air_util_tx": 0.9239167, + "uptime_seconds": 452482, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 3818864534, + "rx_time": 1758019647, + "rx_iso": "2025-09-16T10:47:27Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Willkommen zum Mesh, Okapi & Random", + "rssi": -12, + "hop_limit": 7, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 221661412, + "rx_time": 1758018231, + "rx_iso": "2025-09-16T10:23:51Z", + "from_id": "1322478544", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "hey, wie geht's?", + "rssi": -57, + "hop_limit": null, + "snr": 11.25, + "node": { + "snr": 11.25, + "raw_json": null, + "node_id": "!4ed36bd0", + "num": 1322478544, + "short_name": "RDM", + "long_name": "Random Man", + "macaddr": "gLVO02vQ", + "hw_model": "T_DECK", + "role": "CLIENT", + "public_key": "dcLnAwTX6nmGIqpZVaRBeybklmxh5jDVpQaGqiWpsCU=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758023526, + "first_heard": 1758018235, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758023526, + "location_source": "LOC_INTERNAL", + "latitude": 52.4550144, + "longitude": 13.4479872, + "altitude": 64.0 + } + }, + { + "id": 3818864533, + "rx_time": 1758016394, + "rx_iso": "2025-09-16T09:53:14Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Richtig herbstlich 🍃", + "rssi": -12, + "hop_limit": 7, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 3818864532, + "rx_time": 1758016367, + "rx_iso": "2025-09-16T09:52:47Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "💨", + "rssi": -12, + "hop_limit": 7, + "snr": 10.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 2844884382, + "rx_time": 1758016313, + "rx_iso": "2025-09-16T09:51:53Z", + "from_id": "!b03c97a4", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hier nicht. Stattdessen Wolken und stürmisch 🤮", + "rssi": -53, + "hop_limit": 2, + "snr": 12.0, + "node": { + "snr": 12.0, + "raw_json": null, + "node_id": "!b03c97a4", + "num": 2956760996, + "short_name": "BLN1", + "long_name": "BLNo1 Fhain Süd ", + "macaddr": "NM2wPJek", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "VlEeppB6lRZ0vu78gvmwjHw8YXU6t0QJNFhp/vyIcVY=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758020843, + "first_heard": 1757831824, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758020843, + "location_source": "LOC_EXTERNAL", + "latitude": 52.502528, + "longitude": 13.4561792, + "altitude": 38.0 + } + }, + { + "id": 2310435040, + "rx_time": 1758016203, + "rx_iso": "2025-09-16T09:50:03Z", + "from_id": "!9eeb25ec", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "👍", + "rssi": -121, + "hop_limit": 5, + "snr": -15.0, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9eeb25ec", + "num": 2666210796, + "short_name": "25ec", + "long_name": "Meshtastic 25ec", + "macaddr": "nBOe6yXs", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758023552, + "first_heard": 1757949314, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758023552, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 52.0 + } + }, + { + "id": 1291522804, + "rx_time": 1758016171, + "rx_iso": "2025-09-16T09:49:31Z", + "from_id": "!f9b0938c", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Ich", + "rssi": -54, + "hop_limit": 3, + "snr": 11.25, + "node": { + "snr": 11.25, + "raw_json": null, + "node_id": "!f9b0938c", + "num": 4189098892, + "short_name": "Ed-1", + "long_name": "Y35RO Plänterwald ", + "macaddr": "8CT5sJOM", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "public_key": "Ms8ww6GB7pUEk9MUHTR9VQT3wEb9DIBJZ1g7Lr8Tsmc=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758021840, + "first_heard": 1757803142, + "battery_level": 101.0, + "voltage": 4.264, + "channel_utilization": 3.4916666, + "air_util_tx": 0.6040555, + "uptime_seconds": 91873, + "position_time": 1758021840, + "location_source": "LOC_EXTERNAL", + "latitude": 52.4550144, + "longitude": 13.4479872, + "altitude": 36.0 + } + }, + { + "id": 1348816042, + "rx_time": 1758014678, + "rx_iso": "2025-09-16T09:24:38Z", + "from_id": "!6c73bf84", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Oh die Sonne kommt raus ☀️🏝️", + "rssi": -45, + "hop_limit": 4, + "snr": 11.25, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!6c73bf84", + "num": 1819524996, + "short_name": "ts1", + "long_name": "Tegeler See Node 1", + "macaddr": "oN1sc7+E", + "hw_model": "TBEAM", + "role": "CLIENT", + "public_key": "AW0bHoCVF0Yzo3yWx96b8XtA2kNZBQsWRyoQjKKm02A=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758014737, + "first_heard": 1757824664, + "battery_level": 100.0, + "voltage": 4.179, + "channel_utilization": 6.3450003, + "air_util_tx": 0.28575, + "uptime_seconds": 30670, + "position_time": null, + "location_source": "LOC_MANUAL", + "latitude": 52.559872, + "longitude": 13.2907008, + "altitude": 35.0 + } + }, + { + "id": 1136075264, + "rx_time": 1758012786, + "rx_iso": "2025-09-16T08:53:06Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "👍", + "rssi": -68, + "hop_limit": 2, + "snr": 11.25, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 3818864531, + "rx_time": 1758011553, + "rx_iso": "2025-09-16T08:32:33Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Moin, wer ist den gerade alles online?", + "rssi": -57, + "hop_limit": 7, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 1354428383, + "rx_time": 1758010293, + "rx_iso": "2025-09-16T08:11:33Z", + "from_id": "!6cf821fb", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "🫖", + "rssi": -67, + "hop_limit": 1, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!6cf821fb", + "num": 1828200955, + "short_name": "OKP1", + "long_name": "Okapi 1 (he) mobil", + "macaddr": "+tVs+CH7", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "public_key": "ZatOOt4nfXsDgJv6/UOw9CKb2vPOfXcxwUq80TS2Tno=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757963585, + "first_heard": 1757959167, + "battery_level": 85.0, + "voltage": 4.051, + "channel_utilization": 5.4233336, + "air_util_tx": 0.03694444, + "uptime_seconds": 66, + "position_time": 1757962779, + "location_source": "LOC_INTERNAL", + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 51.0 + } + }, + { + "id": 1354428382, + "rx_time": 1758010255, + "rx_iso": "2025-09-16T08:10:55Z", + "from_id": "!6cf821fb", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "👋", + "rssi": -70, + "hop_limit": null, + "snr": 10.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!6cf821fb", + "num": 1828200955, + "short_name": "OKP1", + "long_name": "Okapi 1 (he) mobil", + "macaddr": "+tVs+CH7", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "public_key": "ZatOOt4nfXsDgJv6/UOw9CKb2vPOfXcxwUq80TS2Tno=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757963585, + "first_heard": 1757959167, + "battery_level": 85.0, + "voltage": 4.051, + "channel_utilization": 5.4233336, + "air_util_tx": 0.03694444, + "uptime_seconds": 66, + "position_time": 1757962779, + "location_source": "LOC_INTERNAL", + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 51.0 + } + }, + { + "id": 1004988335, + "rx_time": 1758009746, + "rx_iso": "2025-09-16T08:02:26Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Morgähn! Puh mehr Kaffee ☕️ ", + "rssi": -65, + "hop_limit": 4, + "snr": 10.5, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 2939053303, + "rx_time": 1758009621, + "rx_iso": "2025-09-16T08:00:21Z", + "from_id": "!db2b23f4", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Pong/Moin/GuMo", + "rssi": -69, + "hop_limit": 5, + "snr": 10.25, + "node": { + "snr": 10.25, + "raw_json": null, + "node_id": "!db2b23f4", + "num": 3677037556, + "short_name": "Eagl", + "long_name": "Gwaihir", + "macaddr": "EFHbKyP0", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "LL4XdtW32i1+U2L/aC32cBSV6U7/dJKQk1oUQqud9mg=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758012346, + "first_heard": 1757822402, + "battery_level": 101.0, + "voltage": 4.235, + "channel_utilization": 3.4016664, + "air_util_tx": 1.0981389, + "uptime_seconds": 52420, + "position_time": 1758012332, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 41.0 + } + }, + { + "id": 1354428381, + "rx_time": 1758007602, + "rx_iso": "2025-09-16T07:26:42Z", + "from_id": "!6cf821fb", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hallo von einem Neuling.", + "rssi": -71, + "hop_limit": 1, + "snr": 11.25, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!6cf821fb", + "num": 1828200955, + "short_name": "OKP1", + "long_name": "Okapi 1 (he) mobil", + "macaddr": "+tVs+CH7", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "public_key": "ZatOOt4nfXsDgJv6/UOw9CKb2vPOfXcxwUq80TS2Tno=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757963585, + "first_heard": 1757959167, + "battery_level": 85.0, + "voltage": 4.051, + "channel_utilization": 5.4233336, + "air_util_tx": 0.03694444, + "uptime_seconds": 66, + "position_time": 1757962779, + "location_source": "LOC_INTERNAL", + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 51.0 + } + }, + { + "id": 3094667674, + "rx_time": 1758002943, + "rx_iso": "2025-09-16T06:09:03Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Moin!", + "rssi": -79, + "hop_limit": 6, + "snr": 11.0, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 1596569460, + "rx_time": 1758001093, + "rx_iso": "2025-09-16T05:38:13Z", + "from_id": "!177cfa26", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Guten Morgen", + "rssi": -116, + "hop_limit": 2, + "snr": -11.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!177cfa26", + "num": 394066470, + "short_name": "lun1", + "long_name": "Lunet One", + "macaddr": "2y4XfPom", + "hw_model": "T_ECHO", + "role": "CLIENT", + "public_key": "YnT5fSoIXf7S5zLBhR7wR9Bd8VOQxNsRqtElF2gy1B8=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758017722, + "first_heard": 1757768167, + "battery_level": 101.0, + "voltage": 4.847, + "channel_utilization": 1.0316666, + "air_util_tx": 0.021694444, + "uptime_seconds": 1046205, + "position_time": 1758000320, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5021165, + "longitude": 13.5000622, + "altitude": 61.0 + } + }, + { + "id": 32924066, + "rx_time": 1758000325, + "rx_iso": "2025-09-16T05:25:25Z", + "from_id": "!9ea0c780", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Moin ☕️", + "rssi": -52, + "hop_limit": 5, + "snr": 11.25, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!9ea0c780", + "num": 2661336960, + "short_name": "nguE", + "long_name": "ngud E Mobile", + "macaddr": "nBOeoMeA", + "hw_model": "HELTEC_WIRELESS_PAPER", + "role": "CLIENT", + "public_key": "J0g4pBWbfIYtD1tY/fCFplkx+slnQ5pyzPQcbLLa+yI=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758022219, + "first_heard": 1757808007, + "battery_level": 58.0, + "voltage": 3.79, + "channel_utilization": 6.225, + "air_util_tx": 0.03836111, + "uptime_seconds": 61, + "position_time": 1758004811, + "location_source": "LOC_MANUAL", + "latitude": 52.5369344, + "longitude": 13.484032, + "altitude": 66.0 + } + }, + { + "id": 219813646, + "rx_time": 1757999805, + "rx_iso": "2025-09-16T05:16:45Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Mehr!", + "rssi": -51, + "hop_limit": 1, + "snr": 10.75, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 1470988520, + "rx_time": 1757996560, + "rx_iso": "2025-09-16T04:22:40Z", + "from_id": "!e80cda12", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Gutn Mrgn", + "rssi": -55, + "hop_limit": 3, + "snr": 11.5, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!e80cda12", + "num": 3893156370, + "short_name": "mowW", + "long_name": "mirkosw /pWisMeshTag", + "macaddr": "/ijoDNoS", + "hw_model": "WISMESH_TAG", + "role": "CLIENT_MUTE", + "public_key": "cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758000138, + "first_heard": 1757797822, + "battery_level": 94.0, + "voltage": 4.114, + "channel_utilization": 3.01, + "air_util_tx": 0.014333334, + "uptime_seconds": 66, + "position_time": 1758000127, + "location_source": "LOC_INTERNAL", + "latitude": 52.4725355, + "longitude": 13.3700968, + "altitude": -39.0 + } + }, + { + "id": 2844052841, + "rx_time": 1757996484, + "rx_iso": "2025-09-16T04:21:24Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "moin", + "rssi": -54, + "hop_limit": 6, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 476809275, + "rx_time": 1757993848, + "rx_iso": "2025-09-16T03:37:28Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Moin", + "rssi": -53, + "hop_limit": 4, + "snr": 11.5, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 2844052817, + "rx_time": 1757984695, + "rx_iso": "2025-09-16T01:04:55Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "direkt", + "rssi": -55, + "hop_limit": 6, + "snr": 11.5, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 944620241, + "rx_time": 1757969871, + "rx_iso": "2025-09-15T20:57:51Z", + "from_id": "!a0cb1608", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Yay, direct SNR -11.25", + "rssi": -115, + "hop_limit": 4, + "snr": -11.75, + "node": { + "snr": -9.75, + "raw_json": null, + "node_id": "!a0cb1608", + "num": 2697664008, + "short_name": "KBV5", + "long_name": "KeinBierVor5", + "macaddr": "MO2gyxYI", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 1, + "last_heard": 1758022713, + "first_heard": 1757823622, + "battery_level": 83.0, + "voltage": 4.01, + "channel_utilization": 2.9883332, + "air_util_tx": 0.89416665, + "uptime_seconds": 160927, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 2873331581, + "rx_time": 1757968463, + "rx_iso": "2025-09-15T20:34:23Z", + "from_id": "!bcf10936", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Gute Nacht zusammen!", + "rssi": -47, + "hop_limit": 2, + "snr": 10.75, + "node": { + "snr": 10.25, + "raw_json": null, + "node_id": "!bcf10936", + "num": 3169913142, + "short_name": "0936", + "long_name": "Hopfensender HQ", + "macaddr": "0D688Qk2", + "hw_model": "RAK4631", + "role": "CLIENT", + "public_key": "XhxIf5cQIDMLvHCfCPIicjwSCKYycM0Yz0jdOOe5Rlk=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 5, + "last_heard": 1758023735, + "first_heard": 1757833703, + "battery_level": 97.0, + "voltage": 4.148, + "channel_utilization": 4.778333, + "air_util_tx": 0.7001944, + "uptime_seconds": 39435, + "position_time": 1758023735, + "location_source": "LOC_MANUAL", + "latitude": 52.5729792, + "longitude": 13.43488, + "altitude": 57.0 + } + }, + { + "id": 1782815903, + "rx_time": 1757968301, + "rx_iso": "2025-09-15T20:31:41Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hi", + "rssi": -13, + "hop_limit": 7, + "snr": 11.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 1376017812, + "rx_time": 1757966842, + "rx_iso": "2025-09-15T20:07:22Z", + "from_id": "!a0cc6904", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hi", + "rssi": -118, + "hop_limit": 1, + "snr": -13.25, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!a0cc6904", + "num": 2697750788, + "short_name": "Kdû", + "long_name": "Khazad-dûm", + "macaddr": "MO2gzGkE", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1757992840, + "first_heard": 1757819079, + "battery_level": 4.0, + "voltage": 3.195, + "channel_utilization": 0.7366667, + "air_util_tx": 0.7919166, + "uptime_seconds": 154899, + "position_time": 1757987158, + "location_source": "LOC_INTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 57.0 + } + }, + { + "id": 716585726, + "rx_time": 1757966820, + "rx_iso": "2025-09-15T20:07:00Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hi", + "rssi": -48, + "hop_limit": 6, + "snr": 10.5, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 2504325195, + "rx_time": 1757966797, + "rx_iso": "2025-09-15T20:06:37Z", + "from_id": "!9eeb25ec", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hi, just trying putting my node upstairs in my apartment.", + "rssi": -48, + "hop_limit": 6, + "snr": 11.0, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9eeb25ec", + "num": 2666210796, + "short_name": "25ec", + "long_name": "Meshtastic 25ec", + "macaddr": "nBOe6yXs", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758023552, + "first_heard": 1757949314, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758023552, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 52.0 + } + }, + { + "id": 1376017811, + "rx_time": 1757966748, + "rx_iso": "2025-09-15T20:05:48Z", + "from_id": "!a0cc6904", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "It seems to work.", + "rssi": -119, + "hop_limit": 2, + "snr": -14.0, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!a0cc6904", + "num": 2697750788, + "short_name": "Kdû", + "long_name": "Khazad-dûm", + "macaddr": "MO2gzGkE", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1757992840, + "first_heard": 1757819079, + "battery_level": 4.0, + "voltage": 3.195, + "channel_utilization": 0.7366667, + "air_util_tx": 0.7919166, + "uptime_seconds": 154899, + "position_time": 1757987158, + "location_source": "LOC_INTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 57.0 + } + }, + { + "id": 2504325191, + "rx_time": 1757966655, + "rx_iso": "2025-09-15T20:04:15Z", + "from_id": "!9eeb25ec", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hi, just trying putting my node upstairs in my apartment.", + "rssi": -48, + "hop_limit": 6, + "snr": 11.25, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9eeb25ec", + "num": 2666210796, + "short_name": "25ec", + "long_name": "Meshtastic 25ec", + "macaddr": "nBOe6yXs", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758023552, + "first_heard": 1757949314, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758023552, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 52.0 + } + }, + { + "id": 2504325189, + "rx_time": 1757966636, + "rx_iso": "2025-09-15T20:03:56Z", + "from_id": "!9eeb25ec", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hi, just trying putting my node upstairs in my apartment.", + "rssi": -48, + "hop_limit": 6, + "snr": 11.5, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9eeb25ec", + "num": 2666210796, + "short_name": "25ec", + "long_name": "Meshtastic 25ec", + "macaddr": "nBOe6yXs", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758023552, + "first_heard": 1757949314, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758023552, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 52.0 + } + }, + { + "id": 2504325187, + "rx_time": 1757966612, + "rx_iso": "2025-09-15T20:03:32Z", + "from_id": "!9eeb25ec", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hi, just trying putting my node upstairs in my apartment.", + "rssi": -48, + "hop_limit": 5, + "snr": 11.75, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9eeb25ec", + "num": 2666210796, + "short_name": "25ec", + "long_name": "Meshtastic 25ec", + "macaddr": "nBOe6yXs", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "oZYuBP50vk3H9u4/pszh1EUlSDaWpQpxokgnn4PbFzk=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758023552, + "first_heard": 1757949314, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758023552, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 52.0 + } + }, + { + "id": 1782815563, + "rx_time": 1757958051, + "rx_iso": "2025-09-15T17:40:51Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Ich habe uns eine Webseite gebastelt. https://potatomesh.net", + "rssi": -64, + "hop_limit": 7, + "snr": 11.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 2783818859, + "rx_time": 1757957659, + "rx_iso": "2025-09-15T17:34:19Z", + "from_id": "!03b9ca11", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Huhu, ich bin Back in Town. Irgendwas spannendes passiert seit Freitag?", + "rssi": -63, + "hop_limit": 3, + "snr": 10.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!03b9ca11", + "num": 62507537, + "short_name": "ca11", + "long_name": "Meshtastic ca11", + "macaddr": null, + "hw_model": "UNSET", + "role": "CLIENT", + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1757957659, + "first_heard": 1757957659, + "battery_level": 57.0, + "voltage": 3.869, + "channel_utilization": 2.3766665, + "air_util_tx": 0.1098889, + "uptime_seconds": 26711, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 2939052889, + "rx_time": 1757956367, + "rx_iso": "2025-09-15T17:12:47Z", + "from_id": "!db2b23f4", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "👍", + "rssi": -77, + "hop_limit": 4, + "snr": 7.5, + "node": { + "snr": 10.25, + "raw_json": null, + "node_id": "!db2b23f4", + "num": 3677037556, + "short_name": "Eagl", + "long_name": "Gwaihir", + "macaddr": "EFHbKyP0", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "LL4XdtW32i1+U2L/aC32cBSV6U7/dJKQk1oUQqud9mg=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758012346, + "first_heard": 1757822402, + "battery_level": 101.0, + "voltage": 4.235, + "channel_utilization": 3.4016664, + "air_util_tx": 1.0981389, + "uptime_seconds": 52420, + "position_time": 1758012332, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 41.0 + } + }, + { + "id": 1782815506, + "rx_time": 1757956356, + "rx_iso": "2025-09-15T17:12:36Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "👍", + "rssi": null, + "hop_limit": 7, + "snr": 10.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 2939052888, + "rx_time": 1757956315, + "rx_iso": "2025-09-15T17:11:55Z", + "from_id": "!db2b23f4", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Beste Werbung für Meshtastic: https://mastodon.social/@chatcontrol/115204439983078498 komplett beknackt der typ.", + "rssi": -52, + "hop_limit": 5, + "snr": 10.75, + "node": { + "snr": 10.25, + "raw_json": null, + "node_id": "!db2b23f4", + "num": 3677037556, + "short_name": "Eagl", + "long_name": "Gwaihir", + "macaddr": "EFHbKyP0", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "LL4XdtW32i1+U2L/aC32cBSV6U7/dJKQk1oUQqud9mg=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758012346, + "first_heard": 1757822402, + "battery_level": 101.0, + "voltage": 4.235, + "channel_utilization": 3.4016664, + "air_util_tx": 1.0981389, + "uptime_seconds": 52420, + "position_time": 1758012332, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 41.0 + } + }, + { + "id": 1343076781, + "rx_time": 1757955702, + "rx_iso": "2025-09-15T17:01:42Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Nabend 👋", + "rssi": -52, + "hop_limit": null, + "snr": 10.75, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 716585724, + "rx_time": 1757955668, + "rx_iso": "2025-09-15T17:01:08Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Nabend Leute", + "rssi": -52, + "hop_limit": 6, + "snr": 10.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 2310268022, + "rx_time": 1757954148, + "rx_iso": "2025-09-15T16:35:48Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "877c ich bekomme dich hier direkt rein. Empfang ist gut. Empfängst du meine Node?", + "rssi": -52, + "hop_limit": 3, + "snr": 10.5, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 1376017806, + "rx_time": 1757948886, + "rx_iso": "2025-09-15T15:08:06Z", + "from_id": "!a0cc6904", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Servus", + "rssi": -45, + "hop_limit": 1, + "snr": 11.0, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!a0cc6904", + "num": 2697750788, + "short_name": "Kdû", + "long_name": "Khazad-dûm", + "macaddr": "MO2gzGkE", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1757992840, + "first_heard": 1757819079, + "battery_level": 4.0, + "voltage": 3.195, + "channel_utilization": 0.7366667, + "air_util_tx": 0.7919166, + "uptime_seconds": 154899, + "position_time": 1757987158, + "location_source": "LOC_INTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 57.0 + } + }, + { + "id": 109295131, + "rx_time": 1757948827, + "rx_iso": "2025-09-15T15:07:07Z", + "from_id": "!2f945044", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Servus", + "rssi": -118, + "hop_limit": 4, + "snr": -12.25, + "node": { + "snr": -12.25, + "raw_json": null, + "node_id": "!2f945044", + "num": 798249028, + "short_name": "BND", + "long_name": "Briansnachrichtendienst", + "macaddr": "FCsvlFBE", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "public_key": "WZDH1WkYCpwoOrmjV7ctC2BgOONiXc9C6tBlQPgxNgM=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1757948827, + "first_heard": 1757787385, + "battery_level": 96.0, + "voltage": 4.14, + "channel_utilization": 6.011667, + "air_util_tx": 0.0335, + "uptime_seconds": 61, + "position_time": 1757947583, + "location_source": "LOC_EXTERNAL", + "latitude": 52.4435456, + "longitude": 13.3906432, + "altitude": 50.0 + } + }, + { + "id": 717959241, + "rx_time": 1757941762, + "rx_iso": "2025-09-15T13:09:22Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "mal wieder n Test: piep !?", + "rssi": -45, + "hop_limit": 4, + "snr": 11.0, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 1542608087, + "rx_time": 1757939642, + "rx_iso": "2025-09-15T12:34:02Z", + "from_id": "!9ee71c38", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Polarlichter incoming", + "rssi": -70, + "hop_limit": null, + "snr": 10.5, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9ee71c38", + "num": 2665946168, + "short_name": "1c38", + "long_name": "Varus1c38", + "macaddr": "nBOe5xw4", + "hw_model": "HELTEC_V3", + "role": null, + "public_key": "+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757934899, + "first_heard": 1757784888, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 1376017801, + "rx_time": 1757939575, + "rx_iso": "2025-09-15T12:32:55Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "KP größer 5. Sonne macht Action.", + "rssi": -67, + "hop_limit": 1, + "snr": 10.75, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 1782814906, + "rx_time": 1757937579, + "rx_iso": "2025-09-15T11:59:39Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Die Meldung kommt aber auch erst, wenn das Gewitter schon fast durch ist 😅", + "rssi": -58, + "hop_limit": 7, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 49, + "rx_time": 1757934215, + "rx_iso": "2025-09-15T11:03:35Z", + "from_id": "!7c5b0920", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "🚨 KATWARN 🚨 Amtliche WARNUNG vor STARKEM GEWITTER", + "rssi": -67, + "hop_limit": 5, + "snr": 10.5, + "node": { + "snr": -6.25, + "raw_json": null, + "node_id": "!7c5b0920", + "num": 2086340896, + "short_name": "FFTB", + "long_name": "Freifunk-Teufelsberg BOT 868", + "macaddr": "JFh8Wwkg", + "hw_model": "HELTEC_V3", + "role": "ROUTER", + "public_key": "bJtTR+CFGycDx7wjziwOUsHjqQvcP9QITqY1K1uDxWg=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": 1, + "last_heard": 1758022460, + "first_heard": 1757828009, + "battery_level": 97.0, + "voltage": 4.149, + "channel_utilization": 0.58, + "air_util_tx": 1.0519166, + "uptime_seconds": 43287, + "position_time": 1757946866, + "location_source": "LOC_MANUAL", + "latitude": 52.49795, + "longitude": 13.24061, + "altitude": 160.0 + } + }, + { + "id": 48, + "rx_time": 1757932990, + "rx_iso": "2025-09-15T10:43:10Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "😁", + "rssi": -56, + "hop_limit": 7, + "snr": 10.25, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 47, + "rx_time": 1757932794, + "rx_iso": "2025-09-15T10:39:54Z", + "from_id": "!9ea0c780", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Jetzt ist es in Alt HH auch nass 😆", + "rssi": -64, + "hop_limit": 4, + "snr": 11.25, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!9ea0c780", + "num": 2661336960, + "short_name": "nguE", + "long_name": "ngud E Mobile", + "macaddr": "nBOeoMeA", + "hw_model": "HELTEC_WIRELESS_PAPER", + "role": "CLIENT", + "public_key": "J0g4pBWbfIYtD1tY/fCFplkx+slnQ5pyzPQcbLLa+yI=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758022219, + "first_heard": 1757808007, + "battery_level": 58.0, + "voltage": 3.79, + "channel_utilization": 6.225, + "air_util_tx": 0.03836111, + "uptime_seconds": 61, + "position_time": 1758004811, + "location_source": "LOC_MANUAL", + "latitude": 52.5369344, + "longitude": 13.484032, + "altitude": 66.0 + } + }, + { + "id": 46, + "rx_time": 1757926859, + "rx_iso": "2025-09-15T09:00:59Z", + "from_id": "!0910c922", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "@varus in Hönow kam msg an👍", + "rssi": -61, + "hop_limit": 4, + "snr": 10.75, + "node": { + "snr": -12.75, + "raw_json": null, + "node_id": "!0910c922", + "num": 152095010, + "short_name": "c922", + "long_name": "Meshtastic c922", + "macaddr": "4SYJEMki", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "public_key": "wpoWw1Lt4eBRmWB5kGorVMb6muRYSVko6BK35NCKjDs=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758020943, + "first_heard": 1757830191, + "battery_level": 67.0, + "voltage": 3.866, + "channel_utilization": 8.663333, + "air_util_tx": 0.8109445, + "uptime_seconds": 126027, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 45, + "rx_time": 1757925469, + "rx_iso": "2025-09-15T08:37:49Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "hi", + "rssi": -64, + "hop_limit": 1, + "snr": 11.0, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 44, + "rx_time": 1757925434, + "rx_iso": "2025-09-15T08:37:14Z", + "from_id": "!9ee71430", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "👀", + "rssi": -66, + "hop_limit": 1, + "snr": 11.0, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!9ee71430", + "num": 2665944112, + "short_name": "FiSp", + "long_name": "FireSpark", + "macaddr": "nBOe5xQw", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "3TCf45+01J1qATTKrxG8+PGMeFJEVnKBi/GyuOr7ZEQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758023883, + "first_heard": 1757838749, + "battery_level": 96.0, + "voltage": 4.144, + "channel_utilization": 0.28, + "air_util_tx": 0.27797222, + "uptime_seconds": 346359, + "position_time": 1758023883, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 67.0 + } + }, + { + "id": 43, + "rx_time": 1757924308, + "rx_iso": "2025-09-15T08:18:28Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "du kannst einstellen, wie viele \"hops\" deine nachricht macht, also über wie viele nodes sie springt. ich höre dich über 3. ich hab das auf 7 gestellt.", + "rssi": -56, + "hop_limit": 7, + "snr": 11.5, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 42, + "rx_time": 1757924200, + "rx_iso": "2025-09-15T08:16:40Z", + "from_id": "!bcf10936", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "📍 Hopfensender HQ has shared their position and requested a response with your position.", + "rssi": -63, + "hop_limit": 3, + "snr": 10.75, + "node": { + "snr": 10.25, + "raw_json": null, + "node_id": "!bcf10936", + "num": 3169913142, + "short_name": "0936", + "long_name": "Hopfensender HQ", + "macaddr": "0D688Qk2", + "hw_model": "RAK4631", + "role": "CLIENT", + "public_key": "XhxIf5cQIDMLvHCfCPIicjwSCKYycM0Yz0jdOOe5Rlk=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 5, + "last_heard": 1758023735, + "first_heard": 1757833703, + "battery_level": 97.0, + "voltage": 4.148, + "channel_utilization": 4.778333, + "air_util_tx": 0.7001944, + "uptime_seconds": 39435, + "position_time": 1758023735, + "location_source": "LOC_MANUAL", + "latitude": 52.5729792, + "longitude": 13.43488, + "altitude": 57.0 + } + }, + { + "id": 41, + "rx_time": 1757922177, + "rx_iso": "2025-09-15T07:42:57Z", + "from_id": "!16ced364", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "😀", + "rssi": -75, + "hop_limit": null, + "snr": 11.0, + "node": { + "snr": 11.25, + "raw_json": null, + "node_id": "!16ced364", + "num": 382653284, + "short_name": "Pat", + "long_name": "Pat HQ BS", + "macaddr": "mKMWztNk", + "hw_model": "STATION_G2", + "role": "CLIENT", + "public_key": "d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758021676, + "first_heard": 1757830983, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 40, + "rx_time": 1757921772, + "rx_iso": "2025-09-15T07:36:12Z", + "from_id": "!9ee71c38", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Wird diese Nachricht immer nur von den aktuellen Nodes in meiner Reichweite empfangen oder wird die noch weiter ins Mesh hinausgetragen? Versuche noch das alles zu verstehen;)", + "rssi": -77, + "hop_limit": null, + "snr": 11.25, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9ee71c38", + "num": 2665946168, + "short_name": "1c38", + "long_name": "Varus1c38", + "macaddr": "nBOe5xw4", + "hw_model": "HELTEC_V3", + "role": null, + "public_key": "+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757934899, + "first_heard": 1757784888, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 39, + "rx_time": 1757920491, + "rx_iso": "2025-09-15T07:14:51Z", + "from_id": "!9ee71c38", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Montags Wetterblues", + "rssi": -78, + "hop_limit": null, + "snr": 10.5, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9ee71c38", + "num": 2665946168, + "short_name": "1c38", + "long_name": "Varus1c38", + "macaddr": "nBOe5xw4", + "hw_model": "HELTEC_V3", + "role": null, + "public_key": "+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757934899, + "first_heard": 1757784888, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 38, + "rx_time": 1757920100, + "rx_iso": "2025-09-15T07:08:20Z", + "from_id": "!a3deea53", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Was erlaube Wetter? Wo ist die Sonne? :/", + "rssi": -80, + "hop_limit": 2, + "snr": 10.25, + "node": { + "snr": 10.0, + "raw_json": null, + "node_id": "!a3deea53", + "num": 2749295187, + "short_name": "🐸", + "long_name": "green", + "macaddr": "/2mj3upT", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "public_key": "2F/3iuOgrVto9DgNZtUdknYaEI1ZVM+lvLOrPzSlCD8=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757949419, + "first_heard": 1757920065, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 37, + "rx_time": 1757918563, + "rx_iso": "2025-09-15T06:42:43Z", + "from_id": "!9ea0c780", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Guten Morgen ☕️", + "rssi": -85, + "hop_limit": 5, + "snr": 9.0, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!9ea0c780", + "num": 2661336960, + "short_name": "nguE", + "long_name": "ngud E Mobile", + "macaddr": "nBOeoMeA", + "hw_model": "HELTEC_WIRELESS_PAPER", + "role": "CLIENT", + "public_key": "J0g4pBWbfIYtD1tY/fCFplkx+slnQ5pyzPQcbLLa+yI=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758022219, + "first_heard": 1757808007, + "battery_level": 58.0, + "voltage": 3.79, + "channel_utilization": 6.225, + "air_util_tx": 0.03836111, + "uptime_seconds": 61, + "position_time": 1758004811, + "location_source": "LOC_MANUAL", + "latitude": 52.5369344, + "longitude": 13.484032, + "altitude": 66.0 + } + }, + { + "id": 36, + "rx_time": 1757918014, + "rx_iso": "2025-09-15T06:33:34Z", + "from_id": "!bba83318", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Moin Moin Umland ☕️", + "rssi": -77, + "hop_limit": 3, + "snr": 11.5, + "node": { + "snr": -13.25, + "raw_json": null, + "node_id": "!bba83318", + "num": 3148362520, + "short_name": "BerF", + "long_name": "Bernau-Friedenstal", + "macaddr": "LLy7qDMY", + "hw_model": "TBEAM", + "role": "CLIENT", + "public_key": "GfyQJ3jYKh+l0Li4w+8PzpA4i/vls1nrdCkcwVj2ICM=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758022862, + "first_heard": 1757825270, + "battery_level": 101.0, + "voltage": -0.001, + "channel_utilization": 7.01, + "air_util_tx": 0.030944444, + "uptime_seconds": 61, + "position_time": 1758022862, + "location_source": "LOC_INTERNAL", + "latitude": 52.6712832, + "longitude": 13.5593984, + "altitude": 50.0 + } + }, + { + "id": 35, + "rx_time": 1757917080, + "rx_iso": "2025-09-15T06:18:00Z", + "from_id": "!9ee71c38", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Guten Morgen!", + "rssi": -84, + "hop_limit": 1, + "snr": 9.25, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9ee71c38", + "num": 2665946168, + "short_name": "1c38", + "long_name": "Varus1c38", + "macaddr": "nBOe5xw4", + "hw_model": "HELTEC_V3", + "role": null, + "public_key": "+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757934899, + "first_heard": 1757784888, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 34, + "rx_time": 1757912511, + "rx_iso": "2025-09-15T05:01:51Z", + "from_id": "!e80cda12", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Aber gaaaaaaanaz viel Kaffee", + "rssi": -71, + "hop_limit": 2, + "snr": 10.25, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!e80cda12", + "num": 3893156370, + "short_name": "mowW", + "long_name": "mirkosw /pWisMeshTag", + "macaddr": "/ijoDNoS", + "hw_model": "WISMESH_TAG", + "role": "CLIENT_MUTE", + "public_key": "cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758000138, + "first_heard": 1757797822, + "battery_level": 94.0, + "voltage": 4.114, + "channel_utilization": 3.01, + "air_util_tx": 0.014333334, + "uptime_seconds": 66, + "position_time": 1758000127, + "location_source": "LOC_INTERNAL", + "latitude": 52.4725355, + "longitude": 13.3700968, + "altitude": -39.0 + } + }, + { + "id": 33, + "rx_time": 1757910410, + "rx_iso": "2025-09-15T04:26:50Z", + "from_id": "!a0cc6904", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Moin", + "rssi": -109, + "hop_limit": 1, + "snr": -5.0, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!a0cc6904", + "num": 2697750788, + "short_name": "Kdû", + "long_name": "Khazad-dûm", + "macaddr": "MO2gzGkE", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "BKETsLZtRk2Ck8OG7Qg6WeRhWNlx96Vao29xUaX2BlQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1757992840, + "first_heard": 1757819079, + "battery_level": 4.0, + "voltage": 3.195, + "channel_utilization": 0.7366667, + "air_util_tx": 0.7919166, + "uptime_seconds": 154899, + "position_time": 1757987158, + "location_source": "LOC_INTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 57.0 + } + }, + { + "id": 32, + "rx_time": 1757910388, + "rx_iso": "2025-09-15T04:26:28Z", + "from_id": "!e80cda12", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Guten Morgen allerseits", + "rssi": -40, + "hop_limit": 1, + "snr": 11.0, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!e80cda12", + "num": 3893156370, + "short_name": "mowW", + "long_name": "mirkosw /pWisMeshTag", + "macaddr": "/ijoDNoS", + "hw_model": "WISMESH_TAG", + "role": "CLIENT_MUTE", + "public_key": "cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758000138, + "first_heard": 1757797822, + "battery_level": 94.0, + "voltage": 4.114, + "channel_utilization": 3.01, + "air_util_tx": 0.014333334, + "uptime_seconds": 66, + "position_time": 1758000127, + "location_source": "LOC_INTERNAL", + "latitude": 52.4725355, + "longitude": 13.3700968, + "altitude": -39.0 + } + }, + { + "id": 31, + "rx_time": 1757909639, + "rx_iso": "2025-09-15T04:13:59Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Morgen", + "rssi": -103, + "hop_limit": 3, + "snr": 0.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 30, + "rx_time": 1757890487, + "rx_iso": "2025-09-14T22:54:47Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "GN", + "rssi": -40, + "hop_limit": 4, + "snr": 11.25, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 29, + "rx_time": 1757886696, + "rx_iso": "2025-09-14T21:51:36Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Gute Nacht", + "rssi": -43, + "hop_limit": 2, + "snr": 11.5, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 28, + "rx_time": 1757879734, + "rx_iso": "2025-09-14T19:55:34Z", + "from_id": "!16ced364", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Weiss nicht ob die Node case insentitiv macht, nimm mal TEST als Großbuchstaben...", + "rssi": -79, + "hop_limit": 3, + "snr": 10.0, + "node": { + "snr": 11.25, + "raw_json": null, + "node_id": "!16ced364", + "num": 382653284, + "short_name": "Pat", + "long_name": "Pat HQ BS", + "macaddr": "mKMWztNk", + "hw_model": "STATION_G2", + "role": "CLIENT", + "public_key": "d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758021676, + "first_heard": 1757830983, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 27, + "rx_time": 1757879364, + "rx_iso": "2025-09-14T19:49:24Z", + "from_id": "!a0cb1608", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Währe sehr praktisch", + "rssi": -77, + "hop_limit": 6, + "snr": 11.0, + "node": { + "snr": -9.75, + "raw_json": null, + "node_id": "!a0cb1608", + "num": 2697664008, + "short_name": "KBV5", + "long_name": "KeinBierVor5", + "macaddr": "MO2gyxYI", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 1, + "last_heard": 1758022713, + "first_heard": 1757823622, + "battery_level": 83.0, + "voltage": 4.01, + "channel_utilization": 2.9883332, + "air_util_tx": 0.89416665, + "uptime_seconds": 160927, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 26, + "rx_time": 1757879358, + "rx_iso": "2025-09-14T19:49:18Z", + "from_id": "!a0cb1608", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Wie kann ich in den TEST channel?", + "rssi": -81, + "hop_limit": 6, + "snr": 9.5, + "node": { + "snr": -9.75, + "raw_json": null, + "node_id": "!a0cb1608", + "num": 2697664008, + "short_name": "KBV5", + "long_name": "KeinBierVor5", + "macaddr": "MO2gyxYI", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 1, + "last_heard": 1758022713, + "first_heard": 1757823622, + "battery_level": 83.0, + "voltage": 4.01, + "channel_utilization": 2.9883332, + "air_util_tx": 0.89416665, + "uptime_seconds": 160927, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 25, + "rx_time": 1757878454, + "rx_iso": "2025-09-14T19:34:14Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "ja", + "rssi": -75, + "hop_limit": 5, + "snr": 10.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 24, + "rx_time": 1757878126, + "rx_iso": "2025-09-14T19:28:46Z", + "from_id": "!43b6e530", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "@mowW 🎙Is this thing on?\n4 hops", + "rssi": -80, + "hop_limit": 3, + "snr": 11.0, + "node": { + "snr": -12.0, + "raw_json": null, + "node_id": "!43b6e530", + "num": 1136059696, + "short_name": "FFSR", + "long_name": "Freifunk-Scherer BOT 868", + "macaddr": "SMpDtuUw", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "VbueTxbv8SjGmcLLrlt9/um15QDvis/HpIHiV2flyiI=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758022410, + "first_heard": 1757832883, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758022410, + "location_source": "LOC_MANUAL", + "latitude": 52.5481294, + "longitude": 13.3669095, + "altitude": 0.0 + } + }, + { + "id": 23, + "rx_time": 1757878115, + "rx_iso": "2025-09-14T19:28:35Z", + "from_id": "!e80cda12", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Guten Abend , liest denn jemand im TEST Channel mit ? 😃", + "rssi": -77, + "hop_limit": null, + "snr": 11.0, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!e80cda12", + "num": 3893156370, + "short_name": "mowW", + "long_name": "mirkosw /pWisMeshTag", + "macaddr": "/ijoDNoS", + "hw_model": "WISMESH_TAG", + "role": "CLIENT_MUTE", + "public_key": "cJi950aF2cgxa0xThMEX2vmeQ0+dxGEm1GFOzvm0byQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758000138, + "first_heard": 1757797822, + "battery_level": 94.0, + "voltage": 4.114, + "channel_utilization": 3.01, + "air_util_tx": 0.014333334, + "uptime_seconds": 66, + "position_time": 1758000127, + "location_source": "LOC_INTERNAL", + "latitude": 52.4725355, + "longitude": 13.3700968, + "altitude": -39.0 + } + }, + { + "id": 22, + "rx_time": 1757877363, + "rx_iso": "2025-09-14T19:16:03Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "ja wenn dann LF", + "rssi": -78, + "hop_limit": 5, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 21, + "rx_time": 1757877318, + "rx_iso": "2025-09-14T19:15:18Z", + "from_id": "!16ced364", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Meinte 434.1 MHz als Amateurfunker, auf LongModerate nun fast 3h gehorcht, tot. Bin da der einzigste.", + "rssi": -79, + "hop_limit": 1, + "snr": 10.25, + "node": { + "snr": 11.25, + "raw_json": null, + "node_id": "!16ced364", + "num": 382653284, + "short_name": "Pat", + "long_name": "Pat HQ BS", + "macaddr": "mKMWztNk", + "hw_model": "STATION_G2", + "role": "CLIENT", + "public_key": "d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758021676, + "first_heard": 1757830983, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 20, + "rx_time": 1757875848, + "rx_iso": "2025-09-14T18:50:48Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "ne das is 868", + "rssi": -74, + "hop_limit": 5, + "snr": 10.5, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 19, + "rx_time": 1757870521, + "rx_iso": "2025-09-14T17:22:01Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Alles MediumFast, aber nutz jemand wirklich 43MhHz?", + "rssi": -31, + "hop_limit": 7, + "snr": 10.75, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 18, + "rx_time": 1757867411, + "rx_iso": "2025-09-14T16:30:11Z", + "from_id": "!abbdf3f7", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Medium fast", + "rssi": -43, + "hop_limit": null, + "snr": 11.0, + "node": { + "snr": 11.0, + "raw_json": null, + "node_id": "!abbdf3f7", + "num": 2881352695, + "short_name": "f3f7", + "long_name": "Smobi", + "macaddr": "/vmrvfP3", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT_MUTE", + "public_key": "dyVfk9OfJ5EslgHoeWg+AtmH305m7QtI9vWhD58XLQM=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758021608, + "first_heard": 1757800536, + "battery_level": 97.0, + "voltage": 4.16, + "channel_utilization": 0.5333333, + "air_util_tx": 0.017638888, + "uptime_seconds": 107233, + "position_time": 1758021608, + "location_source": "LOC_INTERNAL", + "latitude": 52.4550144, + "longitude": 13.500416, + "altitude": 39.0 + } + }, + { + "id": 17, + "rx_time": 1757864125, + "rx_iso": "2025-09-14T15:35:25Z", + "from_id": "!c0c32348", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Ping @icea\n", + "rssi": -42, + "hop_limit": 2, + "snr": 10.5, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!c0c32348", + "num": 3234014024, + "short_name": "CooP", + "long_name": "Cooper", + "macaddr": "/OjAwyNI", + "hw_model": "TBEAM", + "role": "CLIENT", + "public_key": "pVtIIO4i1Guq81AsLBLpn8Rh+3MWoojhggVOl7fP8i0=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758021624, + "first_heard": 1757863184, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758021624, + "location_source": "LOC_INTERNAL", + "latitude": 52.5467648, + "longitude": 13.4873088, + "altitude": 365.0 + } + }, + { + "id": 16, + "rx_time": 1757863227, + "rx_iso": "2025-09-14T15:20:27Z", + "from_id": "!16ced364", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Weiss einer welche Modem Betriebsart auf 433MHz in Berlin genutzt wird, war auf LF und kein Empfang.", + "rssi": -43, + "hop_limit": 3, + "snr": 11.0, + "node": { + "snr": 11.25, + "raw_json": null, + "node_id": "!16ced364", + "num": 382653284, + "short_name": "Pat", + "long_name": "Pat HQ BS", + "macaddr": "mKMWztNk", + "hw_model": "STATION_G2", + "role": "CLIENT", + "public_key": "d0SBNj6IwFd/v52oXKRjSXlANm5dWt4CnOj64t35oRQ=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1758021676, + "first_heard": 1757830983, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 15, + "rx_time": 1757861974, + "rx_iso": "2025-09-14T14:59:34Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "❤️", + "rssi": -43, + "hop_limit": null, + "snr": 10.5, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 14, + "rx_time": 1757861768, + "rx_iso": "2025-09-14T14:56:08Z", + "from_id": "!a0cb1608", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "🦫", + "rssi": -117, + "hop_limit": 6, + "snr": -12.5, + "node": { + "snr": -9.75, + "raw_json": null, + "node_id": "!a0cb1608", + "num": 2697664008, + "short_name": "KBV5", + "long_name": "KeinBierVor5", + "macaddr": "MO2gyxYI", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "7nIzxu/WSZ87cIkFFUzBjV08Sut9SGhjAyLka1GGziU=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 1, + "last_heard": 1758022713, + "first_heard": 1757823622, + "battery_level": 83.0, + "voltage": 4.01, + "channel_utilization": 2.9883332, + "air_util_tx": 0.89416665, + "uptime_seconds": 160927, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 13, + "rx_time": 1757861679, + "rx_iso": "2025-09-14T14:54:39Z", + "from_id": "!da635e24", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "🍻🍕", + "rssi": -43, + "hop_limit": 6, + "snr": 11.0, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!da635e24", + "num": 3663945252, + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "macaddr": "NLfaY14k", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "ef1YoI2s4dip/EBEzzMJ+guVArp0UtpswwXJ4K2gQ2E=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 2, + "last_heard": 1758015344, + "first_heard": 1757820949, + "battery_level": 101.0, + "voltage": 4.203, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "uptime_seconds": 61, + "position_time": 1757921223, + "location_source": "LOC_MANUAL", + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null + } + }, + { + "id": 12, + "rx_time": 1757861565, + "rx_iso": "2025-09-14T14:52:45Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "🤖☠️", + "rssi": -114, + "hop_limit": 2, + "snr": -8.75, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 11, + "rx_time": 1757861136, + "rx_iso": "2025-09-14T14:45:36Z", + "from_id": "!5d823fb1", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Ping", + "rssi": -42, + "hop_limit": null, + "snr": 10.25, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!5d823fb1", + "num": 1568817073, + "short_name": "3fb1", + "long_name": "SoswB", + "macaddr": "5Hpdgj+x", + "hw_model": "RAK4631", + "role": "CLIENT", + "public_key": "7IFrQCY8KjH2jlHfz5zS7zYCZLOakjZsKm8FoZW+XXY=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758009741, + "first_heard": 1757774595, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 10, + "rx_time": 1757861105, + "rx_iso": "2025-09-14T14:45:05Z", + "from_id": "!43b6e530", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "@MGN1 🏓PONG\nSNR:-2.0 RSSI:-95", + "rssi": -42, + "hop_limit": 2, + "snr": 11.25, + "node": { + "snr": -12.0, + "raw_json": null, + "node_id": "!43b6e530", + "num": 1136059696, + "short_name": "FFSR", + "long_name": "Freifunk-Scherer BOT 868", + "macaddr": "SMpDtuUw", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "VbueTxbv8SjGmcLLrlt9/um15QDvis/HpIHiV2flyiI=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758022410, + "first_heard": 1757832883, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": 1758022410, + "location_source": "LOC_MANUAL", + "latitude": 52.5481294, + "longitude": 13.3669095, + "altitude": 0.0 + } + }, + { + "id": 9, + "rx_time": 1757861102, + "rx_iso": "2025-09-14T14:45:02Z", + "from_id": "!849a8ba4", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Ping", + "rssi": -42, + "hop_limit": 3, + "snr": 11.0, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!849a8ba4", + "num": 2224720804, + "short_name": "MGN1", + "long_name": "Magnus 1", + "macaddr": "sIGEmouk", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "OfaBBiVBvYUijwF6t5jNN+UFBwyw+AV7W85pE3xB6xw=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758001403, + "first_heard": 1757829564, + "battery_level": 101.0, + "voltage": 4.201, + "channel_utilization": 0.0, + "air_util_tx": 0.025305556, + "uptime_seconds": 740673, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 8, + "rx_time": 1757860555, + "rx_iso": "2025-09-14T14:35:55Z", + "from_id": "!849a8ba4", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Ping", + "rssi": -118, + "hop_limit": 1, + "snr": -13.25, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!849a8ba4", + "num": 2224720804, + "short_name": "MGN1", + "long_name": "Magnus 1", + "macaddr": "sIGEmouk", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "public_key": "OfaBBiVBvYUijwF6t5jNN+UFBwyw+AV7W85pE3xB6xw=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758001403, + "first_heard": 1757829564, + "battery_level": 101.0, + "voltage": 4.201, + "channel_utilization": 0.0, + "air_util_tx": 0.025305556, + "uptime_seconds": 740673, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 7, + "rx_time": 1757858547, + "rx_iso": "2025-09-14T14:02:27Z", + "from_id": "!9c93a2df", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Empfangen in Baumschulenweg ", + "rssi": -42, + "hop_limit": 3, + "snr": 10.75, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!9c93a2df", + "num": 2626921183, + "short_name": "xaRa", + "long_name": "xayax RAK", + "macaddr": "znKck6Lf", + "hw_model": "RAK4631", + "role": "CLIENT", + "public_key": "Rxo/Fw/ergQIhRqBbrHasLYy3gU+Ay8hrhu4OVnIPQc=", + "is_unmessagable": null, + "is_favorite": null, + "hops_away": 3, + "last_heard": 1758015870, + "first_heard": 1757799869, + "battery_level": 69.0, + "voltage": 3.884, + "channel_utilization": 0.35833332, + "air_util_tx": 0.7733611, + "uptime_seconds": 243332, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 6, + "rx_time": 1757852693, + "rx_iso": "2025-09-14T12:24:53Z", + "from_id": "!9ee71c38", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Latsche gerade durch Britz herum und teste das neue Gerät. Bin ganz frisch dabei bei Meshtastic.", + "rssi": -43, + "hop_limit": 1, + "snr": 11.25, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9ee71c38", + "num": 2665946168, + "short_name": "1c38", + "long_name": "Varus1c38", + "macaddr": "nBOe5xw4", + "hw_model": "HELTEC_V3", + "role": null, + "public_key": "+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757934899, + "first_heard": 1757784888, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 5, + "rx_time": 1757852049, + "rx_iso": "2025-09-14T12:14:09Z", + "from_id": "!9ee71c38", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Sehr schön:)", + "rssi": -43, + "hop_limit": 1, + "snr": 11.0, + "node": { + "snr": 11.5, + "raw_json": null, + "node_id": "!9ee71c38", + "num": 2665946168, + "short_name": "1c38", + "long_name": "Varus1c38", + "macaddr": "nBOe5xw4", + "hw_model": "HELTEC_V3", + "role": null, + "public_key": "+ArXwQxeN/Zhw+2iDHG3bJspBNEBvlrGGAgo4HQNZm0=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": null, + "last_heard": 1757934899, + "first_heard": 1757784888, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 4, + "rx_time": 1757851803, + "rx_iso": "2025-09-14T12:10:03Z", + "from_id": "!5d823fb1", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Kam an. 😁", + "rssi": -41, + "hop_limit": null, + "snr": 11.0, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!5d823fb1", + "num": 1568817073, + "short_name": "3fb1", + "long_name": "SoswB", + "macaddr": "5Hpdgj+x", + "hw_model": "RAK4631", + "role": "CLIENT", + "public_key": "7IFrQCY8KjH2jlHfz5zS7zYCZLOakjZsKm8FoZW+XXY=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758009741, + "first_heard": 1757774595, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 3, + "rx_time": 1757851437, + "rx_iso": "2025-09-14T12:03:57Z", + "from_id": "!6c73bf84", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Hängt wohl auch hoch auf dem Dach", + "rssi": -42, + "hop_limit": 3, + "snr": 11.0, + "node": { + "snr": 10.5, + "raw_json": null, + "node_id": "!6c73bf84", + "num": 1819524996, + "short_name": "ts1", + "long_name": "Tegeler See Node 1", + "macaddr": "oN1sc7+E", + "hw_model": "TBEAM", + "role": "CLIENT", + "public_key": "AW0bHoCVF0Yzo3yWx96b8XtA2kNZBQsWRyoQjKKm02A=", + "is_unmessagable": 0, + "is_favorite": null, + "hops_away": 4, + "last_heard": 1758014737, + "first_heard": 1757824664, + "battery_level": 100.0, + "voltage": 4.179, + "channel_utilization": 6.3450003, + "air_util_tx": 0.28575, + "uptime_seconds": 30670, + "position_time": null, + "location_source": "LOC_MANUAL", + "latitude": 52.559872, + "longitude": 13.2907008, + "altitude": 35.0 + } + }, + { + "id": 2, + "rx_time": 1757851276, + "rx_iso": "2025-09-14T12:01:16Z", + "from_id": null, + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Test mit neuer Antenne. Vlt geht ja so mal was raus.", + "rssi": -42, + "hop_limit": 1, + "snr": 11.25, + "node": { + "snr": null, + "raw_json": null, + "node_id": null, + "num": null, + "short_name": null, + "long_name": null, + "macaddr": null, + "hw_model": null, + "role": null, + "public_key": null, + "is_unmessagable": null, + "is_favorite": null, + "hops_away": null, + "last_heard": null, + "first_heard": null, + "battery_level": null, + "voltage": null, + "channel_utilization": null, + "air_util_tx": null, + "uptime_seconds": null, + "position_time": null, + "location_source": null, + "latitude": null, + "longitude": null, + "altitude": null + } + }, + { + "id": 1, + "rx_time": 1757850801, + "rx_iso": "2025-09-14T11:53:21Z", + "from_id": "!194a7351", + "to_id": "^all", + "channel": 0, + "portnum": "TEXT_MESSAGE_APP", + "text": "Noch jemand im ICC heute?", + "rssi": -18, + "hop_limit": 7, + "snr": 11.25, + "node": { + "snr": 10.75, + "raw_json": null, + "node_id": "!194a7351", + "num": 424309585, + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "macaddr": "0p4ZSnNR", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "public_key": "UEsPm45+zsHPgY5SicXaqdhcCKwVCX6+99y4ZWbTKjE=", + "is_unmessagable": 0, + "is_favorite": 1, + "hops_away": 0, + "last_heard": 1758022708, + "first_heard": 1757828307, + "battery_level": 98.0, + "voltage": 4.162, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "uptime_seconds": 325318, + "position_time": 1758001135, + "location_source": "LOC_EXTERNAL", + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0 + } + } +] diff --git a/tests/nodes.json b/tests/nodes.json new file mode 100644 index 0000000..3f2eaf8 --- /dev/null +++ b/tests/nodes.json @@ -0,0 +1,3653 @@ +[ + { + "node_id": "!b03b3b38", + "short_name": "3b38", + "long_name": "Meshtastic 3b38", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 78.0, + "voltage": 3.977, + "last_heard": 1758024330, + "first_heard": 1757829178, + "uptime_seconds": 2531225, + "channel_utilization": 6.7633333, + "air_util_tx": 1.1645555, + "position_time": 1758024330, + "latitude": 52.4550144, + "longitude": 13.4479872, + "altitude": 0.0, + "last_seen_iso": "2025-09-16T12:05:30Z", + "pos_time_iso": "2025-09-16T12:05:30Z" + }, + { + "node_id": "!d1edc388", + "short_name": "ZEN2", + "long_name": "ZEN-Client2", + "hw_model": "T_ECHO", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1758024307, + "first_heard": 1758024307, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T12:05:07Z" + }, + { + "node_id": "!6eec6364", + "short_name": "FR_C", + "long_name": "Frosch/c", + "hw_model": "T_ECHO", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.763, + "last_heard": 1758024305, + "first_heard": 1757827060, + "uptime_seconds": 21547, + "channel_utilization": 0.0, + "air_util_tx": 0.020333333, + "position_time": 1758024305, + "latitude": 52.5180928, + "longitude": 13.5520256, + "altitude": 51.0, + "last_seen_iso": "2025-09-16T12:05:05Z", + "pos_time_iso": "2025-09-16T12:05:05Z" + }, + { + "node_id": "!33602324", + "short_name": "Jan", + "long_name": "Jan SUPREME", + "hw_model": "LILYGO_TBEAM_S3_CORE", + "role": "CLIENT", + "snr": 11.75, + "battery_level": 101.0, + "voltage": 1.539, + "last_heard": 1758024170, + "first_heard": 1757867591, + "uptime_seconds": 287346, + "channel_utilization": 3.1366665, + "air_util_tx": 0.9874167, + "position_time": 1758024170, + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 19.0, + "last_seen_iso": "2025-09-16T12:02:50Z", + "pos_time_iso": "2025-09-16T12:02:50Z" + }, + { + "node_id": "!ef6a21c5", + "short_name": "SEAm", + "long_name": "DMSEA mobil", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": 10.5, + "battery_level": 101.0, + "voltage": 4.207, + "last_heard": 1758024031, + "first_heard": 1757829688, + "uptime_seconds": 42551, + "channel_utilization": 0.465, + "air_util_tx": 0.013194445, + "position_time": 1758024031, + "latitude": 52.4550144, + "longitude": 13.500416, + "altitude": 33.0, + "last_seen_iso": "2025-09-16T12:00:31Z", + "pos_time_iso": "2025-09-16T12:00:31Z" + }, + { + "node_id": "!ea24e0b4", + "short_name": "TWRu", + "long_name": "TWRu-Node", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 101.0, + "voltage": 4.356, + "last_heard": 1758024017, + "first_heard": 1757829609, + "uptime_seconds": 1975851, + "channel_utilization": 4.7633333, + "air_util_tx": 0.73830557, + "position_time": 1758020053, + "latitude": 52.6245888, + "longitude": 13.4815744, + "altitude": 61.0, + "last_seen_iso": "2025-09-16T12:00:17Z", + "pos_time_iso": "2025-09-16T10:54:13Z" + }, + { + "node_id": "!9ee71430", + "short_name": "FiSp", + "long_name": "FireSpark", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 96.0, + "voltage": 4.144, + "last_heard": 1758023883, + "first_heard": 1757838749, + "uptime_seconds": 346359, + "channel_utilization": 0.28, + "air_util_tx": 0.27797222, + "position_time": 1758023883, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 67.0, + "last_seen_iso": "2025-09-16T11:58:03Z", + "pos_time_iso": "2025-09-16T11:58:03Z" + }, + { + "node_id": "!a2ebd35c", + "short_name": "MLBM", + "long_name": "MLB-Mariendorf", + "hw_model": "STATION_G2", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 0.0, + "last_heard": 1758023870, + "first_heard": 1758009572, + "uptime_seconds": 6125, + "channel_utilization": 5.2799997, + "air_util_tx": 1.0125555, + "position_time": 1758023870, + "latitude": 52.4455882, + "longitude": 13.3857503, + "altitude": 56.0, + "last_seen_iso": "2025-09-16T11:57:50Z", + "pos_time_iso": "2025-09-16T11:57:50Z" + }, + { + "node_id": "!0c63e027", + "short_name": "l5ye", + "long_name": "l5yth e027 mf", + "hw_model": "T_ECHO", + "role": "CLIENT_MUTE", + "snr": -16.5, + "battery_level": 101.0, + "voltage": 4.395, + "last_heard": 1758023813, + "first_heard": 1757775015, + "uptime_seconds": 86326, + "channel_utilization": 2.5766666, + "air_util_tx": 0.04061111, + "position_time": 1758023813, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 21.0, + "last_seen_iso": "2025-09-16T11:56:53Z", + "pos_time_iso": "2025-09-16T11:56:53Z" + }, + { + "node_id": "!bcf10936", + "short_name": "0936", + "long_name": "Hopfensender HQ", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 10.25, + "battery_level": 97.0, + "voltage": 4.148, + "last_heard": 1758023735, + "first_heard": 1757833703, + "uptime_seconds": 39435, + "channel_utilization": 4.778333, + "air_util_tx": 0.7001944, + "position_time": 1758023735, + "latitude": 52.5729792, + "longitude": 13.43488, + "altitude": 57.0, + "last_seen_iso": "2025-09-16T11:55:35Z", + "pos_time_iso": "2025-09-16T11:55:35Z" + }, + { + "node_id": "!433e67e8", + "short_name": "FR_W", + "long_name": "Frosch/w", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.25, + "battery_level": 101.0, + "voltage": 4.288, + "last_heard": 1758023599, + "first_heard": 1757819862, + "uptime_seconds": 439202, + "channel_utilization": 0.5, + "air_util_tx": 0.38775, + "position_time": 1758023599, + "latitude": 52.5180928, + "longitude": 13.5520256, + "altitude": 30.0, + "last_seen_iso": "2025-09-16T11:53:19Z", + "pos_time_iso": "2025-09-16T11:53:19Z" + }, + { + "node_id": "!9eeb25ec", + "short_name": "25ec", + "long_name": "Meshtastic 25ec", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758023552, + "first_heard": 1757949314, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758023552, + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 52.0, + "last_seen_iso": "2025-09-16T11:52:32Z", + "pos_time_iso": "2025-09-16T11:52:32Z" + }, + { + "node_id": "!4ed36bd0", + "short_name": "RDM", + "long_name": "Random Man", + "hw_model": "T_DECK", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1758023526, + "first_heard": 1758018235, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758023526, + "latitude": 52.4550144, + "longitude": 13.4479872, + "altitude": 64.0, + "last_seen_iso": "2025-09-16T11:52:06Z", + "pos_time_iso": "2025-09-16T11:52:06Z" + }, + { + "node_id": "!da63e474", + "short_name": "🐧", + "long_name": "belug.de 868MHz", + "hw_model": "LILYGO_TBEAM_S3_CORE", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 100.0, + "voltage": 4.106, + "last_heard": 1758023312, + "first_heard": 1757793513, + "uptime_seconds": 1382519, + "channel_utilization": 0.63166666, + "air_util_tx": 0.04563889, + "position_time": 1758023312, + "latitude": 52.5345, + "longitude": 13.35849, + "altitude": null, + "last_seen_iso": "2025-09-16T11:48:32Z", + "pos_time_iso": "2025-09-16T11:48:32Z" + }, + { + "node_id": "!849c4c24", + "short_name": "TMGG", + "long_name": "TMG green", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.239, + "last_heard": 1758023150, + "first_heard": 1757828747, + "uptime_seconds": 1271664, + "channel_utilization": 6.415, + "air_util_tx": 1.0219444, + "position_time": 1758017058, + "latitude": 52.527104, + "longitude": 13.5462912, + "altitude": 60.0, + "last_seen_iso": "2025-09-16T11:45:50Z", + "pos_time_iso": "2025-09-16T10:04:18Z" + }, + { + "node_id": "!bba83318", + "short_name": "BerF", + "long_name": "Bernau-Friedenstal", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": -13.25, + "battery_level": 101.0, + "voltage": -0.001, + "last_heard": 1758022862, + "first_heard": 1757825270, + "uptime_seconds": 61, + "channel_utilization": 7.01, + "air_util_tx": 0.030944444, + "position_time": 1758022862, + "latitude": 52.6712832, + "longitude": 13.5593984, + "altitude": 50.0, + "last_seen_iso": "2025-09-16T11:41:02Z", + "pos_time_iso": "2025-09-16T11:41:02Z" + }, + { + "node_id": "!6aac99f2", + "short_name": "GW10", + "long_name": "Greifswalder 10", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 11.5, + "battery_level": 101.0, + "voltage": 4.206, + "last_heard": 1758022827, + "first_heard": 1757828430, + "uptime_seconds": 5614074, + "channel_utilization": 4.0916667, + "air_util_tx": 1.1888889, + "position_time": null, + "latitude": 52.529706, + "longitude": 13.426035, + "altitude": 58.0, + "last_seen_iso": "2025-09-16T11:40:27Z" + }, + { + "node_id": "!aafba2a5", + "short_name": "syn1", + "long_name": "I'm syncing ", + "hw_model": "T_ECHO", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 76.0, + "voltage": 3.956, + "last_heard": 1758022806, + "first_heard": 1757849097, + "uptime_seconds": 69542, + "channel_utilization": 0.0, + "air_util_tx": 0.23583335, + "position_time": 1758022806, + "latitude": 52.4468224, + "longitude": 13.39392, + "altitude": 55.0, + "last_seen_iso": "2025-09-16T11:40:06Z", + "pos_time_iso": "2025-09-16T11:40:06Z" + }, + { + "node_id": "!970588c4", + "short_name": "MxHQ", + "long_name": "Max HQ", + "hw_model": "HELTEC_VISION_MASTER_E290", + "role": "CLIENT_MUTE", + "snr": 11.25, + "battery_level": 101.0, + "voltage": 4.506, + "last_heard": 1758022796, + "first_heard": 1757830407, + "uptime_seconds": 66, + "channel_utilization": 1.9966668, + "air_util_tx": 0.012, + "position_time": null, + "latitude": 52.4729555, + "longitude": 13.3166989, + "altitude": 50.0, + "last_seen_iso": "2025-09-16T11:39:56Z" + }, + { + "node_id": "!a0cb1608", + "short_name": "KBV5", + "long_name": "KeinBierVor5", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -9.75, + "battery_level": 83.0, + "voltage": 4.01, + "last_heard": 1758022713, + "first_heard": 1757823622, + "uptime_seconds": 160927, + "channel_utilization": 2.9883332, + "air_util_tx": 0.89416665, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:38:33Z" + }, + { + "node_id": "!194a7351", + "short_name": "l5y7", + "long_name": "l5yth 7351 mf", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 98.0, + "voltage": 4.162, + "last_heard": 1758022708, + "first_heard": 1757828307, + "uptime_seconds": 325318, + "channel_utilization": 1.8983332, + "air_util_tx": 0.016555555, + "position_time": 1758001135, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 39.0, + "last_seen_iso": "2025-09-16T11:38:28Z", + "pos_time_iso": "2025-09-16T05:38:55Z" + }, + { + "node_id": "!433ad740", + "short_name": "TWR3", + "long_name": "TWR3-Node", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758022704, + "first_heard": 1757825041, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758022704, + "latitude": 52.525056, + "longitude": 13.3255168, + "altitude": 34.0, + "last_seen_iso": "2025-09-16T11:38:24Z", + "pos_time_iso": "2025-09-16T11:38:24Z" + }, + { + "node_id": "!da621dbc", + "short_name": "WbXn", + "long_name": "WebXnode", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -12.5, + "battery_level": 101.0, + "voltage": 4.806, + "last_heard": 1758022698, + "first_heard": 1757963288, + "uptime_seconds": 61247, + "channel_utilization": 6.79, + "air_util_tx": 0.92797226, + "position_time": 1758022698, + "latitude": 52.6286848, + "longitude": 13.3332992, + "altitude": 45.0, + "last_seen_iso": "2025-09-16T11:38:18Z", + "pos_time_iso": "2025-09-16T11:38:18Z" + }, + { + "node_id": "!14f7692b", + "short_name": "692b", + "long_name": "Deft0nes 692b", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 90.0, + "voltage": 4.061, + "last_heard": 1758022636, + "first_heard": 1757795817, + "uptime_seconds": 222343, + "channel_utilization": 0.0, + "air_util_tx": 0.06083333, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:37:16Z" + }, + { + "node_id": "!7c5b0920", + "short_name": "FFTB", + "long_name": "Freifunk-Teufelsberg BOT 868", + "hw_model": "HELTEC_V3", + "role": "ROUTER", + "snr": -6.25, + "battery_level": 97.0, + "voltage": 4.149, + "last_heard": 1758022460, + "first_heard": 1757828009, + "uptime_seconds": 43287, + "channel_utilization": 0.58, + "air_util_tx": 1.0519166, + "position_time": 1757946866, + "latitude": 52.49795, + "longitude": 13.24061, + "altitude": 160.0, + "last_seen_iso": "2025-09-16T11:34:20Z", + "pos_time_iso": "2025-09-15T14:34:26Z" + }, + { + "node_id": "!43b6e530", + "short_name": "FFSR", + "long_name": "Freifunk-Scherer BOT 868", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -12.0, + "battery_level": null, + "voltage": null, + "last_heard": 1758022410, + "first_heard": 1757832883, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758022410, + "latitude": 52.5481294, + "longitude": 13.3669095, + "altitude": 0.0, + "last_seen_iso": "2025-09-16T11:33:30Z", + "pos_time_iso": "2025-09-16T11:33:30Z" + }, + { + "node_id": "!e50b45d8", + "short_name": "45d8", + "long_name": "Meshtastic 45d8", + "hw_model": "T_ECHO", + "role": "CLIENT", + "snr": -6.0, + "battery_level": 71.0, + "voltage": 3.902, + "last_heard": 1758022290, + "first_heard": 1757780400, + "uptime_seconds": 183698, + "channel_utilization": 1.3233333, + "air_util_tx": 0.41305557, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:31:30Z" + }, + { + "node_id": "!db2b13fc", + "short_name": "SO36", + "long_name": "", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1758022244, + "first_heard": 1757828830, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:30:44Z" + }, + { + "node_id": "!9ea0c780", + "short_name": "nguE", + "long_name": "ngud E Mobile", + "hw_model": "HELTEC_WIRELESS_PAPER", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 58.0, + "voltage": 3.79, + "last_heard": 1758022219, + "first_heard": 1757808007, + "uptime_seconds": 61, + "channel_utilization": 6.225, + "air_util_tx": 0.03836111, + "position_time": 1758004811, + "latitude": 52.5369344, + "longitude": 13.484032, + "altitude": 66.0, + "last_seen_iso": "2025-09-16T11:30:19Z", + "pos_time_iso": "2025-09-16T06:40:11Z" + }, + { + "node_id": "!44968f61", + "short_name": "PMRB", + "long_name": "PotatoMesh Rummelsburg MF", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 10.25, + "battery_level": 101.0, + "voltage": -0.001, + "last_heard": 1758022167, + "first_heard": 1757827764, + "uptime_seconds": 323458, + "channel_utilization": 6.4783335, + "air_util_tx": 1.0706111, + "position_time": 1757698889, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 50.0, + "last_seen_iso": "2025-09-16T11:29:27Z", + "pos_time_iso": "2025-09-12T17:41:29Z" + }, + { + "node_id": "!9ea1bea4", + "short_name": "zwgl", + "long_name": "Zwanglos Boddin", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 4.325, + "last_heard": 1758022021, + "first_heard": 1757838418, + "uptime_seconds": 1300231, + "channel_utilization": 0.0, + "air_util_tx": 0.0, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:27:01Z" + }, + { + "node_id": "!fa6baed0", + "short_name": "TWR1", + "long_name": "TWR1-Nord", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.5, + "battery_level": 97.0, + "voltage": 4.152, + "last_heard": 1758021986, + "first_heard": 1757811714, + "uptime_seconds": 14463, + "channel_utilization": 5.741667, + "air_util_tx": 0.31316668, + "position_time": 1758021986, + "latitude": 52.604928, + "longitude": 13.3341184, + "altitude": 65.0, + "last_seen_iso": "2025-09-16T11:26:26Z", + "pos_time_iso": "2025-09-16T11:26:26Z" + }, + { + "node_id": "!a0cc1800", + "short_name": "SIXB", + "long_name": "bea22.mt.sixtopia.net", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.25, + "battery_level": 101.0, + "voltage": 4.267, + "last_heard": 1758021966, + "first_heard": 1757819160, + "uptime_seconds": 72070, + "channel_utilization": 2.86, + "air_util_tx": 0.058916666, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:26:06Z" + }, + { + "node_id": "!d42e18e8", + "short_name": "RRun", + "long_name": "Road-Runner", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 94.0, + "voltage": 4.106, + "last_heard": 1758021865, + "first_heard": 1757831063, + "uptime_seconds": 452482, + "channel_utilization": 5.725, + "air_util_tx": 0.9239167, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:24:25Z" + }, + { + "node_id": "!f9b0938c", + "short_name": "Ed-1", + "long_name": "Y35RO Plänterwald ", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "snr": 11.25, + "battery_level": 101.0, + "voltage": 4.264, + "last_heard": 1758021840, + "first_heard": 1757803142, + "uptime_seconds": 91873, + "channel_utilization": 3.4916666, + "air_util_tx": 0.6040555, + "position_time": 1758021840, + "latitude": 52.4550144, + "longitude": 13.4479872, + "altitude": 36.0, + "last_seen_iso": "2025-09-16T11:24:00Z", + "pos_time_iso": "2025-09-16T11:24:00Z" + }, + { + "node_id": "!db29aa78", + "short_name": "_blx", + "long_name": "DB0BLX", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.25, + "battery_level": 101.0, + "voltage": 4.229, + "last_heard": 1758021697, + "first_heard": 1757829484, + "uptime_seconds": 501767, + "channel_utilization": 7.5833335, + "air_util_tx": 0.91802776, + "position_time": 1758021697, + "latitude": 52.4550144, + "longitude": 13.3431296, + "altitude": null, + "last_seen_iso": "2025-09-16T11:21:37Z", + "pos_time_iso": "2025-09-16T11:21:37Z" + }, + { + "node_id": "!16ced364", + "short_name": "Pat", + "long_name": "Pat HQ BS", + "hw_model": "STATION_G2", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1758021676, + "first_heard": 1757830983, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:21:16Z" + }, + { + "node_id": "!c0c32348", + "short_name": "CooP", + "long_name": "Cooper", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 10.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758021624, + "first_heard": 1757863184, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758021624, + "latitude": 52.5467648, + "longitude": 13.4873088, + "altitude": 365.0, + "last_seen_iso": "2025-09-16T11:20:24Z", + "pos_time_iso": "2025-09-16T11:20:24Z" + }, + { + "node_id": "!abbdf3f7", + "short_name": "f3f7", + "long_name": "Smobi", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 97.0, + "voltage": 4.16, + "last_heard": 1758021608, + "first_heard": 1757800536, + "uptime_seconds": 107233, + "channel_utilization": 0.5333333, + "air_util_tx": 0.017638888, + "position_time": 1758021608, + "latitude": 52.4550144, + "longitude": 13.500416, + "altitude": 39.0, + "last_seen_iso": "2025-09-16T11:20:08Z", + "pos_time_iso": "2025-09-16T11:20:08Z" + }, + { + "node_id": "!b03d89fc", + "short_name": "SEAo", + "long_name": "DMSEA Oberschöneweide", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758021431, + "first_heard": 1757827023, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758020801, + "latitude": 52.4659233, + "longitude": 13.5175972, + "altitude": null, + "last_seen_iso": "2025-09-16T11:17:11Z", + "pos_time_iso": "2025-09-16T11:06:41Z" + }, + { + "node_id": "!4eb3bc8d", + "short_name": "Alex", + "long_name": "Alex /p1 (T-Echo)", + "hw_model": "T_ECHO", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.976, + "last_heard": 1758021235, + "first_heard": 1757798660, + "uptime_seconds": 684195, + "channel_utilization": 4.9083333, + "air_util_tx": 0.009555556, + "position_time": 1758021235, + "latitude": 52.5074432, + "longitude": 13.3431296, + "altitude": 25.0, + "last_seen_iso": "2025-09-16T11:13:55Z", + "pos_time_iso": "2025-09-16T11:13:55Z" + }, + { + "node_id": "!5d9c7329", + "short_name": "mowM", + "long_name": "mirkosw /MF", + "hw_model": "T_ECHO", + "role": "CLIENT", + "snr": 11.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758021167, + "first_heard": 1757769553, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758021167, + "latitude": 52.4629571, + "longitude": 13.5138746, + "altitude": 48.0, + "last_seen_iso": "2025-09-16T11:12:47Z", + "pos_time_iso": "2025-09-16T11:12:47Z" + }, + { + "node_id": "!0910c922", + "short_name": "c922", + "long_name": "Meshtastic c922", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": -12.75, + "battery_level": 67.0, + "voltage": 3.866, + "last_heard": 1758020943, + "first_heard": 1757830191, + "uptime_seconds": 126027, + "channel_utilization": 8.663333, + "air_util_tx": 0.8109445, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T11:09:03Z" + }, + { + "node_id": "!db2b2418", + "short_name": "AmHe", + "long_name": "Amon Hen", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -12.5, + "battery_level": 101.0, + "voltage": 4.468, + "last_heard": 1758020940, + "first_heard": 1757830524, + "uptime_seconds": 151156, + "channel_utilization": 3.4, + "air_util_tx": 1.1215278, + "position_time": 1758020940, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 46.0, + "last_seen_iso": "2025-09-16T11:09:00Z", + "pos_time_iso": "2025-09-16T11:09:00Z" + }, + { + "node_id": "!b03c97a4", + "short_name": "BLN1", + "long_name": "BLNo1 Fhain Süd ", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 12.0, + "battery_level": null, + "voltage": null, + "last_heard": 1758020843, + "first_heard": 1757831824, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758020843, + "latitude": 52.502528, + "longitude": 13.4561792, + "altitude": 38.0, + "last_seen_iso": "2025-09-16T11:07:23Z", + "pos_time_iso": "2025-09-16T11:07:23Z" + }, + { + "node_id": "!5bcdae60", + "short_name": "Euv", + "long_name": "Euv Solar1", + "hw_model": "SEEED_SOLAR_NODE", + "role": "ROUTER_LATE", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.218, + "last_heard": 1758020808, + "first_heard": 1757795030, + "uptime_seconds": 82400, + "channel_utilization": 4.2083335, + "air_util_tx": 1.2656945, + "position_time": 1758020808, + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 53.0, + "last_seen_iso": "2025-09-16T11:06:48Z", + "pos_time_iso": "2025-09-16T11:06:48Z" + }, + { + "node_id": "!b03d7b74", + "short_name": "unb2", + "long_name": "unblau-2", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 4.291, + "last_heard": 1758020706, + "first_heard": 1757829896, + "uptime_seconds": 2204856, + "channel_utilization": 1.8100001, + "air_util_tx": 0.4839722, + "position_time": 1758016692, + "latitude": 52.547584, + "longitude": 13.3029888, + "altitude": 0.0, + "last_seen_iso": "2025-09-16T11:05:06Z", + "pos_time_iso": "2025-09-16T09:58:12Z" + }, + { + "node_id": "!a2ed9ab0", + "short_name": "9ab0", + "long_name": "Meshtastic 9ab0", + "hw_model": "UNSET", + "role": "CLIENT", + "snr": -14.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758020491, + "first_heard": 1757773995, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758020491, + "latitude": 52.5635584, + "longitude": 13.3771264, + "altitude": 82.0, + "last_seen_iso": "2025-09-16T11:01:31Z", + "pos_time_iso": "2025-09-16T11:01:31Z" + }, + { + "node_id": "!f6b3f9bf", + "short_name": "TGT1", + "long_name": "Hansaplatz Tiergarten", + "hw_model": "SEEED_SOLAR_NODE", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758020037, + "first_heard": 1757802296, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758020037, + "latitude": 52.5074432, + "longitude": 13.3431296, + "altitude": 10.0, + "last_seen_iso": "2025-09-16T10:53:57Z", + "pos_time_iso": "2025-09-16T10:53:57Z" + }, + { + "node_id": "!92476202", + "short_name": "WMDF", + "long_name": "WMDF/RAK", + "hw_model": "RAK2560", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758019484, + "first_heard": 1757799337, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T10:44:44Z" + }, + { + "node_id": "!43b6f328", + "short_name": "775", + "long_name": "BF775 ", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.25, + "battery_level": 54.0, + "voltage": 3.753, + "last_heard": 1758018963, + "first_heard": 1757774419, + "uptime_seconds": 61, + "channel_utilization": 4.62, + "air_util_tx": 0.024916666, + "position_time": 1758018963, + "latitude": 52.4588781, + "longitude": 13.3774764, + "altitude": 51.0, + "last_seen_iso": "2025-09-16T10:36:03Z", + "pos_time_iso": "2025-09-16T10:36:03Z" + }, + { + "node_id": "!c0c321b4", + "short_name": "AFCK", + "long_name": "AufAckse", + "hw_model": "TBEAM", + "role": "ROUTER", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 0.0, + "last_heard": 1758018868, + "first_heard": 1757976245, + "uptime_seconds": 61, + "channel_utilization": 8.83, + "air_util_tx": 0.043027777, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T10:34:28Z" + }, + { + "node_id": "!4359d8f8", + "short_name": "fax", + "long_name": "fantastix", + "hw_model": "HELTEC_WIRELESS_PAPER", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 4.237, + "last_heard": 1758018594, + "first_heard": 1757832819, + "uptime_seconds": 61, + "channel_utilization": 22.18, + "air_util_tx": 0.049666665, + "position_time": 1757972208, + "latitude": 52.43278, + "longitude": 13.47092, + "altitude": 50.0, + "last_seen_iso": "2025-09-16T10:29:54Z", + "pos_time_iso": "2025-09-15T21:36:48Z" + }, + { + "node_id": "!45a351b8", + "short_name": "DLS", + "long_name": "NDB Luebars 📡 Replacement", + "hw_model": "HELTEC_VISION_MASTER_T190", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758018339, + "first_heard": 1757809531, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": 52.6139, + "longitude": 13.3636, + "altitude": 70.0, + "last_seen_iso": "2025-09-16T10:25:39Z" + }, + { + "node_id": "!7a6d877c", + "short_name": "877c", + "long_name": "【ツ】 877c", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1758018256, + "first_heard": 1757858681, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T10:24:16Z" + }, + { + "node_id": "!177cfa26", + "short_name": "lun1", + "long_name": "Lunet One", + "hw_model": "T_ECHO", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.847, + "last_heard": 1758017722, + "first_heard": 1757768167, + "uptime_seconds": 1046205, + "channel_utilization": 1.0316666, + "air_util_tx": 0.021694444, + "position_time": 1758000320, + "latitude": 52.5021165, + "longitude": 13.5000622, + "altitude": 61.0, + "last_seen_iso": "2025-09-16T10:15:22Z", + "pos_time_iso": "2025-09-16T05:25:20Z" + }, + { + "node_id": "!90a0ecac", + "short_name": "MxSc", + "long_name": "Max Screen", + "hw_model": "SENSECAP_INDICATOR", + "role": "CLIENT_MUTE", + "snr": 11.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758017217, + "first_heard": 1757822815, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T10:06:57Z" + }, + { + "node_id": "!45edbd08", + "short_name": "SOL1", + "long_name": "SOL1-Karow☀️", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 97.0, + "voltage": 4.15, + "last_heard": 1758016680, + "first_heard": 1757825874, + "uptime_seconds": 5900335, + "channel_utilization": 5.335, + "air_util_tx": 0.76850003, + "position_time": null, + "latitude": 52.6241792, + "longitude": 13.481984, + "altitude": 62.0, + "last_seen_iso": "2025-09-16T09:58:00Z" + }, + { + "node_id": "!b03ceb58", + "short_name": "base", + "long_name": "c-base.org 868MHz", + "hw_model": "HELTEC_WIRELESS_TRACKER", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758016262, + "first_heard": 1757827634, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758016262, + "latitude": 52.512859, + "longitude": 13.420156, + "altitude": 57.0, + "last_seen_iso": "2025-09-16T09:51:02Z", + "pos_time_iso": "2025-09-16T09:51:02Z" + }, + { + "node_id": "!43561304", + "short_name": "NBS", + "long_name": "NBS14 Base Station", + "hw_model": "HELTEC_WIRELESS_PAPER", + "role": "CLIENT", + "snr": 11.5, + "battery_level": 77.0, + "voltage": 3.966, + "last_heard": 1758016068, + "first_heard": 1757820798, + "uptime_seconds": 3175412, + "channel_utilization": 0.75, + "air_util_tx": 1.4291389, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:47:48Z" + }, + { + "node_id": "!068e1ebc", + "short_name": "1ebc", + "long_name": "Meshtastic 1ebc", + "hw_model": "UNSET", + "role": "CLIENT", + "snr": 10.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758015995, + "first_heard": 1757829634, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758015980, + "latitude": 52.5309528, + "longitude": 13.40785, + "altitude": 122.0, + "last_seen_iso": "2025-09-16T09:46:35Z", + "pos_time_iso": "2025-09-16T09:46:20Z" + }, + { + "node_id": "!9c93a2df", + "short_name": "xaRa", + "long_name": "xayax RAK", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 69.0, + "voltage": 3.884, + "last_heard": 1758015870, + "first_heard": 1757799869, + "uptime_seconds": 243332, + "channel_utilization": 0.35833332, + "air_util_tx": 0.7733611, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:44:30Z" + }, + { + "node_id": "!fa6bb504", + "short_name": "TWR2", + "long_name": "TWR2-Zentrum", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.205, + "last_heard": 1758015712, + "first_heard": 1757831988, + "uptime_seconds": 2512816, + "channel_utilization": 8.266666, + "air_util_tx": 0.44, + "position_time": null, + "latitude": 52.5254656, + "longitude": 13.3251072, + "altitude": 82.0, + "last_seen_iso": "2025-09-16T09:41:52Z" + }, + { + "node_id": "!d224b9ee", + "short_name": "b2", + "long_name": "Bobby 👾", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.283, + "last_heard": 1758015408, + "first_heard": 1757808116, + "uptime_seconds": 218123, + "channel_utilization": 1.2483333, + "air_util_tx": 0.0078055556, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:36:48Z" + }, + { + "node_id": "!01bb88db", + "short_name": "GSBM", + "long_name": "Gedenkstätte Berliner Mauer", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 10.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758015366, + "first_heard": 1757820966, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:36:06Z" + }, + { + "node_id": "!da635e24", + "short_name": "LAN", + "long_name": "LAN (\"ping\"/SF)", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.203, + "last_heard": 1758015344, + "first_heard": 1757820949, + "uptime_seconds": 61, + "channel_utilization": 16.29, + "air_util_tx": 0.012527777, + "position_time": 1757921223, + "latitude": 52.5343, + "longitude": 13.4996, + "altitude": null, + "last_seen_iso": "2025-09-16T09:35:44Z", + "pos_time_iso": "2025-09-15T07:27:03Z" + }, + { + "node_id": "!102cb4b8", + "short_name": "JAN", + "long_name": "Jan T114", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1758015258, + "first_heard": 1757877459, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:34:18Z" + }, + { + "node_id": "!6c73bf84", + "short_name": "ts1", + "long_name": "Tegeler See Node 1", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 100.0, + "voltage": 4.179, + "last_heard": 1758014737, + "first_heard": 1757824664, + "uptime_seconds": 30670, + "channel_utilization": 6.3450003, + "air_util_tx": 0.28575, + "position_time": null, + "latitude": 52.559872, + "longitude": 13.2907008, + "altitude": 35.0, + "last_seen_iso": "2025-09-16T09:25:37Z" + }, + { + "node_id": "!459d6743", + "short_name": "FiCr", + "long_name": "FireCracker", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 94.0, + "voltage": 4.119, + "last_heard": 1758014471, + "first_heard": 1757766762, + "uptime_seconds": 135194, + "channel_utilization": 7.666667, + "air_util_tx": 0.43, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:21:11Z" + }, + { + "node_id": "!ba653ae8", + "short_name": "3ae8", + "long_name": "Meshtastic 3ae8", + "hw_model": "HELTEC_V3", + "role": "ROUTER", + "snr": -15.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758014372, + "first_heard": 1757795468, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758014358, + "latitude": 52.6385152, + "longitude": 13.631488, + "altitude": 70.0, + "last_seen_iso": "2025-09-16T09:19:32Z", + "pos_time_iso": "2025-09-16T09:19:18Z" + }, + { + "node_id": "!b03bd350", + "short_name": "d350", + "long_name": "Meshtastic d350", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.319, + "last_heard": 1758014231, + "first_heard": 1757830628, + "uptime_seconds": 858270, + "channel_utilization": 11.208333, + "air_util_tx": 1.0202223, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:17:11Z" + }, + { + "node_id": "!fe794c32", + "short_name": "4c32", + "long_name": "Meshtastic 4c32", + "hw_model": "HELTEC_MESH_POCKET", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 58.0, + "voltage": 3.715, + "last_heard": 1758013994, + "first_heard": 1757830385, + "uptime_seconds": 428921, + "channel_utilization": 1.8333333, + "air_util_tx": 0.5350556, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:13:14Z" + }, + { + "node_id": "!e138f77e", + "short_name": "PN", + "long_name": "Pankow-Nord", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1758013798, + "first_heard": 1757808582, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": 52.6123008, + "longitude": 13.3955584, + "altitude": 45.0, + "last_seen_iso": "2025-09-16T09:09:58Z" + }, + { + "node_id": "!ca6804d1", + "short_name": "Pckd", + "long_name": "Meshpocket", + "hw_model": "HELTEC_MESH_POCKET", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 96.0, + "voltage": 4.277, + "last_heard": 1758013494, + "first_heard": 1758004687, + "uptime_seconds": 1426575, + "channel_utilization": 1.8383334, + "air_util_tx": 0.8704722, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T09:04:54Z" + }, + { + "node_id": "!9eecf3c0", + "short_name": "WT", + "long_name": "WalkieTextie", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.266, + "last_heard": 1758012935, + "first_heard": 1757808022, + "uptime_seconds": 141388, + "channel_utilization": 0.0, + "air_util_tx": 0.04994444, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T08:55:35Z" + }, + { + "node_id": "!3addea0f", + "short_name": "BHMS", + "long_name": "BLN Hdf Stat", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758012691, + "first_heard": 1757796687, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T08:51:31Z" + }, + { + "node_id": "!db2b23f4", + "short_name": "Eagl", + "long_name": "Gwaihir", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.25, + "battery_level": 101.0, + "voltage": 4.235, + "last_heard": 1758012346, + "first_heard": 1757822402, + "uptime_seconds": 52420, + "channel_utilization": 3.4016664, + "air_util_tx": 1.0981389, + "position_time": 1758012332, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 41.0, + "last_seen_iso": "2025-09-16T08:45:46Z", + "pos_time_iso": "2025-09-16T08:45:32Z" + }, + { + "node_id": "!f1f67380", + "short_name": "ULLL", + "long_name": "ULLL", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 91.0, + "voltage": 4.072, + "last_heard": 1758011782, + "first_heard": 1757808552, + "uptime_seconds": 1578588, + "channel_utilization": 12.368334, + "air_util_tx": 0.55258334, + "position_time": null, + "latitude": 52.5156352, + "longitude": 13.3251072, + "altitude": null, + "last_seen_iso": "2025-09-16T08:36:22Z" + }, + { + "node_id": "!3dd7fd1e", + "short_name": "nguT", + "long_name": "ngud T", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 100.0, + "voltage": 4.226, + "last_heard": 1758011510, + "first_heard": 1757829747, + "uptime_seconds": 19508, + "channel_utilization": 9.521667, + "air_util_tx": 0.9995833, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T08:31:50Z" + }, + { + "node_id": "!6e11aaed", + "short_name": "ARSH", + "long_name": "Marschi", + "hw_model": "HELTEC_MESH_POCKET", + "role": "CLIENT_MUTE", + "snr": 11.25, + "battery_level": 66.0, + "voltage": 3.803, + "last_heard": 1758011126, + "first_heard": 1757954437, + "uptime_seconds": 672827, + "channel_utilization": 3.3166666, + "air_util_tx": 0.022583332, + "position_time": 1758011105, + "latitude": 52.527104, + "longitude": 13.4545408, + "altitude": 50.0, + "last_seen_iso": "2025-09-16T08:25:26Z", + "pos_time_iso": "2025-09-16T08:25:05Z" + }, + { + "node_id": "!6c73edec", + "short_name": "SQ9Y", + "long_name": "SQ9PQL-LY", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758010908, + "first_heard": 1758005281, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758010908, + "latitude": 52.5193216, + "longitude": 13.4295552, + "altitude": 139.0, + "last_seen_iso": "2025-09-16T08:21:48Z", + "pos_time_iso": "2025-09-16T08:21:48Z" + }, + { + "node_id": "!ba60638c", + "short_name": "638c", + "long_name": "Meshtastic 638c", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 22.0, + "voltage": 3.445, + "last_heard": 1758010715, + "first_heard": 1757821860, + "uptime_seconds": 205139, + "channel_utilization": 1.435, + "air_util_tx": 0.014333334, + "position_time": 1758010715, + "latitude": 52.5074432, + "longitude": 13.6052736, + "altitude": 57.0, + "last_seen_iso": "2025-09-16T08:18:35Z", + "pos_time_iso": "2025-09-16T08:18:35Z" + }, + { + "node_id": "!90520695", + "short_name": "FuLo", + "long_name": "Funklochfüller", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1758010592, + "first_heard": 1757835032, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758010592, + "latitude": 52.4550144, + "longitude": 13.500416, + "altitude": 37.0, + "last_seen_iso": "2025-09-16T08:16:32Z", + "pos_time_iso": "2025-09-16T08:16:32Z" + }, + { + "node_id": "!a0cc1394", + "short_name": "KBV4", + "long_name": "KeinBierVor4", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 96.0, + "voltage": 4.143, + "last_heard": 1758010569, + "first_heard": 1757864736, + "uptime_seconds": 136967, + "channel_utilization": 2.6966667, + "air_util_tx": 0.51630557, + "position_time": 1758010569, + "latitude": 52.6123008, + "longitude": 13.3431296, + "altitude": 45.0, + "last_seen_iso": "2025-09-16T08:16:09Z", + "pos_time_iso": "2025-09-16T08:16:09Z" + }, + { + "node_id": "!dc6e4013", + "short_name": "Kn5S", + "long_name": "Kein5Stein 4013 P", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1758010085, + "first_heard": 1757825108, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1758010072, + "latitude": 52.4636282, + "longitude": 13.3223541, + "altitude": 50.0, + "last_seen_iso": "2025-09-16T08:08:05Z", + "pos_time_iso": "2025-09-16T08:07:52Z" + }, + { + "node_id": "!5d823fb1", + "short_name": "3fb1", + "long_name": "SoswB", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 10.5, + "battery_level": null, + "voltage": null, + "last_heard": 1758009741, + "first_heard": 1757774595, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T08:02:21Z" + }, + { + "node_id": "!8d36a17d", + "short_name": "TPTS", + "long_name": "teapot418 Station", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 12.0, + "battery_level": 97.0, + "voltage": 4.158, + "last_heard": 1758008973, + "first_heard": 1757778153, + "uptime_seconds": 137781, + "channel_utilization": 4.8, + "air_util_tx": 0.5290556, + "position_time": 1758008973, + "latitude": 52.5565952, + "longitude": 13.3726208, + "altitude": 42.0, + "last_seen_iso": "2025-09-16T07:49:33Z", + "pos_time_iso": "2025-09-16T07:49:33Z" + }, + { + "node_id": "!1d60dd3c", + "short_name": "FFZW", + "long_name": "Freifunk-Zwingli BOT 868", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "snr": 11.5, + "battery_level": 98.0, + "voltage": 4.164, + "last_heard": 1758007923, + "first_heard": 1757579680, + "uptime_seconds": 29060, + "channel_utilization": 5.3433332, + "air_util_tx": 0.82975, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T07:32:03Z" + }, + { + "node_id": "!b03ca90c", + "short_name": "tnvr", + "long_name": "Tarnover", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": 11.25, + "battery_level": 95.0, + "voltage": 4.124, + "last_heard": 1758007701, + "first_heard": 1757813299, + "uptime_seconds": 1286952, + "channel_utilization": 1.7483333, + "air_util_tx": 0.0076666665, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T07:28:21Z" + }, + { + "node_id": "!9ea0bcbc", + "short_name": "bcbc", + "long_name": "Meshtastic bcbc", + "hw_model": "HELTEC_WIRELESS_PAPER", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1758007003, + "first_heard": 1757872713, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T07:16:43Z" + }, + { + "node_id": "!6c740610", + "short_name": "🦄", + "long_name": "IDDQD 10435", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 100.0, + "voltage": 4.15, + "last_heard": 1758006481, + "first_heard": 1758000812, + "uptime_seconds": 16503, + "channel_utilization": 1.5616666, + "air_util_tx": 0.23580554, + "position_time": 1758000717, + "latitude": 52.54, + "longitude": 13.41, + "altitude": null, + "last_seen_iso": "2025-09-16T07:08:01Z", + "pos_time_iso": "2025-09-16T05:31:57Z" + }, + { + "node_id": "!a6683ea5", + "short_name": "🏞", + "long_name": "sitnchill", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 93.0, + "voltage": 4.101, + "last_heard": 1758004291, + "first_heard": 1757820684, + "uptime_seconds": 202779, + "channel_utilization": 2.4883335, + "air_util_tx": 0.36124998, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T06:31:31Z" + }, + { + "node_id": "!b6428bf9", + "short_name": "WB", + "long_name": "W-Base", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 11.25, + "battery_level": 72.0, + "voltage": 3.916, + "last_heard": 1758003689, + "first_heard": 1757809702, + "uptime_seconds": 67406, + "channel_utilization": 3.486667, + "air_util_tx": 1.0410833, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T06:21:29Z" + }, + { + "node_id": "!ed6a8dc9", + "short_name": "PTA1", + "long_name": "K4PUT techo1", + "hw_model": "T_ECHO", + "role": "CLIENT", + "snr": -13.0, + "battery_level": 101.0, + "voltage": 4.765, + "last_heard": 1758001946, + "first_heard": 1757813123, + "uptime_seconds": 75491, + "channel_utilization": 2.4483333, + "air_util_tx": 0.63211113, + "position_time": 1758001946, + "latitude": 52.4550144, + "longitude": 13.3955584, + "altitude": 77.0, + "last_seen_iso": "2025-09-16T05:52:26Z", + "pos_time_iso": "2025-09-16T05:52:26Z" + }, + { + "node_id": "!02788f81", + "short_name": "HanS", + "long_name": "Meshtastic 8f81", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 58.0, + "voltage": 3.877, + "last_heard": 1758001632, + "first_heard": 1758001632, + "uptime_seconds": 471594, + "channel_utilization": 3.7566667, + "air_util_tx": 0.061694447, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T05:47:12Z" + }, + { + "node_id": "!849a8ba4", + "short_name": "MGN1", + "long_name": "Magnus 1", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 101.0, + "voltage": 4.201, + "last_heard": 1758001403, + "first_heard": 1757829564, + "uptime_seconds": 740673, + "channel_utilization": 0.0, + "air_util_tx": 0.025305556, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T05:43:23Z" + }, + { + "node_id": "!af51a025", + "short_name": "Mry0", + "long_name": "Mry BaseStation", + "hw_model": "SEEED_SOLAR_NODE", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 65.0, + "voltage": 3.846, + "last_heard": 1758001298, + "first_heard": 1757843714, + "uptime_seconds": 192440, + "channel_utilization": 1.3983333, + "air_util_tx": 0.6596111, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T05:41:38Z" + }, + { + "node_id": "!849a8b90", + "short_name": "📶", + "long_name": "bert", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -12.75, + "battery_level": 101.0, + "voltage": 4.274, + "last_heard": 1758001165, + "first_heard": 1757950681, + "uptime_seconds": 56369, + "channel_utilization": 10.768333, + "air_util_tx": 1.1604723, + "position_time": 1758001165, + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 48.0, + "last_seen_iso": "2025-09-16T05:39:25Z", + "pos_time_iso": "2025-09-16T05:39:25Z" + }, + { + "node_id": "!e80cda12", + "short_name": "mowW", + "long_name": "mirkosw /pWisMeshTag", + "hw_model": "WISMESH_TAG", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 94.0, + "voltage": 4.114, + "last_heard": 1758000138, + "first_heard": 1757797822, + "uptime_seconds": 66, + "channel_utilization": 3.01, + "air_util_tx": 0.014333334, + "position_time": 1758000127, + "latitude": 52.4725355, + "longitude": 13.3700968, + "altitude": -39.0, + "last_seen_iso": "2025-09-16T05:22:18Z", + "pos_time_iso": "2025-09-16T05:22:07Z" + }, + { + "node_id": "!a0cc2af8", + "short_name": "2af8", + "long_name": "Meshtastic 2af8", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -14.5, + "battery_level": 76.0, + "voltage": 3.958, + "last_heard": 1757999642, + "first_heard": 1757817531, + "uptime_seconds": 71724, + "channel_utilization": 0.0, + "air_util_tx": 0.5922222, + "position_time": 1757999631, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 61.0, + "last_seen_iso": "2025-09-16T05:14:02Z", + "pos_time_iso": "2025-09-16T05:13:51Z" + }, + { + "node_id": "!18de8f57", + "short_name": "TWR4", + "long_name": "TWR4-Node", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757999530, + "first_heard": 1757826734, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T05:12:10Z" + }, + { + "node_id": "!2b292b2c", + "short_name": "RüP", + "long_name": "Rüdesheimer Platz", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757999468, + "first_heard": 1757970516, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757999468, + "latitude": 52.4731107, + "longitude": 13.3152098, + "altitude": 61.0, + "last_seen_iso": "2025-09-16T05:11:08Z", + "pos_time_iso": "2025-09-16T05:11:08Z" + }, + { + "node_id": "!b1fa2b07", + "short_name": "FROG", + "long_name": "Frosch/p", + "hw_model": "T_ECHO", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 4.752, + "last_heard": 1757998632, + "first_heard": 1757911631, + "uptime_seconds": 122785, + "channel_utilization": 2.385, + "air_util_tx": 0.038000003, + "position_time": 1757998630, + "latitude": 52.518912, + "longitude": 13.5512064, + "altitude": 68.0, + "last_seen_iso": "2025-09-16T04:57:12Z", + "pos_time_iso": "2025-09-16T04:57:10Z" + }, + { + "node_id": "!9eecb2fc", + "short_name": "scf1", + "long_name": "smartCityFarm-eV-greenhouse", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.273, + "last_heard": 1757998168, + "first_heard": 1757798528, + "uptime_seconds": 573904, + "channel_utilization": 0.2866667, + "air_util_tx": 0.8055833, + "position_time": 1757998157, + "latitude": 52.4730368, + "longitude": 13.4660096, + "altitude": 43.0, + "last_seen_iso": "2025-09-16T04:49:28Z", + "pos_time_iso": "2025-09-16T04:49:17Z" + }, + { + "node_id": "!9c56b631", + "short_name": "KatS", + "long_name": "KatSComm", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 74.0, + "voltage": 3.936, + "last_heard": 1757997367, + "first_heard": 1757824568, + "uptime_seconds": 637262, + "channel_utilization": 3.8866665, + "air_util_tx": 0.86419445, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T04:36:07Z" + }, + { + "node_id": "!6c7311ec", + "short_name": "ts2", + "long_name": "Tegeler See Node 2", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": -14.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757997350, + "first_heard": 1757824323, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T04:35:50Z" + }, + { + "node_id": "!25c2e7dc", + "short_name": "e7dc", + "long_name": "Julia Kløckchain", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757996090, + "first_heard": 1757781280, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757996090, + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 50.0, + "last_seen_iso": "2025-09-16T04:14:50Z", + "pos_time_iso": "2025-09-16T04:14:50Z" + }, + { + "node_id": "!a0cc6904", + "short_name": "Kdû", + "long_name": "Khazad-dûm", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.5, + "battery_level": 4.0, + "voltage": 3.195, + "last_heard": 1757992840, + "first_heard": 1757819079, + "uptime_seconds": 154899, + "channel_utilization": 0.7366667, + "air_util_tx": 0.7919166, + "position_time": 1757987158, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 57.0, + "last_seen_iso": "2025-09-16T03:20:40Z", + "pos_time_iso": "2025-09-16T01:45:58Z" + }, + { + "node_id": "!9e17349d", + "short_name": "TPT2", + "long_name": "teapot418 Mobile 2", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 4.137, + "last_heard": 1757991656, + "first_heard": 1757842651, + "uptime_seconds": 137360, + "channel_utilization": 0.5733334, + "air_util_tx": 0.0048333337, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T03:00:56Z" + }, + { + "node_id": "!d2545511", + "short_name": "pix", + "long_name": "knapix", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": 10.25, + "battery_level": 101.0, + "voltage": 4.177, + "last_heard": 1757989799, + "first_heard": 1757825026, + "uptime_seconds": 65238, + "channel_utilization": 4.6466665, + "air_util_tx": 0.032055557, + "position_time": 1757989799, + "latitude": 52.4419072, + "longitude": 13.4610944, + "altitude": 67.0, + "last_seen_iso": "2025-09-16T02:29:59Z", + "pos_time_iso": "2025-09-16T02:29:59Z" + }, + { + "node_id": "!9ee70ed0", + "short_name": "AAMB", + "long_name": "AufAckse MB", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 0.0, + "voltage": 3.09, + "last_heard": 1757988219, + "first_heard": 1757924327, + "uptime_seconds": 29115, + "channel_utilization": 6.14, + "air_util_tx": 0.8681667, + "position_time": 1757968452, + "latitude": 52.6319616, + "longitude": 13.5069696, + "altitude": 0.0, + "last_seen_iso": "2025-09-16T02:03:39Z", + "pos_time_iso": "2025-09-15T20:34:12Z" + }, + { + "node_id": "!849c3d08", + "short_name": "LAN2", + "long_name": "LAN2 Frag mich @llm oder via DM", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.5, + "battery_level": null, + "voltage": null, + "last_heard": 1757987152, + "first_heard": 1757987152, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T01:45:52Z" + }, + { + "node_id": "!9eecf808", + "short_name": "F0oz", + "long_name": "(ㆆ_ㆆ) F0oz", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757983521, + "first_heard": 1757814557, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-16T00:45:21Z" + }, + { + "node_id": "!a2e17674", + "short_name": "MATg", + "long_name": "DB9MAT G2", + "hw_model": "STATION_G2", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 0.0, + "last_heard": 1757982809, + "first_heard": 1757826009, + "uptime_seconds": 4280244, + "channel_utilization": 1.0916667, + "air_util_tx": 0.7342778, + "position_time": 1757982809, + "latitude": 52.5214663, + "longitude": 13.6291073, + "altitude": 60.0, + "last_seen_iso": "2025-09-16T00:33:29Z", + "pos_time_iso": "2025-09-16T00:33:29Z" + }, + { + "node_id": "!da627d58", + "short_name": "DEF1", + "long_name": "Defcom1", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757979939, + "first_heard": 1757829932, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757972506, + "latitude": 52.5262848, + "longitude": 13.3275648, + "altitude": 34.0, + "last_seen_iso": "2025-09-15T23:45:39Z", + "pos_time_iso": "2025-09-15T21:41:46Z" + }, + { + "node_id": "!c0c30b10", + "short_name": "WIES", + "long_name": "7LA 0b10", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 101.0, + "voltage": -0.001, + "last_heard": 1757979778, + "first_heard": 1757979778, + "uptime_seconds": 58896, + "channel_utilization": 0.0, + "air_util_tx": 0.71275, + "position_time": null, + "latitude": 52.4550144, + "longitude": 13.3431296, + "altitude": 59.0, + "last_seen_iso": "2025-09-15T23:42:58Z" + }, + { + "node_id": "!849b8194", + "short_name": "ip83", + "long_name": "ijp83", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": -13.25, + "battery_level": 7.0, + "voltage": 3.249, + "last_heard": 1757975065, + "first_heard": 1757932193, + "uptime_seconds": 79148, + "channel_utilization": 7.9566665, + "air_util_tx": 0.0165, + "position_time": null, + "latitude": 52.5074432, + "longitude": 13.3431296, + "altitude": 70.0, + "last_seen_iso": "2025-09-15T22:24:25Z" + }, + { + "node_id": "!db898113", + "short_name": "8113", + "long_name": "xberg solar 8113", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757974079, + "first_heard": 1757951837, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757974079, + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 49.0, + "last_seen_iso": "2025-09-15T22:07:59Z", + "pos_time_iso": "2025-09-15T22:07:59Z" + }, + { + "node_id": "!9ee70320", + "short_name": "NS-N", + "long_name": "Klub Łączności ODRA baza \"N\"📡", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -14.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757974062, + "first_heard": 1757974062, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T22:07:42Z" + }, + { + "node_id": "!e00cea30", + "short_name": "NHR1", + "long_name": "NHGR1_ea30", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.25, + "battery_level": 101.0, + "voltage": 4.275, + "last_heard": 1757971839, + "first_heard": 1757774673, + "uptime_seconds": 1199785, + "channel_utilization": 4.4483333, + "air_util_tx": 0.7357222, + "position_time": 1757971839, + "latitude": 52.5074432, + "longitude": 13.6577024, + "altitude": 64.0, + "last_seen_iso": "2025-09-15T21:30:39Z", + "pos_time_iso": "2025-09-15T21:30:39Z" + }, + { + "node_id": "!88071b58", + "short_name": "FlxS", + "long_name": "Flux/S", + "hw_model": "RAK4631", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 60.0, + "voltage": 3.8, + "last_heard": 1757969892, + "first_heard": 1757786586, + "uptime_seconds": 138147, + "channel_utilization": 0.0, + "air_util_tx": 0.0, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T20:58:12Z" + }, + { + "node_id": "!3269942c", + "short_name": "LLL", + "long_name": "Live Laugh Love", + "hw_model": "HELTEC_MESH_POCKET", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 89.0, + "voltage": 4.051, + "last_heard": 1757969171, + "first_heard": 1757828787, + "uptime_seconds": 1413885, + "channel_utilization": 2.4150002, + "air_util_tx": 0.0, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T20:46:11Z" + }, + { + "node_id": "!bb8a1ac6", + "short_name": "EDUP", + "long_name": "7EDU_Portable", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 10.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757967029, + "first_heard": 1757871014, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757967029, + "latitude": 52.4970876, + "longitude": 13.4645596, + "altitude": 40.0, + "last_seen_iso": "2025-09-15T20:10:29Z", + "pos_time_iso": "2025-09-15T20:10:29Z" + }, + { + "node_id": "!849b7154", + "short_name": "7154", + "long_name": "Meshtastic 7154", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": -14.5, + "battery_level": 39.0, + "voltage": 3.623, + "last_heard": 1757967022, + "first_heard": 1757915428, + "uptime_seconds": 64985, + "channel_utilization": 7.1850004, + "air_util_tx": 0.00825, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T20:10:22Z" + }, + { + "node_id": "!bb9f80ca", + "short_name": "b1", + "long_name": "Bobby 🔌", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.75, + "battery_level": 101.0, + "voltage": 4.236, + "last_heard": 1757966180, + "first_heard": 1757825782, + "uptime_seconds": 735853, + "channel_utilization": 5.8966665, + "air_util_tx": 0.7563889, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T19:56:20Z" + }, + { + "node_id": "!da9d5a98", + "short_name": "5a98", + "long_name": "xberg 5a98", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757964900, + "first_heard": 1757961563, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T19:35:00Z" + }, + { + "node_id": "!433ecff8", + "short_name": "44er", + "long_name": "DO7DSL stat.", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.286, + "last_heard": 1757964614, + "first_heard": 1757824216, + "uptime_seconds": 741720, + "channel_utilization": 0.5733334, + "air_util_tx": 0.6061389, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T19:30:14Z" + }, + { + "node_id": "!6cf821fb", + "short_name": "OKP1", + "long_name": "Okapi 1 (he) mobil", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 85.0, + "voltage": 4.051, + "last_heard": 1757963585, + "first_heard": 1757959167, + "uptime_seconds": 66, + "channel_utilization": 5.4233336, + "air_util_tx": 0.03694444, + "position_time": 1757962779, + "latitude": 52.5074432, + "longitude": 13.4479872, + "altitude": 51.0, + "last_seen_iso": "2025-09-15T19:13:05Z", + "pos_time_iso": "2025-09-15T18:59:39Z" + }, + { + "node_id": "!7f7d7914", + "short_name": "hau2", + "long_name": "Hauke 2", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757963065, + "first_heard": 1757963065, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T19:04:25Z" + }, + { + "node_id": "!03b9ca11", + "short_name": "ca11", + "long_name": "Meshtastic ca11", + "hw_model": "UNSET", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 57.0, + "voltage": 3.869, + "last_heard": 1757957659, + "first_heard": 1757957659, + "uptime_seconds": 26711, + "channel_utilization": 2.3766665, + "air_util_tx": 0.1098889, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T17:34:19Z" + }, + { + "node_id": "!28978f94", + "short_name": "8f94", + "long_name": "Landsberger K", + "hw_model": "TBEAM", + "role": "CLIENT_MUTE", + "snr": 11.5, + "battery_level": 2.0, + "voltage": 3.099, + "last_heard": 1757953198, + "first_heard": 1757939754, + "uptime_seconds": 13504, + "channel_utilization": 8.165, + "air_util_tx": 0.051833335, + "position_time": 1757953102, + "latitude": 52.559872, + "longitude": 13.500416, + "altitude": 115.0, + "last_seen_iso": "2025-09-15T16:19:58Z", + "pos_time_iso": "2025-09-15T16:18:22Z" + }, + { + "node_id": "!9d3dba8a", + "short_name": "FLV2", + "long_name": "Fluvius 2", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": -13.5, + "battery_level": null, + "voltage": null, + "last_heard": 1757950866, + "first_heard": 1757820166, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T15:41:06Z" + }, + { + "node_id": "!a3deea53", + "short_name": "🐸", + "long_name": "green", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": 10.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757949419, + "first_heard": 1757920065, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T15:16:59Z" + }, + { + "node_id": "!2f945044", + "short_name": "BND", + "long_name": "Briansnachrichtendienst", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "snr": -12.25, + "battery_level": 96.0, + "voltage": 4.14, + "last_heard": 1757948827, + "first_heard": 1757787385, + "uptime_seconds": 61, + "channel_utilization": 6.011667, + "air_util_tx": 0.0335, + "position_time": 1757947583, + "latitude": 52.4435456, + "longitude": 13.3906432, + "altitude": 50.0, + "last_seen_iso": "2025-09-15T15:07:07Z", + "pos_time_iso": "2025-09-15T14:46:23Z" + }, + { + "node_id": "!c5abeec2", + "short_name": "ICEM", + "long_name": "ICE Mobile", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 84.0, + "voltage": 4.047, + "last_heard": 1757944855, + "first_heard": 1757928259, + "uptime_seconds": 22332, + "channel_utilization": 6.893333, + "air_util_tx": 0.7370833, + "position_time": 1757944853, + "latitude": 52.4156928, + "longitude": 13.5135232, + "altitude": 35.0, + "last_seen_iso": "2025-09-15T14:00:55Z", + "pos_time_iso": "2025-09-15T14:00:53Z" + }, + { + "node_id": "!28978dd4", + "short_name": "Gelb", + "long_name": "Gelb innen", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 10.5, + "battery_level": null, + "voltage": null, + "last_heard": 1757941652, + "first_heard": 1757770565, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T13:07:32Z" + }, + { + "node_id": "!1551a9dc", + "short_name": "PELA", + "long_name": "PELA a9dc", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757939305, + "first_heard": 1757913601, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757939302, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 31.0, + "last_seen_iso": "2025-09-15T12:28:25Z", + "pos_time_iso": "2025-09-15T12:28:22Z" + }, + { + "node_id": "!c0c309ec", + "short_name": "NJM1", + "long_name": "NHGJM1_09ec", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757939019, + "first_heard": 1757820219, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T12:23:39Z" + }, + { + "node_id": "!64e2ecc2", + "short_name": "d0m", + "long_name": "d0m", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757936716, + "first_heard": 1757831284, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T11:45:16Z" + }, + { + "node_id": "!9ee71c38", + "short_name": "1c38", + "long_name": "Varus1c38", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.5, + "battery_level": null, + "voltage": null, + "last_heard": 1757934899, + "first_heard": 1757784888, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T11:14:59Z" + }, + { + "node_id": "!da73ea58", + "short_name": "🏡", + "long_name": "dmho-ho", + "hw_model": "SEEED_XIAO_S3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757934581, + "first_heard": 1757882020, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T11:09:41Z" + }, + { + "node_id": "!6c6964f4", + "short_name": "BXU9", + "long_name": "The Unknown Station #9", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 0.0, + "last_heard": 1757922959, + "first_heard": 1757892003, + "uptime_seconds": 2223, + "channel_utilization": 0.6433333, + "air_util_tx": 0.09477778, + "position_time": 1757922346, + "latitude": 52.3829248, + "longitude": 13.6511488, + "altitude": 76.0, + "last_seen_iso": "2025-09-15T07:55:59Z", + "pos_time_iso": "2025-09-15T07:45:46Z" + }, + { + "node_id": "!9eecf544", + "short_name": "f544", + "long_name": "Meshtastic f544", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.0, + "battery_level": 101.0, + "voltage": 4.27, + "last_heard": 1757920953, + "first_heard": 1757775822, + "uptime_seconds": 41210, + "channel_utilization": 0.0, + "air_util_tx": 0.35269445, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-15T07:22:33Z" + }, + { + "node_id": "!2b1f7a6f", + "short_name": "kerc", + "long_name": "kermit-cap", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.188, + "last_heard": 1757912588, + "first_heard": 1757821520, + "uptime_seconds": 203658, + "channel_utilization": 0.0, + "air_util_tx": 0.015694445, + "position_time": 1757912567, + "latitude": 52.5008896, + "longitude": 13.4283264, + "altitude": 26.0, + "last_seen_iso": "2025-09-15T05:03:08Z", + "pos_time_iso": "2025-09-15T05:02:47Z" + }, + { + "node_id": "!433b36c4", + "short_name": "36c4", + "long_name": "Meshtastic 36c4", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 4.22, + "last_heard": 1757890305, + "first_heard": 1757826915, + "uptime_seconds": 61, + "channel_utilization": 2.02, + "air_util_tx": 0.013027778, + "position_time": 1757890305, + "latitude": 52.4550144, + "longitude": 13.3955584, + "altitude": 51.0, + "last_seen_iso": "2025-09-14T22:51:45Z", + "pos_time_iso": "2025-09-14T22:51:45Z" + }, + { + "node_id": "!433ef3e8", + "short_name": "F&F1", + "long_name": "F&F Node 1", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757889266, + "first_heard": 1757889266, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T22:34:26Z" + }, + { + "node_id": "!2d070d01", + "short_name": "0d01", + "long_name": "Pankow-0d01", + "hw_model": "RAK4631", + "role": "ROUTER", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757887925, + "first_heard": 1757769107, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T22:12:05Z" + }, + { + "node_id": "!9ea12df0", + "short_name": "Ed-2", + "long_name": "Plänti-2", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757886951, + "first_heard": 1757798479, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T21:55:51Z" + }, + { + "node_id": "!dc7494c4", + "short_name": "narc", + "long_name": "free2air narcissus", + "hw_model": "T_ECHO", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 101.0, + "voltage": 4.885, + "last_heard": 1757886215, + "first_heard": 1757802406, + "uptime_seconds": 120272, + "channel_utilization": 1.08, + "air_util_tx": 0.40763888, + "position_time": 1757886215, + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 98.0, + "last_seen_iso": "2025-09-14T21:43:35Z", + "pos_time_iso": "2025-09-14T21:43:35Z" + }, + { + "node_id": "!435b0714", + "short_name": "GR", + "long_name": "GolfRomeo", + "hw_model": "LILYGO_TBEAM_S3_CORE", + "role": "CLIENT", + "snr": 11.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757880681, + "first_heard": 1757796511, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757880661, + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": 6.0, + "last_seen_iso": "2025-09-14T20:11:21Z", + "pos_time_iso": "2025-09-14T20:11:01Z" + }, + { + "node_id": "!fa6a3d6c", + "short_name": "Kn1S", + "long_name": "Kein1Stein_3d6c", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757877889, + "first_heard": 1757778421, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757877868, + "latitude": 52.4645919, + "longitude": 13.323267, + "altitude": 20.0, + "last_seen_iso": "2025-09-14T19:24:49Z", + "pos_time_iso": "2025-09-14T19:24:28Z" + }, + { + "node_id": "!78299711", + "short_name": "EDUT", + "long_name": "7EDU_Tracker", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": 10.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757872010, + "first_heard": 1757872010, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T17:46:50Z" + }, + { + "node_id": "!7a6bf888", + "short_name": "g0r", + "long_name": "g0r", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757866046, + "first_heard": 1757866046, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T16:07:26Z" + }, + { + "node_id": "!2fbb1f99", + "short_name": "TWR5", + "long_name": "TWR5-Node", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": -12.0, + "battery_level": 96.0, + "voltage": 4.135, + "last_heard": 1757863942, + "first_heard": 1757831000, + "uptime_seconds": 461385, + "channel_utilization": 9.408333, + "air_util_tx": 0.37438887, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T15:32:22Z" + }, + { + "node_id": "!b03c9678", + "short_name": "9678", + "long_name": "Meshtastic 9678", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.5, + "battery_level": null, + "voltage": null, + "last_heard": 1757862351, + "first_heard": 1757862351, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T15:05:51Z" + }, + { + "node_id": "!43b7c694", + "short_name": "FFVH", + "long_name": "Freifunk-Vaterhaus 868", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -9.5, + "battery_level": 101.0, + "voltage": -0.001, + "last_heard": 1757860460, + "first_heard": 1757596854, + "uptime_seconds": 91324, + "channel_utilization": 19.016666, + "air_util_tx": 4.991889, + "position_time": 1757860460, + "latitude": 52.4649417, + "longitude": 13.4852833, + "altitude": null, + "last_seen_iso": "2025-09-14T14:34:20Z", + "pos_time_iso": "2025-09-14T14:34:20Z" + }, + { + "node_id": "!2448d855", + "short_name": "D7DS", + "long_name": "DO7DSL port.", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 58.0, + "voltage": 3.785, + "last_heard": 1757860140, + "first_heard": 1757827324, + "uptime_seconds": 96555, + "channel_utilization": 3.425, + "air_util_tx": 0.42688888, + "position_time": 1757860140, + "latitude": 52.4713984, + "longitude": 13.4709248, + "altitude": 37.0, + "last_seen_iso": "2025-09-14T14:29:00Z", + "pos_time_iso": "2025-09-14T14:29:00Z" + }, + { + "node_id": "!6d022fe7", + "short_name": "ACAB", + "long_name": "Køpi Bleibt!!", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": -13.5, + "battery_level": null, + "voltage": null, + "last_heard": 1757859810, + "first_heard": 1757859810, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T14:23:30Z" + }, + { + "node_id": "!abf83f48", + "short_name": "3f48", + "long_name": "xberg mqtt B<->HH 3f48", + "hw_model": "TBEAM", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 100.0, + "voltage": 4.159, + "last_heard": 1757848344, + "first_heard": 1757842531, + "uptime_seconds": 394662, + "channel_utilization": 1.1066667, + "air_util_tx": 0.35994443, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T11:12:24Z" + }, + { + "node_id": "!bfbdc5ca", + "short_name": "c5ca", + "long_name": "gordon-shumway", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757846433, + "first_heard": 1757846433, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T10:40:33Z" + }, + { + "node_id": "!ba6a8d40", + "short_name": "8d40", + "long_name": "Meshtastic 8d40", + "hw_model": "UNSET", + "role": "CLIENT", + "snr": 10.5, + "battery_level": 101.0, + "voltage": 4.264, + "last_heard": 1757841940, + "first_heard": 1757841940, + "uptime_seconds": 15602, + "channel_utilization": 6.1633334, + "air_util_tx": 1.1865834, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T09:25:40Z" + }, + { + "node_id": "!b03d9170", + "short_name": "9170", + "long_name": "Meshtastic 9170", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 11.0, + "battery_level": 68.0, + "voltage": 3.872, + "last_heard": 1757830324, + "first_heard": 1757830324, + "uptime_seconds": 23462, + "channel_utilization": 5.65, + "air_util_tx": 0.76186115, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-14T06:12:04Z" + }, + { + "node_id": "!ba0cae50", + "short_name": "NJMA", + "long_name": "NHGJMA_ae50", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -10.0, + "battery_level": 54.0, + "voltage": 3.758, + "last_heard": 1757816213, + "first_heard": 1757816213, + "uptime_seconds": 61, + "channel_utilization": 2.675, + "air_util_tx": 0.018166667, + "position_time": 1757815898, + "latitude": 52.5074432, + "longitude": 13.6577024, + "altitude": 72.0, + "last_seen_iso": "2025-09-14T02:16:53Z", + "pos_time_iso": "2025-09-14T02:11:38Z" + }, + { + "node_id": "!1bf8ed79", + "short_name": "MxMG", + "long_name": "Max Mobil Grau", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT_MUTE", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757815963, + "first_heard": 1757815963, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757791826, + "latitude": 52.477952, + "longitude": 13.320192, + "altitude": 41.0, + "last_seen_iso": "2025-09-14T02:12:43Z", + "pos_time_iso": "2025-09-13T19:30:26Z" + }, + { + "node_id": "!9ee71b3c", + "short_name": "🐸", + "long_name": "spuck", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -10.5, + "battery_level": 18.0, + "voltage": 3.406, + "last_heard": 1757815862, + "first_heard": 1757815862, + "uptime_seconds": 99670, + "channel_utilization": 5.3599997, + "air_util_tx": 0.92630553, + "position_time": null, + "latitude": 52.5074432, + "longitude": 13.500416, + "altitude": 49.0, + "last_seen_iso": "2025-09-14T02:11:02Z" + }, + { + "node_id": "!9ea1af60", + "short_name": "stph", + "long_name": "Stephie", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": -9.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757814507, + "first_heard": 1757814507, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757814953, + "latitude": 52.5041664, + "longitude": 13.451264, + "altitude": 36.0, + "last_seen_iso": "2025-09-14T01:48:27Z", + "pos_time_iso": "2025-09-14T01:55:53Z" + }, + { + "node_id": "!c8b928d6", + "short_name": "BPS", + "long_name": "BlackPress", + "hw_model": "RAK4631", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757804907, + "first_heard": 1757804907, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-13T23:08:27Z" + }, + { + "node_id": "!f9b262d4", + "short_name": "FPUD", + "long_name": "DD6UAT Vogelsdorf", + "hw_model": "TLORA_V2_1_1P6", + "role": "CLIENT", + "snr": 11.25, + "battery_level": 101.0, + "voltage": 4.397, + "last_heard": 1757796130, + "first_heard": 1757796130, + "uptime_seconds": 60, + "channel_utilization": 2.5533333, + "air_util_tx": 0.021277778, + "position_time": 1757796133, + "latitude": 52.5074432, + "longitude": 13.76256, + "altitude": 0.0, + "last_seen_iso": "2025-09-13T20:42:10Z", + "pos_time_iso": "2025-09-13T20:42:13Z" + }, + { + "node_id": "!2f91531c", + "short_name": "ijon", + "long_name": "mobile.ijon.tychie", + "hw_model": "T_DECK_PRO", + "role": "CLIENT", + "snr": 11.0, + "battery_level": null, + "voltage": null, + "last_heard": 1757786605, + "first_heard": 1757786605, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-13T18:03:25Z" + }, + { + "node_id": "!433af570", + "short_name": "LB", + "long_name": "LAN Backpack", + "hw_model": "HELTEC_V3", + "role": "CLIENT_MUTE", + "snr": 10.75, + "battery_level": 101.0, + "voltage": 4.226, + "last_heard": 1757783077, + "first_heard": 1757783077, + "uptime_seconds": 61, + "channel_utilization": 1.55, + "air_util_tx": 0.007972223, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-13T17:04:37Z" + }, + { + "node_id": "!99bc90a8", + "short_name": "d**b", + "long_name": "d**b Deck", + "hw_model": "T_DECK", + "role": "CLIENT_MUTE", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757781032, + "first_heard": 1757781032, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-13T16:30:32Z" + }, + { + "node_id": "!5b835c1c", + "short_name": "APRL", + "long_name": "AprilAllTheTime ", + "hw_model": "HELTEC_MESH_NODE_T114", + "role": "CLIENT", + "snr": 10.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757776492, + "first_heard": 1757776492, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757777355, + "latitude": 52.5074432, + "longitude": 13.3431296, + "altitude": 36.0, + "last_seen_iso": "2025-09-13T15:14:52Z", + "pos_time_iso": "2025-09-13T15:29:15Z" + }, + { + "node_id": "!f840cb2d", + "short_name": "cb2d", + "long_name": "Meshtastic cb2d", + "hw_model": "UNSET", + "role": "CLIENT", + "snr": 11.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757767695, + "first_heard": 1757767695, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757767678, + "latitude": 52.5074432, + "longitude": 13.3955584, + "altitude": -6.0, + "last_seen_iso": "2025-09-13T12:48:15Z", + "pos_time_iso": "2025-09-13T12:47:58Z" + }, + { + "node_id": "!336019dc", + "short_name": "🥚", + "long_name": "Meshtastic 19dc", + "hw_model": "LILYGO_TBEAM_S3_CORE", + "role": "CLIENT", + "snr": 10.25, + "battery_level": 101.0, + "voltage": 4.164, + "last_heard": 1757767317, + "first_heard": 1757767317, + "uptime_seconds": 22630, + "channel_utilization": 1.86, + "air_util_tx": 0.74213886, + "position_time": 1757796407, + "latitude": 52.4896667, + "longitude": 13.3502437, + "altitude": 38.0, + "last_seen_iso": "2025-09-13T12:41:57Z", + "pos_time_iso": "2025-09-13T20:46:47Z" + }, + { + "node_id": "!17f58f25", + "short_name": "imja", + "long_name": "imja", + "hw_model": "TRACKER_T1000_E", + "role": "TRACKER", + "snr": 10.25, + "battery_level": 34.0, + "voltage": 3.794, + "last_heard": 1757766359, + "first_heard": 1757766359, + "uptime_seconds": 25255, + "channel_utilization": 2.9433334, + "air_util_tx": 1.000861, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-13T12:25:59Z" + }, + { + "node_id": "!b5954cf7", + "short_name": "jofi", + "long_name": "jofi 4cf7", + "hw_model": "TRACKER_T1000_E", + "role": "CLIENT", + "snr": -11.75, + "battery_level": null, + "voltage": null, + "last_heard": 1757765297, + "first_heard": 1757765297, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": 1757765291, + "latitude": 52.5074432, + "longitude": 13.2907008, + "altitude": 34.0, + "last_seen_iso": "2025-09-13T12:08:17Z", + "pos_time_iso": "2025-09-13T12:08:11Z" + }, + { + "node_id": "!ee59338a", + "short_name": "pizi", + "long_name": "Pitztaler Straße Panketal", + "hw_model": "SEEED_SOLAR_NODE", + "role": "CLIENT", + "snr": -1.25, + "battery_level": null, + "voltage": null, + "last_heard": 1757765246, + "first_heard": 1757765246, + "uptime_seconds": null, + "channel_utilization": null, + "air_util_tx": null, + "position_time": null, + "latitude": null, + "longitude": null, + "altitude": null, + "last_seen_iso": "2025-09-13T12:07:26Z" + }, + { + "node_id": "!db2b4f3c", + "short_name": "rboM", + "long_name": "rbo-mobile", + "hw_model": "HELTEC_V3", + "role": "CLIENT", + "snr": 10.75, + "battery_level": 99.0, + "voltage": 4.178, + "last_heard": 1757759115, + "first_heard": 1757759115, + "uptime_seconds": 45209, + "channel_utilization": 1.1933333, + "air_util_tx": 0.6788611, + "position_time": 1757743846, + "latitude": 52.5672448, + "longitude": 13.5241728, + "altitude": 76.0, + "last_seen_iso": "2025-09-13T10:25:15Z", + "pos_time_iso": "2025-09-13T06:10:46Z" + } +] diff --git a/tests/update.sh b/tests/update.sh new file mode 100755 index 0000000..b5ff83a --- /dev/null +++ b/tests/update.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# Copyright (C) 2025 l5yth +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +sqlite3 ../data/mesh.db ".backup './mesh.db'" +curl http://127.0.0.1:41447/api/nodes |jq > ./nodes.json +curl http://127.0.0.1:41447/api/messages |jq > ./messages.json diff --git a/web/app.rb b/web/app.rb index 934ecaf..c3a6be9 100644 --- a/web/app.rb +++ b/web/app.rb @@ -13,19 +13,17 @@ # limitations under the License. # frozen_string_literal: true -# + # Main Sinatra application exposing the Meshtastic node and message archive. # The daemon in +data/mesh.py+ pushes updates into the SQLite database that # this web process reads from, providing JSON APIs and a rendered HTML index # page for human visitors. - require "sinatra" require "json" require "sqlite3" require "fileutils" require "logger" -# run ../data/mesh.sh to populate nodes and messages database DB_PATH = ENV.fetch("MESH_DB", File.join(__dir__, "../data/mesh.db")) DB_BUSY_TIMEOUT_MS = ENV.fetch("DB_BUSY_TIMEOUT_MS", "5000").to_i DB_BUSY_MAX_RETRIES = ENV.fetch("DB_BUSY_MAX_RETRIES", "5").to_i @@ -197,7 +195,29 @@ def query_messages(limit) node[k] = r.delete(k) end r["snr"] = r.delete("msg_snr") - r["node"] = node unless node.empty? + if r["from_id"] && (node["node_id"].nil? || node["node_id"].to_s.empty?) + lookup_keys = [] + canonical = normalize_node_id(db, r["from_id"]) + lookup_keys << canonical if canonical + raw_ref = r["from_id"].to_s.strip + lookup_keys << raw_ref unless raw_ref.empty? + lookup_keys << raw_ref.to_i if raw_ref.match?(/\A[0-9]+\z/) + fallback = nil + lookup_keys.uniq.each do |ref| + sql = ref.is_a?(Integer) ? "SELECT * FROM nodes WHERE num = ?" : "SELECT * FROM nodes WHERE node_id = ?" + fallback = db.get_first_row(sql, [ref]) + break if fallback + end + if fallback + fallback.each do |key, value| + next unless key.is_a?(String) + next if msg_fields.include?(key) + node[key] = value if node[key].nil? + end + end + end + node["role"] = "CLIENT" if node.key?("role") && (node["role"].nil? || node["role"].to_s.empty?) + r["node"] = node if DEBUG && (r["from_id"].nil? || r["from_id"].to_s.empty?) Kernel.warn "[debug] row after processing: #{r.inspect}" end diff --git a/web/spec/app_spec.rb b/web/spec/app_spec.rb index f6c96a9..daa298c 100644 --- a/web/spec/app_spec.rb +++ b/web/spec/app_spec.rb @@ -24,7 +24,7 @@ RSpec.describe "Potato Mesh Sinatra app" do let(:app) { Sinatra::Application } def fixture_path(name) - File.expand_path("../../test/#{name}", __dir__) + File.expand_path("../../tests/#{name}", __dir__) end def with_db(readonly: false) @@ -585,8 +585,28 @@ RSpec.describe "Potato Mesh Sinatra app" do acc[row["id"]] = row end - nodes_by_id = nodes_fixture.each_with_object({}) do |node, acc| - acc[node["node_id"]] = expected_node_row(node) + nodes_by_id = {} + node_aliases = {} + + nodes_fixture.each do |node| + node_id = node["node_id"] + expected_row = expected_node_row(node) + nodes_by_id[node_id] = expected_row + + if (num = node["num"]) + node_aliases[num.to_s] = node_id + end + end + + messages_fixture.each do |message| + node = message["node"] + next unless node.is_a?(Hash) + + canonical = node["node_id"] + num = node["num"] + next unless canonical && num + + node_aliases[num.to_s] ||= canonical end messages_fixture.each do |message| @@ -605,7 +625,16 @@ RSpec.describe "Potato Mesh Sinatra app" do expect(actual_row["hop_limit"]).to eq(expected["hop_limit"]) if expected["from_id"] - node_expected = nodes_by_id.fetch(expected["from_id"]) + lookup_id = expected["from_id"] + node_expected = nodes_by_id[lookup_id] + + unless node_expected + canonical_id = node_aliases[lookup_id.to_s] + expect(canonical_id).not_to be_nil, + "node fixture missing for from_id #{lookup_id.inspect}" + node_expected = nodes_by_id.fetch(canonical_id) + end + node_actual = actual_row.fetch("node") expect(node_actual["node_id"]).to eq(node_expected["node_id"])