Hallo allerseits,
ich wusste nicht so wirklich, wie die Überschrift lauten sollte. Da bin ich für Verbesserungsvorschläge offen.
Zur Sache ... ich habe ein kleines Problemchen, bei dem ich einfach nicht weiterkomme. Die Hauptaktoren bei der Problematik sind IoBroker und ein ESP32 basierender Planzensensor, namens LILYGO TTGO T-Higrow. Vorgeschlagene Firmware bietet kein mqtt. Dank anderer Firmware funktioniert das aktuell auch, der Datenpunkt wird unter mqtt erzeugt und laufend aktualsiert. Soweit, so gut. Läuft, aber ...
Leider bekomme ich die Werte in einem einzigen Json-String. Den kann ich mangels weiterer Kentnisse nicht in Vis darstellen und auch nicht in weitere Scripte einbinden.

{"Vista":{"Vista":"Pflanze1"},"date":{"date":"09-01"},"time":{"time":"14:28"},"sleep5Count":{"sleep5Count":0},"bootCount":{"bootCount":0},"lux":{"lux":22.5},"temp":{"temp":14.7},"humid":{"humid":70},"soil":{"soil":5},"salt":{"salt":0},"bat":{"bat":154},"rel":{"rel":"1.7"}}
Der Datenpinkt, in den der Json-String geschrieben wird, sieht so aus:
{
"common": {
"name": "Vista/Pflanze1",
"write": true,
"read": true,
"role": "variable",
"desc": "mqtt server variable",
"type": "string"
},
"native": {
"topic": "Vista/Pflanze1"
},
"type": "state",
"from": "system.adapter.mqtt.0",
"user": "system.user.admin",
"ts": 1610195297496,
"_id": "mqtt.0.Vista.Pflanze1",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}
Ich habe ebenfalls von Xiaomi die FlowerCare Sensoren, die Meßwerte sind, sagen wir mal naja.
Aber die Ausgabe der Daten in seperaten Datenpunkten macht es mir möglich damit weiter zu arbeiten.
Das Bluetooth Signal von den Flower Care Sensoren wird von mit einem ESP32 aufgefangen und per mqqt
an einen Broker gesendet. Die Ordnerstruktur und die Datenpunkte sind identisch zu denen, die per Bluetooth übertragen werden.

{
"type": "state",
"common": {
"role": "value",
"read": true,
"write": false,
"name": "Moisture",
"desc": "Moisture of the soil",
"type": "number",
"unit": "%"
},
"native": {},
"from": "system.adapter.ble.0",
"user": "system.user.admin",
"ts": 1608768882852,
"_id": "ble.0.c4:7c:8d:6a:d2:67.moisture",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}
So hätte ich das auch gern, anstelle des einen Json strings. Bekommt man soetwas sauber hin?
Den String so behalten, die Werte auslesen und die Datenpunkte seperat aus dem String erzeugen.
Würde mich aber auch glücklich machen.
Ich bin mir nicht sicher, ob jemand das Problem versteht, ich hoffe aber schwer drauf, weil ich sonst nicht weiß, wo ich fragen kann und das Projekt damit auf der Kippe steht. Die scripte kann ich bei Bedarf auch dazu hochladen.
Ich sitze nun seit 2 Tagen davor und habe gefühlt nichts geschafft oder begriffen. Hilfe wäre cool.
Und nochmals 1,5 Stunden an dem Post hier. 