fritz_guardian/devices/monitored
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 |
2. Konfiguration
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
| Sub-Key | Art | Einheit | Faktor | Werte (Roh) | 15-Min | Erste | Letzte | |
|---|---|---|---|---|---|---|---|---|
| numeric | ||||||||
| text | – | – |
| Zeit | Wert |
|---|---|
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.
| 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.
| Wert | Label | |
|---|---|---|
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.