smarthub Übersicht Dashboard Parameters Sensoren Aktoren Topics Daten Logs Einstellungen v0.1

← zurück

fritz_guardian/devices/monitored

Kategorie: discarded · Messages: 471 · Zuletzt: 2026-05-23 03:07:30
Historische Daten importieren

1. Werte aus dem Payload auswählen

Klicke einzelne Felder an, die du als Extractor übernehmen möchtest. Mehrfachauswahl möglich. Schon konfigurierte Pfade sind grün markiert.

$.timestamp numeric 1779372548
$.devices[0].mac text C6:99:0D:F0:6F:C6
$.devices[0].ip text 192.168.178.150
$.devices[0].name text iPhone
$.devices[0].interface text unknown
$.devices[0].interface_group text other
$.devices[0].active numeric 1
$.devices[0].lease_seconds numeric 0
$.devices[0].address_source text DHCP
$.devices[0].first_seen numeric 1777574165
$.devices[0].last_seen numeric 1779372548
$.devices[0].last_status_change numeric 1779357812
$.devices[0].monitor_enabled numeric 1
$.devices[0].notify_online numeric 1
$.devices[0].notify_offline numeric 1
$.devices[0].online_timeout numeric 0
$.devices[0].offline_timeout numeric 120
$.devices[0].last_online_action numeric 1779357812
$.devices[0].last_offline_action numeric 1779351963
$.devices[0].custom_name text baer-iphone
$.devices[0].note text
$.devices[0].details.FritzBoxActive text 0
$.devices[0].details.ActiveSource text generic
$.devices[0].details.PresenceSource text neigh-after
$.devices[0].details.ProbeEnabled text 1
$.devices[0].details.ProbeMethod text neigh-after
$.devices[0].details.ProbeOk text 1
$.devices[0].details.ProbeMs text 3
$.devices[0].details.ProbeResults[0].ok bool false
$.devices[0].details.ProbeResults[0].method text neigh-before
$.devices[0].details.ProbeResults[0].ms numeric 8
$.devices[0].details.ProbeResults[0].mac text C6:99:0D:F0:6F:C6
$.devices[0].details.ProbeResults[0].state text STALE
$.devices[0].details.ProbeResults[0].raw text 192.168.178.150 dev enP4p65s0 lladdr c6:99:0d:f0:6f:c6 STALE
$.devices[0].details.ProbeResults[1].ok bool false
$.devices[0].details.ProbeResults[1].ms numeric 323
$.devices[0].details.ProbeResults[1].method text arp
$.devices[0].details.ProbeResults[1].mac text
$.devices[0].details.ProbeResults[2].ok bool false
$.devices[0].details.ProbeResults[2].ms numeric 1016
$.devices[0].details.ProbeResults[2].method text ping
$.devices[0].details.ProbeResults[…] array (4 Elemente)
$.devices[0].details.ProbeMac text C6:99:0D:F0:6F:C6
$.devices[0].online_urls[0] text http://192.168.179.54/rpc/Switch.Set?id=0&on=true
$.devices[0].online_urls[1] text http://192.168.179.58/rpc/Switch.Set?id=0&on=true
$.devices[0].offline_urls[0] text http://192.168.179.54/rpc/Switch.Set?id=0&on=false
$.devices[0].offline_urls[1] text http://192.168.179.58/rpc/Switch.Set?id=0&on=false
$.devices[0].presence_state text online
$.devices[0].presence_label text online
$.devices[0].seconds_since_change numeric 14748
$.devices[0].offline_due_in numeric 0
$.devices[0].display_name text baer-iphone
$.devices[0].fritz_name text iPhone
$.devices[1].mac text 52:18:63:93:6C:CC
$.devices[1].ip text 192.168.178.96
$.devices[1].name text iPhone
$.devices[1].interface text unknown
$.devices[1].interface_group text other
$.devices[1].active numeric 0
$.devices[1].lease_seconds numeric 0
$.devices[1].address_source text DHCP
$.devices[1].first_seen numeric 1777574165
$.devices[1].last_seen numeric 1779032328
$.devices[1].last_status_change numeric 1779032370
$.devices[1].monitor_enabled numeric 1
$.devices[1].notify_online numeric 1
$.devices[1].notify_offline numeric 1
$.devices[1].online_timeout numeric 0
$.devices[1].offline_timeout numeric 120
$.devices[1].last_online_action numeric 1779012151
$.devices[1].last_offline_action numeric 1779032507
$.devices[1].custom_name text baerin-iphone
$.devices[1].note text
$.devices[1].details.FritzBoxActive text 0
$.devices[1].details.ActiveSource text generic
$.devices[1].details.PresenceSource text offline
$.devices[1].details.ProbeEnabled text 1
$.devices[1].details.ProbeMethod text neigh-before+arp+ping+neigh-after
$.devices[1].details.ProbeOk text 0
$.devices[1].details.ProbeMs text 1347
$.devices[1].details.ProbeResults[0].ok bool false
$.devices[1].details.ProbeResults[0].method text neigh-before
$.devices[1].details.ProbeResults[0].ms numeric 7
$.devices[1].details.ProbeResults[0].mac text
$.devices[1].details.ProbeResults[0].state text FAILED
$.devices[1].details.ProbeResults[0].raw text 192.168.178.96 dev enP4p65s0 FAILED
$.devices[1].details.ProbeResults[1].ok bool false
$.devices[1].details.ProbeResults[1].ms numeric 320
$.devices[1].details.ProbeResults[1].method text arp
$.devices[1].details.ProbeResults[1].mac text
$.devices[1].details.ProbeResults[2].ok bool false
$.devices[1].details.ProbeResults[2].ms numeric 1016
$.devices[1].details.ProbeResults[2].method text ping
$.devices[1].details.ProbeResults[…] array (4 Elemente)
$.devices[1].presence_state text offline
$.devices[1].presence_label text offline
$.devices[1].seconds_since_change numeric 340190
$.devices[1].offline_due_in numeric 0
$.devices[1].display_name text baerin-iphone
$.devices[1].fritz_name text iPhone
→ Als Regel speichern (für ähnliche Topics)

