NEWS
Problem beim Einbinden eines node.js Adapters
-
-
@Boardy sagte in Problem beim Einbinden eines node.js Adapters:
Fehlt mir da noch was? sieht für mich aus als würde er alles deklarieren und dann normal beenden...
Das sieht grundsätzlich gut aus. Ich würde Breakpoints allerdings in der Klasse selber setzen (zB im Konstruktor) und nicht in den Deklarationen. Zudem kannst du mal ganz unten links die Option einschalten, dass der Debugger anhalten soll, wenn eine Exception geschieht (und zwar beides: caught und uncaught). Wenn also was schief geht, hält der Debugger an.
-
@UncleSam ok da hab ich mich unklar ausgedrückt. Im Konstruktror saß ein Breakpoint - wurde nicht angesprungen..
nun hab die die Exceptions aktiviert - auch hier werden nur die 3 Coding Stellen s.o. angeprungen... ist sicher ein ganz dummer Anfängerfehler...
-
@Boardy ich habe es hinbekommen.. ich habe den Konstruktor umgebaut analog deinem Luxtronix, nun geht es....
-
@Boardy in deinem Screenshot verwendest du
require.main
zum Prüfen, ob das Modul importiert oder direkt gestartet wurde. Bist du sicher, dass der Check nicht falsch ist (siehe auch https://stackoverflow.com/a/45137096/10179833)?if (require.main === module) { // this module was run directly from the command line as in node xxx.js } else { // this module was not run directly from the command line and probably loaded by something else }
Auf Github sieht es noch so aus
https://github.com/Bordman-ger/ioBroker.nanodmx/blob/master/src/main.ts#L203-L209
was funktionieren sollte (und im Übrigen vom Adapter-Creator auch so erzeugt wird). -
@AlCalzone Vielen Dank dass du dir das auch noch mal angesehen hast...
direct nach dem Creator hatte ich da etwas rumoptimiert weil ich folgenden Hinweis bekommen habe:
Was nun optimal wäre habe ich noch nicht verstanden aber mit module.parent geht es ja endlich (-:
Bist du sicher, dass der Check nicht falsch ist
ich bin mir bei gar nichts sicher, alles Neuland, IOBroker erst seit ein paar Wochen und Node.js, JS, Typescript, VSCode, alles neu... daher stochere ich da sehr im Trüben und versuche bis was bei rauskommt...Auf Github sieht es noch so aus
nein, da ist schon die neue Version es sieht WIEDER gut aus, seit heute Mittag läuft mein Adapter und ich konnte auch schon was damit ansteuern... das Adapter Gerüst war wohl das größte Problem...Auch hier noch mal Danke für das schöne Video zum Typescript und eure Hilfe...
nun geht es vermutlich schnell weiter mit dem proggen..Vielen Dank und Gute Nacht (-:
Uwe
-
@Boardy sagte in Problem beim Einbinden eines node.js Adapters:
Was nun optimal wäre habe ich noch nicht verstanden aber mit module.parent geht es ja endlich (-:
Lass es so, ist nur ein Hinweis. Über eine Änderung kann man nachdenken, wenn Node 14 unsere minimal unterstützte Version ist.
-
@AlCalzone @UncleSam eine Kleinigkeit fehlt noch, dann hab ich den Adapter soweit um mein Minimalziel zu erreichen und die Objektänderungen vom IOBroker kommen im USB Stick an... aber ich hänge noch - vermutlich eine Variablendeklarationsproblem...
Könnt ihr bitte noch mal gucken was da schief gehen könnte?
irgend was mit der Portnummer ist schief - es ändert auch nichts wenn ich diese als String definiere, wenn ich den Festwert als 11 oder "11" übergebe geht es... wa sist da falsch?
das log
Debuggen kann ich leider noch nicht da ich nun in den Synology Container reindebuggen mpüsste und SSH noch nicht läuft
mein GitHub ist wieder aktuell
-
@Boardy Wenn ich das richtig deute, fehlen da da die eckigen Klammern:
....update({ [portnumber]: state.val }); // setzt die Eigenschaft "11", wenn in portnumber 11 steht
One die eckigen Klammern setzt du die Eigenschaft "portnumber" des Objekts.
==> https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Objekt_Initialisierer, scrolle zu Berechnete Bezeichnernamen
-
@AlCalzone
Dank dir das wars.. -
@AlCalzone
@UncleSam
So, noch mal vielen Dank für die Hilfe, der Adapter lief nun einige Wochen im Test und es gab keine Probleme... was muss ich denn noch machen um den Adapter der Community verfügbar zu machen?UncleSam, mein Adapter sollte universell für ein paar verschiedene DMX Treiber funktionieren, vielleicht läuft er ja auch bei dir?
Aus diesem Grund habe ich ihn noch mal umbenannt und er ist nun hier als nodedmx zu finden:
https://github.com/Bordman-ger/ioBroker.nodedmx.gitLG Uwe
-
@Boardy sagte in Problem beim Einbinden eines node.js Adapters:
was muss ich denn noch machen um den Adapter der Community verfügbar zu machen?
Du musst ihn nun im Repository eintragen. Alle Infos findest du hier:
https://github.com/ioBroker/ioBroker.repositories/UncleSam, mein Adapter sollte universell für ein paar verschiedene DMX Treiber funktionieren, vielleicht läuft er ja auch bei dir?
Werde ich mir gerne anschauen. Und wenn es (noch) nicht geht, dann werde ich sicher schauen, dass wir meinen Code bei dir einbringen können.
-
@UncleSam Danke - na so richtiger Massentest fehlt ja noch dann mach ich noch mal einen Post im Forum mit etwas aussagekräftigerem Namen und lasse es erst mal dabei...
hier geht es weiter:
https://forum.iobroker.net/topic/40458/neuer-adapter-für-dmx-controler