telegram/baer_home_bot/updates/normalized
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.
| $.bot_id | text | baer_home_bot | |
| $.update_id | numeric | 721808662 | |
| $.kind | text | message | |
| $.chat.id | numeric | 50003182 | |
| $.chat.type | text | private | |
| $.chat.title | text | baer | |
| $.from.id | numeric | 50003182 | |
| $.from.username | text | baeri7 | |
| $.from.first_name | text | baer | |
| $.from.last_name | null | null | |
| $.message_id | numeric | 27 | |
| $.text | text | 🧸 | |
| $.date | numeric | 1779473663 | |
| $.raw.update_id | numeric | 721808662 | |
| $.raw.message.message_id | numeric | 27 | |
| $.raw.message.from.id | numeric | 50003182 | |
| $.raw.message.from.is_bot | bool | false | |
| $.raw.message.from.first_name | text | baer | |
| $.raw.message.from.username | text | baeri7 | |
| $.raw.message.from.language_code | text | de | |
| $.raw.message.from.is_premium | bool | true | |
| $.raw.message.chat.id | numeric | 50003182 | |
| $.raw.message.chat.first_name | text | baer | |
| $.raw.message.chat.username | text | baeri7 | |
| $.raw.message.chat.type | text | private | |
| $.raw.message.date | numeric | 1779473663 | |
| $.raw.message.text | text | 🧸 | |
| $.ts | text | 2026-05-22T18:14:23.944672+00:00 |
2. Konfiguration
Letzter Payload
{
"bot_id": "baer_home_bot",
"update_id": 721808662,
"kind": "message",
"chat": {
"id": 50003182,
"type": "private",
"title": "baer"
},
"from": {
"id": 50003182,
"username": "baeri7",
"first_name": "baer",
"last_name": null
},
"message_id": 27,
"text": "🧸",
"date": 1779473663,
"raw": {
"update_id": 721808662,
"message": {
"message_id": 27,
"from": {
"id": 50003182,
"is_bot": false,
"first_name": "baer",
"username": "baeri7",
"language_code": "de",
"is_premium": true
},
"chat": {
"id": 50003182,
"first_name": "baer",
"username": "baeri7",
"type": "private"
},
"date": 1779473663,
"text": "🧸"
}
},
"ts": "2026-05-22T18:14:23.944672+00:00"
}
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.