NEWS
InfluxDB - Boolean als Zahl speichern
-
Ich bin gerade am Anfang mit Influx, also bitte um Verzeihung wenn das ein Anfängerfehler ist.
Ich habe einen Boolschen Wert (Türzustand bzw. Beweungsmelder) und möchte diesen in der InfluxDB als Zahl (0 oder 1) speichern um das Ganze in Grafana anzeigen zu können.
Bei manchen Werten klappt das, bei anderen nicht.
Ich bin mir jetzt nicht sicher, ob ich bei den Objekten, bei denen es nicht klappt, zuallererst bei "Speichern als" "Automatisch"eingestellt hatte. Deshalb zuerst die Frage: Kann man den Wert nachträglich ändern? Wenn nein, wie lösche ich einen Datanbanksatz? Nur das Objekt löschen reicht jedenfalls nicht.
Wenn man das auch nachträglich ändern kann, warum klappt das dann nicht? Hier das Objekt, bei dem in der Datenbank immer 0 und 1 steht:{ "type": "state", "common": { "name": "DoorCloseFalse", "type": "boolean", "role": "Rolle", "raum": "Raum", "desc": "per Script erstellt", "read": true, "write": true, "alias": { "id": "zigbee.2.00124b0022ec14ea.opened" }, "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": 0, "maxLength": 10, "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "Number", "aliasId": "" } } }, "role": "Tuer", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1620337574843, "_id": "alias.0.Raum.Bad.Tuer.0.opened", "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} }
und hier der Bewegungsmelder, bei dem immer "True" und "False" in der Datenbank stehen. Ich sehe keinen relevanten Unterschied.
{ "role": "Bewegung", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1620337574839, "common": { "name": "Movement", "type": "boolean", "role": "Rolle", "raum": "Raum", "desc": "per Script erstellt", "read": true, "write": true, "alias": { "id": "zigbee.2.00158d00046663cd.occupancy" }, "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": 0, "maxLength": 10, "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "Number", "aliasId": "" } } }, "native": {}, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 }, "_id": "alias.0.Raum.Flur.Bewegung.0.motion", "type": "state" }
-
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
Deshalb zuerst die Frage: Kann man den Wert nachträglich ändern
nein
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
wie lösche ich einen Datanbanksatz?
https://forum.iobroker.net/post/495963
dafür vorher das loggen für den jeweiligen Datenpunkt erst deaktivieren
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
und möchte diesen in der InfluxDB als Zahl (0 oder 1) speichern um das Ganze in Grafana anzeigen zu können.
warum?
-
@crunchip sagte in InfluxDB - Boolean als Zahl speichern:
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
Deshalb zuerst die Frage: Kann man den Wert nachträglich ändern
nein
OK, war auch meine Vermutung weil sich einfach nichts getan hat. Etwas verwirrend ist es aber schon, dass man das zwar in den Objekten ändern kann, sich in der Datenbank aber nichts mehr tut. Ein Hinweis wäre da vielleicht sinnvoll um den User auf dieses Verhalten hinzuweisen.
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
wie lösche ich einen Datanbanksatz?
https://forum.iobroker.net/post/495963
dafür vorher das loggen für den jeweiligen Datenpunkt erst deaktivieren
Danke, hat jetzt geklappt.
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
und möchte diesen in der InfluxDB als Zahl (0 oder 1) speichern um das Ganze in Grafana anzeigen zu können.
warum?
Um z.B. zu erkennen, welcher Bewegungsmelder das Licht eingeschaltet hat oder wie sich ein geöffnetes Fenster oder eine Tür auf den Temperaturverlauf auswirkt oder um zu sehen, wie sich die Raumtemperatur vom Zustand der Heizung auswirkt.
Mir ist es jedenfalls nicht gelungen, in Grafana direkt true/false anzeigen zu lassen, ich nehme aber auch hier gerne Vorschläge entgegen. -
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
Mir ist es jedenfalls nicht gelungen, in Grafana direkt true/false anzeigen zu lassen, ich nehme aber auch hier gerne Vorschläge entgegen.
kommt darauf an, wie du es denn darstellen lassen möchtest bzw welche Influx Version du verwendest.
ein Beispiel wäre mit dem Plugin Discretemehr Möglichkeiten hast, wenn du deinen DP z.b. mittels Alias auf 1/0 umwandelst und diesen in die Influx loggst.
oder du hast Influx v2, dann https://docs.influxdata.com/influxdb/v2.0/reference/syntax/flux/flux-vs-influxql/#cast-booleans-to-integers
-
Hallo
Wenn ich Dich richtig verstehe, dann geht das in Grafana überhaupt nicht sondern ich muss das vorher in Influx machen. Aber wozu dann Alias oder Plugin? Wenn ich in den Objekten beim "Speichern als" anstelle von "automatisch" "Nummer" eintrage bekomme ich ja sofort 0/1 in der Datenbank.
-
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
Wenn ich in den Objekten beim "Speichern als" anstelle von "automatisch" "Nummer" eintrage bekomme ich ja sofort 0/1 in der Datenbank.
nein warum auch, wenn dein Datenpunkt vom Typ boolean ist, wird auch nur true/false ausgegeben,
du kannst diesen per Alias im Vorfeld umwandeln nach 1/0 und diesen dann loggen.mit dem genannten plugin kann man auch boolean in Grafana anzeigen lassen und muss nicht umwandeln. Daher ist halt die Frage, wie möchtest du es im Dashboard darstellen.
mit der neuen Version von Influx und Grafana , soviel ich weiss, ist das umwandeln jedoch nicht mehr nötig, hab mich allerdings damit noch nicht beschäftigt.
-
@crunchip sagte in InfluxDB - Boolean als Zahl speichern:
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
Wenn ich in den Objekten beim "Speichern als" anstelle von "automatisch" "Nummer" eintrage bekomme ich ja sofort 0/1 in der Datenbank.
nein warum auch, wenn dein Datenpunkt vom Typ boolean ist, wird auch nur true/false ausgegeben,
du kannst diesen per Alias im Vorfeld umwandeln nach 1/0 und diesen dann loggen.Nein, probiere es aus:
{ "type": "state", "common": { "name": "Movement", "type": "boolean", "role": "Rolle", "raum": "Raum", "desc": "per Script erstellt", "read": true, "write": true, "alias": { "id": "zigbee.2.00124b0022ec97cf.occupancy" }, "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": 0, "maxLength": 10, "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "Number", "aliasId": "" } } }, "role": "Bewegung", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1620337574814, "_id": "alias.0.Raum.Essen.Bewegung.0.motion", "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} } Hier die Einstellungen für influx
und hier die History (mit 0/1)
-
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
"type": "boolean",
@wolfgangfb sagte in InfluxDB - Boolean als Zahl speichern:
"storageType": "Number",
ist falsch
-
@wolfgangfb
Warum falsch? Es funktioniert. Der Zweck heiligt die Mittel.