NEWS
Ekey Adapterfehler
-
Offensichtlich ist der Fehler in den Attributen der split-Funktion:
const values = message.toString('ascii').split(/[\s_?]/);
Der message-String vom Konverter wird durch split in ein values-Array aufgeteilt. Als Trennzeichen werden im regulären Ausdruck space, underline und Fragezeichen angegeben.
Da der Vorname am Ende ein Leerzeichen hat, wird das Leerzeichen in ein values-Feld kopiert und die folgenden Werte verschieben sich in hintere Arrays.
Ich denke, folgender String ist korrekt:
const values = message.toString('ascii').split(/[_]/);
oder ohne den regulären Ausdruck
const values = message.toString('ascii').split("_");
Nun muss ich schauen, wie ich die Quelle in meiner ioBroker Installation korrigiere.
Frage an die ioBroker-Programmierer: Wie kommt so eine Änderung in den Auslieferungsstand (Prozess, Versionsnummer, etc.)?
-
Also der Split oben sollte bedeuten: SPlitte an
-
jedem Whitespace character (\s)
-
jedem underscore (_)
-
jedem Fragezeichen (?)
Also an einem dieser drei zeichen wenn es vorkommt. Da das "_" auch dabei ist sollte es gleichbedeutend sein mit deinem Split - es sei denn eins der anderen zeichen kommt vor darf aber nicht zum Splitten genutzt werden
-
-
Genau!
Das ist gerade mein Problem. Der Vorname hat am Ende ein Leerzeichen abbekommen, das zur Verschiebung der Werte in den Variablen führt. Das Handling der Dateneingabe in der Ekey-Multi-Zentrale ist sehr unbequem, Korrekturen nicht möglich. Display, Cursor und Buchstaben sind sehr klein.
Wenn also ein Name (versehentlich) mit Leerzeichen eingegeben wurde, dann kommt es zu Problemen.
Wenn z.B. ein Adelstitel vorhanden ist (von Richthofen), dann läuft es ebenfalls schief.
Am besten das Leerzeichen als Separator im Adapter rausnehmen und in der Hilfe zum Adapter erwähnen, dass als Separator für Home und Multi ausschließlich _ und Fragezeichen zulässig sind. Ggf. macht auch ; Sinn.
_ als Separator ist ja im Konverter bereits voreingestellt.
-