NEWS
Debugging bzw. Entwicklungsumgebung für/von ioBroker
-
Hallo,
wie kann man ioBroker debuggen? Und gibt es eine Entwicklungsumgebung die man nutzen kann? (Webstorm, Eclipse?).
BTW, ist die ganze Entwicklung nur von Bluefox? Wahnsinn!
Danke
Steve
-
Hallo,
wie kann man ioBroker debuggen? Und gibt es eine Entwicklungsumgebung die man nutzen kann? (Webstorm, Eclipse?).
BTW, ist die ganze Entwicklung nur von Bluefox? Wahnsinn!
Danke
Steve `
Hallo StefSign,Ich benutze WebStorm. Um Adapter zu debuggen man muss den deaktivieren und dann in Webstorm mit dem argument "–force" starten.
Ungefähr so:
Ich bin nicht ganz allein. Bis 30.09.2014 hat hobbyquaker viel geschrieben. Und jetzt SmilingJack hilft mir bei vis.
Aber ja… Seit Oktober bin ich allein überall außer "vis"
-
Hallo Bluefox,
bin gerade am probieren mit Webstorm…es gibt aber noch Anlaufschwierigkeiten.
Steps:
-
Ich habe mir ioBroker.js-controller als ZIP File geladen und als Webstorm Projektverzeichnis genutzt.
-
Habe npm install gemacht und dann versucht controller.js mit start als Argument zu starten.
-
Auch mit obigen Einstellungen komme ich nicht weiter.
Fragen:
-
Hast du noch einen anderen Screendump oder Tips?
-
Wenn ich Grunt benutze laufen wir Gefahr das ich meine Sourcen auf Git hochladen?
Danke
Steve
-
-
Hallo Bluefox,
bin gerade am probieren mit Webstorm…es gibt aber noch Anlaufschwierigkeiten.
Steps:
-
Ich habe mir ioBroker.js-controller als ZIP File geladen und als Webstorm Projektverzeichnis genutzt.
-
Habe npm install gemacht und dann versucht controller.js mit start als Argument zu starten.
-
Auch mit obigen Einstellungen komme ich nicht weiter.
filename="Screen Shot 2015-02-22 at 18.46.20.png" index="1">~~
Fragen:
-
Hast du noch einen anderen Screendump oder Tips?
-
Wenn ich Grunt benutze laufen wir Gefahr das ich meine Sourcen auf Git hochladen?
Danke
Steve `
ich empfehle nicht mit zips zu arbeiten, sondern mit git. (Dafür brauchst du natürlich Account (for free)).ioBroker.js-controller-master ist schlecht, weil der sucht immer "ioBroker.js-controller" und es wird einiges nicht gehen.
So starte ich controller.
Weil du manuell controller geladen hast, muss man den initialisieren:
In der Konsole dann````
iobroker setup firstaufrufen. Wenn du Controller als Debug startest, dann werden andere Adapter nicht automatisch gestartet. Um einen Adapter zu debuggen muss ein Controller auf jeden Fall laufen. Ich mache normalerweise so, dass ich in meiner laufenden ioBroker-Instanz einen Adapter deaktiviere und den dann mit "–force" Argument in WebStorm starte. Beim Grunt Laufen wird nichts auf Git hoch geladen. Nur Syntax geprüft.
-
-
Hallo Bluefox,
also jetzt habe ich doch noch ein paar Fragen…
Wenn ich einen Adapter debuggen möchte:
-
Ich starte von der CLI eine iobroker Instanze mit ./iobroker start. Wie kann ich dann einen Adapter deaktivieren? Meinst du löschen?
-
Wenn ich dann den Javascript Adapter in Webstorm im Debug Modus starte…kommt dann nur "debugger listening on port 40197" und
dann error: javascript.0 invalid config"
- Falls der Adapter doch mal laufen sollte...wie kann ich diesen in iobroker aufnehmen?
ioBroker debuggen:
- Wenn ich ioBroker im Debug Modus starte passiert nicht viel. Du hattest es schon erwähnt…die anderen Adapter werde nicht gestartet und admin ist ja auch
nur ein Adapter ==> kein Web UI. Richtig?
- Warum werden die Adapter dabei nicht gestartet?
BTW, Webstorm Config wie auf den Screendumps übernommen.
Danke schon mal.
Steve
-
-
Hallo Bluefox,
jetzt glaube ich habe ich es!
Eureka!!!
-
ioBroker normal im Webstorm starten
-
In Web UI die Adapter Instanz disablen, oder?
-
Dann im Webstorm den entsprechenden Adapter im Debug Modus starten.
-
Breakpoints setzen.
Die anderen Fragen mit ioBroker im Debug Modus sind allerdings noch offen.
Steve
-
-
Die anderen Fragen mit ioBroker im Debug Modus sind allerdings noch offen.
Wenn ich ioBroker im Debug Modus starte passiert nicht viel. Du hattest es schon erwähnt…die anderen Adapter werde nicht gestartet und admin ist ja auch
nur ein Adapter ==> kein Web UI. Richtig?
- Warum werden die Adapter dabei nicht gestartet? `
Da muss man jeden Adapter (welches man wirklich zum debuggen braucht) manuell starten.
Ich habe Settings für "controller", für "admin", für "web" und dann eins, was "adapter" heisst. Da nehme ich immer das was ich debuggen will.
Also bei mir bei Debug laufen mindestens 2 Debug-Instanzen und eine noch die ich tatsächlich debuggen will:
- Warum werden die Adapter dabei nicht gestartet? `
-
Hallo Bluefox,
jetzt glaube ich habe ich es!
Eureka!!!
-
ioBroker normal im Webstorm starten
-
In Web UI die Adapter Instanz disablen, oder?
-
Dann im Webstorm den entsprechenden Adapter im Debug Modus starten.
-
Breakpoints setzen.
Die anderen Fragen mit ioBroker im Debug Modus sind allerdings noch offen.
Steve `
Alles richtig ausser:- Dann im Webstorm den entsprechenden Adapter im Debug Modus starten. Mit dem Application parameter: "–force"
-
-
Hallo Bluefox,
bin gerade dabei das Debug Kapitel fürs Wiki vorzubereiten…habe beim Debuggen aber Probleme mit den Breakpoints. Obwohl ich diese im Sourcecode setze werden sie nie aufgerufen. Hattest Du dies schon mal? Ohne Breakpoints ist Debuggen witzlos!
Habe alles wie von Dir vorgegeben eingerichtet.
Steve
-
Hallo Bluefox,
bin gerade dabei das Debug Kapitel fürs Wiki vorzubereiten…habe beim Debuggen aber Probleme mit den Breakpoints. Obwohl ich diese im Sourcecode setze werden sie nie aufgerufen. Hattest Du dies schon mal? Ohne Breakpoints ist Debuggen witzlos!
Habe alles wie von Dir vorgegeben eingerichtet.
Steve `
Kannst du bitte hier Screenshot von deiner Konfiguration posten?
-
N'Abend Bluefox,
so, anbei die erforderlichen Screendumps…
BTW, ich habe so 3-4 Jahre Eclipse Erfahrung und auch schon einige Eclipse Plugins geschrieben, trotzdem will Webstorm manchmal nicht so richtig.
Kann es sein das Webstorm noch nicht so ausgereift ist wie Eclipse?
Danke
-
…ich nochmals,
Kann es sein das manche Breakpoints im Adapter wieh bei main(), writeSettings(), startHMM() (im HMM Adapter) nicht mehr aufgerufen werden sondern nur bei der Erzeugung einer Adapter Instance? D.h. Webstorm würde funktionieren nur die obigen Funktionen nicht mehr aufgerufen?
BTW, Breakpoints bei "adapter.on('message', function (obj) {..." oder "adapter.on('ready', function () {..." funktionieren (sind aber nur diese beiden)
Hatte auch schon überlegt ob es am Browser Chrome und Ubuntu 14.04 liegen könnte?
Ich starte ioBroker auch von Webstorm aus...allerdings nicht im Debugmodus.
Dann einen Adapter im Debugmodus mit verschiedenen Breakpoints.
Danke
Steve
-
…ich nochmals,
Kann es sein das manche Breakpoints im Adapter wieh bei main(), writeSettings(), startHMM() (im HMM Adapter) nicht mehr aufgerufen werden sondern nur bei der Erzeugung einer Adapter Instance? D.h. Webstorm würde funktionieren nur die obigen Funktionen nicht mehr aufgerufen?
BTW, Breakpoints bei "adapter.on('message', function (obj) {..." oder "adapter.on('ready', function () {..." funktionieren (sind aber nur diese beiden)
Hatte auch schon überlegt ob es am Browser Chrome und Ubuntu 14.04 liegen könnte?
Ich starte ioBroker auch von Webstorm aus...allerdings nicht im Debugmodus.
Dann einen Adapter im Debugmodus mit verschiedenen Breakpoints.
Danke
Steve `
Hm.. Es kann sein, aber glaube ich nicht. Allerdings ich entwickle unter Windows und habe auch Probleme mit Node.js x64. x86 dafür läuft im Debug einwandfrei.An Chrome kann es nicht liegen, der wird nicht benutzt bei hmm.js.
Und wenn 'ready' funktioniert dann kommt doch main und dann "startHMM". Kannst du mit StepByStep gehen?
-
Juhu, ich bin im Debugger.
Ich bin im iCal-Adapter mal StepByStep durchgegangen und hab auch gefühlte 20% davon verstanden :?
Jetzt möchte ich gerne ins Debugging des Javascript-Adapters um zwei Fliegen mit einer Klappe zu schlagen und zu verfolgen warum meine ersten Scripte nicht das tun was ich möchte
Allerdings bekomme ich beim Starten des Debuggings die folgende Fehlermeldung und es wird offensichtlich auch kein Breakpoint ausgelöst.
Wieso wird denn jetzt zwischendurch der Adapter disabled? Was läuft hier noch nicht richtig?Gruß Thilo
-
Juhu, ich bin im Debugger.
Ich bin im iCal-Adapter mal StepByStep durchgegangen und hab auch gefühlte 20% davon verstanden :?
Jetzt möchte ich gerne ins Debugging des Javascript-Adapters um zwei Fliegen mit einer Klappe zu schlagen und zu verfolgen warum meine ersten Scripte nicht das tun was ich möchte
Allerdings bekomme ich beim Starten des Debuggings die folgende Fehlermeldung und es wird offensichtlich auch kein Breakpoint ausgelöst.
filename="Zwischenablage02.jpg" index="0">~~
Wieso wird denn jetzt zwischendurch der Adapter disabled? Was läuft hier noch nicht richtig?Gruß Thilo `
Ich sage erst mal über disabled. Den Rest schaue ich später an.Es ist nur eine Meldung, dass Adapter disabled ist. Ist doch oder?
Im normal Fall wir Adapter a dieser Stelle beendet, aber wegen "–force" läuft der weiter.
-
Ah ja, verstehe.
Habe inzwischen gemerkt dass der Debugger läuft. Auch der Breakpoint wird jetzt ausgelöst. Ich hatte den nur an der falschen Stelle gesetzt - wer lesen kann ist eben klar im Vorteil
Dann ist jetzt alles gut. Vielen Dank Bluefox - brauchst Dich mit meinem restlichen Geschreibe nicht weiter herumschlagen…
-
Hi Thisoft,
was meinst Du mit falscher Stelle? Codebereiche die nicht ausgeführt werden?
Welche Umgebung hast Du? Ich frage da ich unterschiedliches Verhalten von Webstorm (NodeJS?) unter Windows und Ubuntu sehe, vor allem beim Debuggen.
Danke
Steve
-
Hallo Steve,
mit falscher Stelle meine ich, wie Du richtig vermutest, dass ich den Breakpoint in einer Funktion gesetzt hatte die gar nicht aufgerufen wurde. Wie gesagt - wer lesen kann…
Ich habe alles auf Windows 7 laufen. Ein etwas älterer, schwächerer, passiv gekühlter als 24/7-Server auf dem die gesamte ioBroker-Installation läuft. Zum Arbeiten, unter anderem eben mit Webstorm habe ich dann einen etwas kräftigeren Rechner. Ich habe das ioBroker-Verzeichnis als Netzlaufwerk gemappt und darüber ins Webstorm-Projekt eingebunden. Webstorm warnt mich zwar immer, dass die Verbindung möglicherweise langsam ist etc. aber bisher habe ich da noch nichts feststellen können was mich ausbremsen würde.
Danke
Thilo