Homegear / openHAB: Unknown data type 209


#1

Hallo @sathya

ich habe z.Z. ein Problem mit einer Integer-Systemvariablen. Diese wird wohl als int64 angelegt, leider kann openHAB diesen Datentyp nicht verarbeiten:

[WARN ] [ematic.handler.HomematicThingHandler] - Unknown data type 209

Hier ist ein alter Post, der sich mit dem Datentyp beschäftigt.
https://forum.homegear.eu/t/BIN-RPC-DeviceList-ung%C3%BCltig/971/6

Ich bin mir nicht sicher, ob das ein Homegear oder openHAB-Fehler ist, eine Lösung wäre auf jeden Fall int64 nur zu verwenden, wenn die Zahl nicht in int32 hineinpasst. (Was meistens der Fall sein sollte.)

Im Moment behelfe ich mir, indem ich aus der Zahl einen float mache.


#2

Hallo @job,

schön wäre natürlich, wenn in OpenHAB der 64-Bit-Typ unterstützt würde… Eigentlich würde ich den 32-Bit-Integer gerne irgendwann rausschmeißen - beide zu verwenden macht gerne mal Probleme.

Jetzt wird wie gewünscht 32 Bit verwendet, wenn der Wert da reinpasst. Außerdem ist nach Anlage der Typ einer Systemvariablen jetzt fix. Es können allerdings andere Typen reingegeben werden, z. B. wird ein Integer in ein Float konvertiert und umgekehrt (mit Rundung).

Viele Grüße

Sathya


#3

Hi @sathya,

du bist zu schnell. Das war nur eine Möglichkeit. Wie gesagt, ich habe bereits einen Workaround, von daher ist es noch nicht einmal für mich wichtig. Und auch die Neudefiniton der Systemvariablen vom Typ Variant in strenge Typen kann durchaus viele Nebeneffekte bei Benutzern hervorrufen… Ausser du möchtest das aus anderen Gründen.

Wenn du das jetzt geändert hast, ist es zudem noch schwieriger eine Änderung in openHAB zu bekommen, weil es ja gar kein Problem mehr ist.

Viele Grüße

Joachim


#4

Und auch die Neudefiniton der Systemvariablen vom Typ Variant in strenge Typen kann durchaus viele Nebeneffekte bei Benutzern hervorrufen…

Ja, ich hoffe aber, dass sich diese im Rahmen halten. Der Typ lässt sich ja beliebig wählen, nur nicht mehr ändern ohne die Variable zu löschen. Ich hatte so viele Forderungen nach Beibehaltung des Typs, dass ich das jetzt mal umgesetzt aber. Ich vermute mal, es wird die Probleme eher reduzieren (z. B. wird ein Float ohne Dezimalstellen jetzt nicht mehr als Integer interpretiert).

Wenn du das jetzt geändert hast, ist es zudem noch schwieriger eine Änderung in openHAB zu bekommen, weil es ja gar kein Problem mehr ist.

Naja, 64-Bit-Integer gibt es ja noch (genauso wie die Typen Struct und Array) - sie werden auch tatsächlich in Homegear und von einigen Geräten verwendet. Von daher wäre eine Implementierung nach wie vor wünschenswert.

Viele Grüße

Sathya


#5

Dann ist gut, wenn ich nicht der einzige war. Ich denke auch, dass der Typ eher statisch sein sollte.

Kannst Du mir einen Hinweis geben, wobei? Dann könnte ich mal ein Issue im openHAB-github einwerfen.


#6

Hallo @job,

logicalStruct (0x101) zum Beispiel im Nanoleaf-Modul, logicalArray (0x100) im Sonos-Modul.

64-Bit-Integer sehe ich tatsächlich gerade nicht, wären aber zum Beispiel für Zeitstempel interessant.

Viele Grüße

Sathya