2. Konfiguration

Topic-Muster Klicke einzelne Segmente, um sie zu Wildcards zu machen — die Konfiguration kann dann in einem Rutsch auf alle passenden Topics angewendet werden.
Pattern:
passende Topics Haken weg = ausschließen
Topic Wildcard Kurzname nach Save Kategorie

Im Kurznamen-Feld kannst du {0}, {1}, … nutzen — wird pro Treffer durch den entsprechenden Wildcard-Wert ersetzt. In der Tabelle kannst du einzelne Kurznamen bei Bedarf manuell überschreiben. Verfügbar: .

Retention & Limits (pro Topic, optional)
Speicher-Verhalten (Write-Time)

Alle: jede geänderte Nachricht wird gespeichert (mit implizitem Dedup).
15-Minuten-Wert: pro 15-Min-Bucket (fest auf :00/:15/:30/:45) ein Wert mit der gewählten Aggregation.
Tageswert: ein Wert pro Tag.
Pro Extractor kannst du per "storage_mode"/"aggregation"-Key überschreiben (nützlich z.B. um Spannung als mean, Energie als last zu speichern).


Extractors (JSON)

Hinweis: Sobald Extractors gesetzt sind, wird der Topic automatisch auf Konfiguriert gestellt — außer du wählst hier explizit etwas anderes.

Abbrechen

Letzter Payload

{
  "timestamp": 1779372548,
  "devices": [
    {
      "mac": "C6:99:0D:F0:6F:C6",
      "ip": "192.168.178.150",
      "name": "iPhone",
      "interface": "unknown",
      "interface_group": "other",
      "active": 1,
      "lease_seconds": 0,
      "address_source": "DHCP",
      "first_seen": 1777574165,
      "last_seen": 1779372548,
      "last_status_change": 1779357812,
      "monitor_enabled": 1,
      "notify_online": 1,
      "notify_offline": 1,
      "online_timeout": 0,
      "offline_timeout": 120,
      "last_online_action": 1779357812,
      "last_offline_action": 1779351963,
      "custom_name": "baer-iphone",
      "note": "",
      "details": {
        "FritzBoxActive": "0",
        "ActiveSource": "generic",
        "PresenceSource": "neigh-after",
        "ProbeEnabled": "1",
        "ProbeMethod": "neigh-after",
        "ProbeOk": "1",
        "ProbeMs": "3",
        "ProbeResults": [
          {
            "ok": false,
            "method": "neigh-before",
            "ms": 8,
            "mac": "C6:99:0D:F0:6F:C6",
            "state": "STALE",
            "raw": "192.168.178.150 dev enP4p65s0 lladdr c6:99:0d:f0:6f:c6 STALE"
          },
          {
            "ok": false,
            "ms": 323,
            "method": "arp",
            "mac": ""
          },
          {
            "ok": false,
            "ms": 1016,
            "method": "ping"
          },
          {
            "ok": true,
            "method": "neigh-after",
            "ms": 3,
            "mac": "C6:99:0D:F0:6F:C6",
            "state": "DELAY",
            "raw": "192.168.178.150 dev enP4p65s0 lladdr c6:99:0d:f0:6f:c6 DELAY"
          }
        ],
        "ProbeMac": "C6:99:0D:F0:6F:C6"
      },
      "online_urls": [
        "http://192.168.179.54/rpc/Switch.Set?id=0&on=true",
        "http://192.168.179.58/rpc/Switch.Set?id=0&on=true"
      ],
      "offline_urls": [
        "http://192.168.179.54/rpc/Switch.Set?id=0&on=false",
        "http://192.168.179.58/rpc/Switch.Set?id=0&on=false"
      ],
      "presence_state": "online",
      "presence_label": "online",
      "seconds_since_change": 14748,
      "offline_due_in": 0,
      "display_name": "baer-iphone",
      "fritz_name": "iPhone"
    },
    {
      "mac": "52:18:63:93:6C:CC",
      "ip": "192.168.178.96",
      "name": "iPhone",
      "interface": "unknown",
      "interface_group": "other",
      "active": 0,
      "lease_seconds": 0,
      "address_source": "DHCP",
      "first_seen": 1777574165,
      "last_seen": 1779032328,
      "last_status_change": 1779032370,
      "monitor_enabled": 1,
      "notify_online": 1,
      "notify_offline": 1,
      "online_timeout": 0,
      "offline_timeout": 120,
      "last_online_action": 1779012151,
      "last_offline_action": 1779032507,
      "custom_name": "baerin-iphone",
      "note": "",
      "details": {
        "FritzBoxActive": "0",
        "ActiveSource": "generic",
        "PresenceSource": "offline",
        "ProbeEnabled": "1",
        "ProbeMethod": "neigh-before+arp+ping+neigh-after",
        "ProbeOk": "0",
        "ProbeMs": "1347",
        "ProbeResults": [
          {
            "ok": false,
            "method": "neigh-before",
            "ms": 7,
            "mac": "",
            "state": "FAILED",
            "raw": "192.168.178.96 dev enP4p65s0 FAILED"
          },
          {
            "ok": false,
            "ms": 320,
            "method": "arp",
            "mac": ""
          },
          {
            "ok": false,
            "ms": 1016,
            "method": "ping"
          },
          {
            "ok": false,
            "method": "neigh-after",
            "ms": 4,
            "mac": "",
            "state": "INCOMPLETE",
            "raw": "192.168.178.96 dev enP4p65s0 INCOMPLETE"
          }
        ]
      },
      "online_urls": [],
      "offline_urls": [],
      "presence_state": "offline",
      "presence_label": "offline",
      "seconds_since_change": 340190,
      "offline_due_in": 0,
      "display_name": "baerin-iphone",
      "fritz_name": "iPhone"
    }
  ]
}

Test-Ergebnis

Ähnliche Topics

3. Daten-Browser

Zeitraum: raw_cache:
Sub-Key Art Einheit Faktor Werte (Roh) 15-Min Erste Letzte
ZeitWert

Keine Daten im gewählten Zeitraum.

Letzte Roh-Nachrichten

Direkter Blick in raw_cache für dieses Topic. Klick auf eine Zeile öffnet den vollen Payload im Viewer.

Keine Roh-Nachrichten im gewählten Zeitraum.
Zeit QoS Status Payload

4. Wert-Labels

Optional: ordne gespeicherten Zahlen lesbare Texte zu (z.B. 161 → "Bereit"). Die Labels werden in der Daten-Tabelle & Charts angezeigt — die Speicherung selbst bleibt rein numerisch.

Noch keine Sub-Keys vorhanden. Lege zuerst Extractors an (Abschnitt 2) und speichere — danach kannst du hier pro Sub-Key Labels eintragen.
Extractor-Schema & Tricks

Pfad-Syntax

$ · $.foo.bar · $.arr[0] · $.arr[*] (nur in iter)

value_map — Text in 0/1 (oder beliebig) umwandeln

Für Statuswerte wie "online"/"offline" oder true/false:

[
  {
    "path":      "$.presence_state",
    "sub_key":   "",
    "kind":      "numeric",
    "factor":    1,
    "on_change": true,
    "value_map": { "online": 1, "offline": 0 }
  }
]

Lookup case-insensitive. Für Boolean-Payloads kannst du auch {"true":1,"false":0} nutzen (direkte true/false-Werte werden ohnehin automatisch zu 1/0 gemappt).

Mehrere Topics → ein Kurzname (logisches Mergen)

Zwei oder mehr physische MQTT-Topics dürfen denselben Kurznamen haben. Die Werte landen in values_numeric/values_text mit jeweils eigener topic_id, aber die spätere Data-API kann sie zu einer Zeitserie vereinen (SELECT … WHERE topic_id IN (SELECT id FROM topics WHERE short_name=…)).

Beispiel: fritz_guardian/device/<MAC>/online und .../offline beide auf Kurzname baer_iphone_presence mit obigem value_map → eine durchgehende 0/1-Linie.

Pro-Extractor Storage-Override

[
  { "path": "$.power",  "sub_key": "power",
    "kind": "numeric", "factor": 100,
    "storage_mode": "15min",  "aggregation": "mean" },
  { "path": "$.energy_total", "sub_key": "energy_total",
    "kind": "numeric", "factor": 1,
    "storage_mode": "all" }
]

Power als Mittelwert pro 15-Min-Bucket, Energie als jeder geänderte Zählerstand.

Iteration über Listen

[
  { "iter": "$.devices[*]", "iter_key": "$.mac",
    "path": "$.presence_state", "sub_key": "{iter_key}.status",
    "kind": "numeric", "value_map":{"online":1,"offline":0},
    "on_change": true }
]

Für jeden Eintrag in devices[] wird ein Sub-Key wie C6:99:0D:F0:6F:C6.status angelegt.

Detail →
lädt…