baer-meter-heater/events/rpc
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.
| $.src | text | shellypro3em-2cbcbba71b94 | |
| $.dst | text | baer-meter-heater/events | |
| $.method | text | NotifyEvent | |
| $.params.ts | numeric | 1779372600.58 | |
| $.params.events[0].component | text | emdata:0 | |
| $.params.events[0].id | numeric | 0 | |
| $.params.events[0].event | text | data | |
| $.params.events[0].ts | numeric | 1779372540.0 | |
| $.params.events[0].data.ts | numeric | 1779372540 | |
| $.params.events[0].data.period | numeric | 60 | |
| $.params.events[0].data.values[0][0] | numeric | 0.011 | |
| $.params.events[0].data.values[0][1] | numeric | 0.011 | |
| $.params.events[0].data.values[0][2] | numeric | 0.0 | |
| $.params.events[0].data.values[0][…] | array | (51 Elemente) |
2. Konfiguration
Letzter Payload
{
"src": "shellypro3em-2cbcbba71b94",
"dst": "baer-meter-heater/events",
"method": "NotifyEvent",
"params": {
"ts": 1779372600.58,
"events": [
{
"component": "emdata:0",
"id": 0,
"event": "data",
"ts": 1779372540.0,
"data": {
"ts": 1779372540,
"period": 60,
"values": [
[
0.011,
0.011,
0.0,
0.0,
0.0322,
0.0,
0.0,
0.0,
7.1,
6.7,
230.669,
230.12,
230.368,
0.031,
0.029,
0.03,
0.011,
0.0111,
0.0,
0.0,
0.0,
0.0192,
1.1,
1.1,
6.9,
6.5,
231.087,
230.517,
230.78,
0.03,
0.028,
0.029,
0.0,
0.0,
0.0151,
0.0151,
0.0093,
0.0,
-1.0,
-1.3,
6.9,
6.4,
231.441,
230.964,
231.207,
0.03,
0.028,
0.029,
0.029,
0.028,
0.029
]
]
}
}
]
}
}
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.