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.
-
Der fix wäre einfach. Mach doch mal einen pull request
Geh auf GitHub, wähle das file aus. Oben rechts auf den Stift klicken, wirf das \s raus beschrieb unten was und warum und schicke es ab
Gesendet vom Handy …
-
Wie heißt der genaue Dateiname des Ekey Adapter main.js im \opt\iobroker\node_modules Verzeichnis?
… in meiner Windows 10 Installation ist es dann eher C:\iobroker\node_modules - nehme ich an.
-
Wie kann ich mit geringstem Aufwand das Ekey main.js ändern (ggf. direkt im System patchen)?
Oder wie kann ich die von mir modifizierte Quelle als Adapter in meine vorhandene ioBroker Installation integrieren?
-
Ich habe jetzt den Ekey Adapter aus github geclont und in meinem eigenen Repository mit der Änderung \s >> ; gepushed.
Wie bekomme ich jetzt diese Quellen als aktualisierten Ekey-Adapter in meine laufende ioBroker Installation runtergeladen?
-
Ok, hab den Pfad für einen Patch gefunden:
C:\ioBroker\node_modules\iobroker.ekey\main.js
-
Die Änderung ist gemerged und man kann von github die Version ausprobieren.
-
Danke
Kann ich die Version direkt in ioBroker laden (alten Adapter löschen, neuen installieren) oder muss ich besonders vorgehen?
-
Brauchst nichts deinstallieren. EInfach "drüber" Installieren per Admin
-
Super! Danke