NEWS
iobroker, mqtt adapter ändert plötzlich alias
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
unter diesem Namen gespeichert wird:
und ob dieser Name wirklich funktioniert ist ggf. nicht getestet weil nicht vorgesehen gewesen.
da muss eine ID hin!
in der Form von Adapter.0.jetztDerName -
@homoran sagte in iobroker, mqtt adapter ändert plötzlich alias:
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
unter diesem Namen gespeichert wird:
und ob dieser Name wirklich funktioniert ist ggf. nicht getestet weil nicht vorgesehen gewesen.
da muss eine ID hin!
in der Form von Adapter.0.jetztDerNameIch widerspreche nur ungern - aber meines Erachtens hat dieser Name nur was mit der Benamsung in der Datenbank zu tun und mit keinem Datenpunkt im iobroker.
Ich habe gerade mal einen Datenpunkt unter mqtt - benutzt:
Vorher wurde der unter:
mqtt.1.shellies.licht.wohnzimmer.vitrine.relay.0.power
abgespeichert und mit der Definition eines Alias Vitrine-Wohnzimmer nun als neuer Datenpunkt in der influx DB:
Deshalb hat dieser Alias 0,0 mit dem iobroker System zu tun, sondern dient nur der Umbenennung der Datenreihe in der Influx DB
Wie gesagt ich habe keine Lösung für irgendwelches Fehlverhalten, aber WENN es etwas gibt, würde ich das EINZIG und ALLEINE dem Influx-Adapter zuordnen und nirgendwo sonst.
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
Ich widerspreche nur ungern -
darfst du aber gerne
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
meines Erachtens hat dieser Name nur was mit der Benamsung in der Datenbank zu tun und mit keinem Datenpunkt im iobroker.
korrekt!
Aber ich weiss nicht wie die Struktur der DB aufgebaut ist und ob da die entsprechenden Bezeichner der Namespaces notwendig sind, ohne bei entsprechend notwendiger Struktur undefined.undefined.Name anzulegen, oder Name.undefined.undefined , oder jede andere Möglichkeit, was zu dem erwähnten Problem führen würde
(alles rein hypothetisch)
-
@homoran sagte in iobroker, mqtt adapter ändert plötzlich alias:
Aber ich weiss nicht wie die Struktur der DB aufgebaut ist und ob da die entsprechenden Bezeichner der Namespaces notwendig sind, ohne bei entsprechend notwendiger Struktur undefined.undefined.Name anzulegen, oder Name.undefined.undefined , oder jede andere Möglichkeit, was zu dem erwähnten Problem führen würde
Der Name in der Influx-DB wird vom Adapter selbst angelegt - entweder über den vollständigen Pfad oder eben anscheinend über den Alias und immer in der iobroker Datenbank der Influx-DB (also im iobroker bucket - dieser Name ist ja fix).
Das habe ich jetzt ehrlich gesagt nicht verstanden. - Ich habe ja bewusst mal den Alias ähnlich gewählt, wie der TE und das hat bei mir ja getan (s. Screenshot). Die Frage ist doch, wie ich das verstanden habe, wenn plötzlich ein anderer Datentyp reinkommt (also Text anstelle von Zahl), ob das den Adapter aus dem Tritt bringt.
Na gut - ich kann hier nicht viel weiterhelfen - hoffe aber insofern etwas zur Problemlösung beigetragen zu haben, dass man nicht wild sonst im iobroker, mqtt oder wo auch immer rumsucht.
Wie gesagt der TE kann ja auch einen richtigen Alias benutzen, um solche Texte dann ggf. in Zahlenwerte zu wandeln und die kann dann der Influx-Adapter ignorieren - das habe ich ja unten beschrieben.
Ansonsten soll der TE halt mal ein Issue bei dem Influx-Adapter auf gitHub eröffnen.
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
Das habe ich jetzt ehrlich gesagt nicht verstanden.
mein Datenbankwissen bezieht sich auf relationale Datenbanken wie dBase, Paradox u.ä.
dort muss es für jede "Ebene" einen (eindeutigen) Wert in der zugehörigen "Tabelle" geben, damit der Wert richtig zugeordnet werden kann.Die Ebenen wären Adapter --> Instanz --> State, jeweils per 1->viele verknüpft.
Aber wie soll ich wissen was ich denke, bevor ich lese was ich schreibe
Kommando zurück!
das kann schon aufgrund der erweiterten Objektstrukturen so nicht sein -
@homoran Die Zuordnung von einem Datenpunkt zu einer Datenreihe in der Datenbank ist in meinen Augen immer eine 1:1 Beziehung und alleine durch das Zahnrad neben dem Datenpunkt festgelegt. - Was man dann da rein schreibt als Konfig wird in meinen Augen nie und nimmer was an dieser 1:1 Beziehung ändern - ausser der Adapter generell bringt irgendwas durcheinander, da dieser ja in die Datenbank letztlich schreibt und deshalb tun und lassen kann was er will. Der wird ja dann von nichts mehr kontrolliert .
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
Deshalb hat dieser Alias 0,0 mit dem iobroker System zu tun, sondern dient nur der Umbenennung der Datenreihe in der Influx DB
"0,0" stimmt leider nicht. Wenn ich so wie der TE einen Alias "Wasser-CAM-Haus" eintrage:
... dann wird (sobald die ersten Daten geschrieben werden sollen) automatisch ein entsprechender Datenpunkt in "root" angelegt:
Ich habe das auch mal mit verschiedenen Datentypen durchgespielt. Alles was dabei passiert ist, dass der nicht passende Eintrag nicht geschrieben wird, weil der Datentyp nicht übereinstimmt. Der nächste passende wird wieder in die DB geschrieben. Die Aliasse bleiben bei mir aber unberührt und werden nicht umbenannt.
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
@homoran Die Zuordnung von einem Datenpunkt zu einer Datenreihe in der Datenbank ist in meinen Augen immer eine 1:1 Beziehung und alleine durch das Zahnrad neben dem Datenpunkt festgelegt.
auch korrekt!
aber kann diese Zuordnung fehlerfrei stattfinden wenn sie in die vom Adapter im Hintergrund angelegte Struktur der Datenbank dabei nicht eindeutig zugeordnet werden kann, weil Strukturelemente fehlen?
Ist aber jetzt nur Kaffesatzleserei, da ich nicht weiß wie die interne Struktur der iobroker.db (oder unter welchem Namen auch immer sie in influxDB angelegt wird) aussieht.
-
@marc-berg Das kann ich nicht bestätigen. Ich habe wie gesagt, dass gerade mal auf einem Testsystem gemacht und einen Alias "Wohnzimmer-Vitrine" angegeben und da taucht nirgendwo ein Datenpunkt auf.
-
"Einsteiger" Unterforum.... hier versteht ein Einsteiger ja mittlerweile nixmehr
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
@marc-berg Das kann ich nicht bestätigen. Ich habe wie gesagt, dass gerade mal auf einem Testsystem gemacht und einen Alias "Wohnzimmer-Vitrine" angegeben und da taucht nirgendwo ein Datenpunkt auf.
Auch, nachdem Daten geschrieben wurden?
-
@homoran sagte in iobroker, mqtt adapter ändert plötzlich alias:
aber kann diese Zuordnung fehlerfrei stattfinden wenn sie in die vom Adapter im Hintergrund angelegte Struktur der Datenbank dabei nicht eindeutig zugeordnet werden kann, weil Strukturelemente fehlen?
Brauchst Du doch nicht.
Im bucket iobroker - wird der Alias als measurement geführt. Der Alias muss natürlich eindeutig sein.
-
@djmarc75 sagte in iobroker, mqtt adapter ändert plötzlich alias:
"Einsteiger" Unterforum.... hier versteht ein Einsteiger ja mittlerweile nixmehr
wo?
-
@marc-berg Ja ich lese ja in meinem Beispiel einfach über mqtt- den aktuellen Verbrauch der Shellies aus:
Wenn ich dann alle Datenpunkte nach "Vitrine" filtere - es gibt keine zusätzlichen Datenpunkte wegen einem Alias im influx-DB.
Weder im root noch sonst wo.
-
@djmarc75 sagte in iobroker, mqtt adapter ändert plötzlich alias:
"Einsteiger" Unterforum.... hier versteht ein Einsteiger ja mittlerweile nixmehr
Entweder wurde es verschoben, aber ich denke wir befinden uns im Error/Bug Bereich?
-
@homoran sagte in iobroker, mqtt adapter ändert plötzlich alias:
wo?
plötzlich anderes Unterforum ? ...
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
verschoben
wenn hier ein angeblicher Bug gemeldet wird, bleibt es bis zur Klärung erst einmal hier
-
@mickym sagte in iobroker, mqtt adapter ändert plötzlich alias:
Wenn ich dann alle Datenpunkte nach "Vitrine" filtere - es gibt keine zusätzlichen Datenpunkte wegen einem Alias im influx-DB.
Weder im root noch sonst wo.
Genau. Das passiert nur, wenn der InfluxDB-Datentyp-Fehler auftritt:
2023-05-12 14:36:13.949 - warn: influxdb.1 (198279) Point could not be written to database: iobroker30d 2023-05-12 14:36:13.951 - warn: influxdb.1 (198279) Error on writePoint("{"value":"12.05.2023 14:36:13","time":"2023-05-12T12:36:13.915Z","from":"system.adapter.mqtt.0","q":0,"ack":true}): HttpError: failure writing points to database: partial write: field type conflict: input field "value" on measurement "Wasser-CAM-Haus" is type string, already exists as type float dropped=1 / "failure writing points to database: partial write: field type conflict: input field \"value\" on measurement \"Wasser-CAM-Haus\" is type string, already exists as type float dropped=1"" 2023-05-12 14:36:13.952 - warn: influxdb.1 (198279) Add Wasser-CAM-Haus to conflicting Points (1 now) 2023-05-12 14:36:13.955 - warn: influxdb.1 (198279) setObject Wasser-CAM-Haus (type=undefined) property common.custom must not exist. 2023-05-12 14:36:13.957 - warn: influxdb.1 (198279) Object Wasser-CAM-Haus is invalid: obj.type has to exist 2023-05-12 14:36:13.957 - warn: influxdb.1 (198279) This object will not be created in future versions. Please report this to the developer. 2023-05-12 14:37:20.319 - warn: influxdb.1 (198279) Point could not be written to database: iobroker30d 2023-05-12 14:37:20.319 - warn: influxdb.1 (198279) Error on writePoint("{"value":"12.05.2023 14:37:20","time":"2023-05-12T12:37:20.287Z","from":"system.adapter.mqtt.0","q":0,"ack":true}): HttpError: failure writing points to database: partial write: field type conflict: input field "value" on measurement "Wasser-CAM-Garten" is type string, already exists as type float dropped=1 / "failure writing points to database: partial write: field type conflict: input field \"value\" on measurement \"Wasser-CAM-Garten\" is type string, already exists as type float dropped=1"" 2023-05-12 14:37:20.319 - warn: influxdb.1 (198279) Add Wasser-CAM-Garten to conflicting Points (2 now) 2023-05-12 14:37:20.324 - warn: influxdb.1 (198279) setObject Wasser-CAM-Garten (type=undefined) property common.custom must not exist. 2023-05-12 14:37:20.325 - warn: influxdb.1 (198279) Object Wasser-CAM-Garten is invalid: obj.type has to exist 2023-05-12 14:37:20.325 - warn: influxdb.1 (198279) This object will not be created in future versions. Please report this to the developer.
Danach sind die Datenpunkte vorhanden.
-
@marc-berg Ja aber dann ist das eindeutig ein Bug im Influx-DB Adapter.
Ausserdem steht da ja, dass der Adapter da einen Konflikt erkennt: Add Wasser-CAM-Garten to conflicting Points (2 now)Dann kann man dem TE wie gesagt nur raten, einen richtigen Alias zu verwenden und in der Konvertierungsfunktion nicht numerische Werte auszuschließen (wie ich weiter unten ja gezeigt habe: https://forum.iobroker.net/post/990558) und ein Issue hier zu erstellen bzw. habe gerade gesehen gibt bereits einen Eintrag - den könnte man ggf. nutzen: