NEWS
Adapter als Git-Repository
-
Diese Meldung kommt von npm und npm
Mag gar nicht wenn ein .git in „Seiner Struktur“ rumliegt.
Git mach bei jeder Aktion immer ein check von allem. In dem Fall sind das alle Adapter und ihre abhängigen Pakete und so weil es versucht zu optimieren und aufzuräumen.
Und genau dabei stellt er fest das da was nicht stimmt.
Direkt in der gut struktur zu entwickeln ist daher sehr schwierig.
Gesendet vom Handy …
-
Direkt in der gut struktur zu entwickeln ist daher sehr schwierig. `
Ok, dann spare ich mir das eben. Schade, praktisch ist es ja schon.Spaßig ist dabei allerdings, daß es ohne weiteres möglich ist, einen kompletten Adapter zu löschen, auch wenn sich ein Git-Repository darin befindet. Dann ist halt mal eben alles weg, Repo hin oder her. Aber beim bloßen Update eines ganz anderen Adapters kommt ein Fehler und der Prozess bricht ab… finde ich ziemlich inkonsequent, um es vorsichtig auszudrücken.
Aber jedenfalls besten Dank für die Info.
MfG
-
Doch mit git funktioniert ziemlich gut.
- /opt /iobroker | adapter.serviio <= From git | node_modules/blabla
Dann schreibst du in /opt/iobroker
npm i iobroker.serviio
Und npm macht automatisch symlink zu /opt/iobroker/node_modules/iobroker.serviio => /opt/iobroker/iobroker.serviio
Damit lässt sich alles entwickeln.
Voraussetzung:
-
dass noch kein serviio in node_modules drin gibt (nicht symlink).
-
npm >= 5
Das geht unter Windows und Linux sehr gut.
-
-
Das probier' ich, danke!
-
Doch mit git funktioniert ziemlich gut. `
Dafür scheint es noch eine weitere Voraussetzung zu geben: Der (neue) Adapter muß auch bereits im npm-repository existieren, lokal genügt nicht. Das ist bei meinem noch nicht der Fall.
Mir bleibt also doch nichts anderes übrig, als den Adapter weiter "in-place" unter node_modules zu entwickeln und das Unterverzeichnis .git jedesmal wegzuverschieben, wenn irgendetwas anderes installiert/deinstalliert werden soll, wozu npm aufgerufen wird.
Nebenbei: Der Versuch ging gründlich schief. Funktioniert hat der npm-Aufruf nämlich nicht wie geplant, aber das angelegte Verzeichnis /opt/iobroker/adapter.serviio gelöscht hat er trotzdem. Jetzt darf ich zusehen, wo ich ein Backup meiner letzten Änderungen herbekomme.
MfG
-
Tip, nimm den Adapter creator!
Der liefert die alles in richtiger struktur, package Daten ändern und deine x.js einpflegen.
Bei weiteren Fragen melden, mache es auch erst seit 2 Monaten ist alles relatief einfach glaub mir.
Siehe Resultat discovergy (mein erster) und source analytix (mein 2ter adapter)
Sent from my iPhone using Tapatalk
-
Doch mit git funktioniert ziemlich gut.
- /opt /iobroker | adapter.serviio <= From git | node_modules/blabla
Dann schreibst du in /opt/iobroker
npm i iobroker.serviio
Und npm macht automatisch symlink zu /opt/iobroker/node_modules/iobroker.serviio => /opt/iobroker/iobroker.serviio
Damit lässt sich alles entwickeln.
… `
Habe das grad probiert und funktioniert bei mir leider nicht (unter linux)!
Ich sehe dass npm einen Link erzeugt hat aber nach````
iobroker add xs1instance system.adapter.xs1.0 terminated with code 10 (Cannot find start file of adapter)
übrigens, wie kann ich mich als iobroker user mittels su oder im ssh anmelden? Bei jetzigem Install hab ich zwar gelesen dass iobroker einen sodoer eintrag bekommen hat aber ich hab keine Ahnung wie ich als iobroker agieren kann!
-
@fsjoke:npm i iobroker.serviio `
Muss da nicht der komplette lokale Pfad angegeben werden?Und aus /opt/iobroker (oder wo die package.json liegt) aufrufen.
Jedenfalls tut es dann bei mir.
-
@fsjoke:übrigens, wie kann ich mich als iobroker user mittels su oder im ssh anmelden?
Bei jetzigem Install hab ich zwar gelesen dass iobroker einen sodoer eintrag bekommen hat aber ich hab keine Ahnung wie ich als iobroker agieren kann! `
Sollte nicht nötig sein, wofür brauchst du das? Der Eintrag ist dafür da, dass iobroker selbst Befehle mit erhöhten Rechten als dieser User absetzen kann. -
ich bin im Verzeichnis /opt/iobroker und da drinnen ist iobroker.xs1, dann mach ich dort````
npm i iobroker.xs1npm mach auch den Link und ich sehe mit```` ls node_modules/iobroker.xs1 ````auch meine Dateien, darunter xs1.js das gestartet werden soll aber js-contriller findet es nicht :( @AlCalzone, ich möchte Befehle als iobroker-user durchführen! Ich kann zum Beispiel nicht mehr als user pi oder mit sude den iobroker stoppen, zumindest nicht mit```` (sudo) iobroker stop ````. Ich krieg den Fehler```` iobroker controller daemon is not running ````obwoh iobroker im hintergrund läuft (wurde bei Systemstart gestartet). Früher ist mit sudo immer gegangen, und ich hab auch als user pi alles mit iobroker machen können (nur 2-3 Kommandos brauchten sudo).
-
@fsjoke,
Hm, was Anderes mach ich auch nicht :? Wurde der Adapter in die dependencies der package.json eigetragen?
-
@fsjoke:ich möchte Befehle als iobroker-user durchführen!
Ich kann zum Beispiel nicht mehr als user pi oder mit sude den iobroker stoppen, zumindest nicht mit````
(sudo) iobroker stopIch krieg den Fehler```` iobroker controller daemon is not running ````obwoh iobroker im hintergrund läuft (wurde bei Systemstart gestartet). Früher ist mit sudo immer gegangen, und ich hab auch als user pi alles mit iobroker machen können (nur 2-3 Kommandos brauchten sudo). `
Dazu siehe auch die neueste Version des Installers ==> https://github.com/ioBroker/ioBroker/bl … staller.sh
und der umfangreiche PR, der dort hin geführt hat ==> https://github.com/ioBroker/ioBroker/pull/99
Einfach nur als User
iobroker
Befehle absetzen reicht nicht:-
Es müssen die richtigen Gruppenzugehörigkeiten gesetzt sein
-
die ausführbare Datei
iobroker
im Systemverzeichnis muss mitsystemd
umgehen können -
Wenn von
systemd
gestartet, darf das im JS-Controller integriertedaemonize
nicht verwendet werden -
In
sudoers.d
müssen bestimmte Befehle für passwordless sudo freigeschaltet sein.
Wenn du mit dem allerneuesten Installer installierst, sind die ganzen Probleme, die du nennst, Geschichte.
Für bestehende Installationen ist ein ähnlichen Skript geplant, dass diese auf den neuesten Stand bringst.
-
-
AlCalZone,
wie ich sonst wo schon erwähnt habe hab ich den neuen Installer verwendet aber daraif vertraut dass iobroker-Befehle (star,stop,restart) noch wie gewohnt arbeiten!
Sorry, aber wenn man nach 9 Monaten ohne ioBroker-HW-Kontakt neue Testsysteme installiert und diese dann ganz anders als die alten funktionieren glaubt man zuerst an einem Problem bei sich selbst
Mein eigenes System ist noch mit alter SW installiert worden und läuft - Gott sei Dank - nach 9 Monaten noch immer wie gewohnt!
Will meine (selbst programmierten) Adapter jetzt updaten und bemerke halt dass bei neuen Installationen nichts wie vorher funktioniert! Das reicht von der Installation und iobroker management bis zu dem Fact dass ich die Adapter umbauen muss um Befehle mit 'root'-Rechten ausführen zu können!
p.s.: Es wäge gut eine mailing-list für adapter-Programmierer zu erzeugen welche Neuerungen und Änderungen am js-controller/Admin oder für Adapter (wie der neue compact adapter mode) geschickt bekommen. Die emails sollten doch in den repos verfügbar sein?
-
Ach ja, hab vergessen zu melden warum ich wissen will wie ich einen Process unter iobroker user starten kann:
Wenn ich Adapter debugge hab ich immer sowas aufgerufen:
sudo node --inspect=192.168.178.91:9229 /opt/iobroker/node_modules/iobroker.radar/radar.js --force --logs --nolazy
Nun läuft dieser dann als root und nicht als iobroker!
Wie mach ich das für iobroker?
p.s.: Hatte auch den Fall dass der Adapter wie oben gelaufen ist aber nicht in iobroker gestartet ist da einige Dateien die geändert wurden nicht zu iobroker gehörten!
-
Wie gesagt, mit dem neuen installer haben wir auf Änderungen in npm reagiert um die immer mehr auftauchenden rechteprobleme in den Griff zu bekommen. Dass dabei nicht alles sofort klappt, sollte klar sein. Mit dem allerneuesten installer (von vor 2-3 Tagen) sollten die von dir angesprochenen Probleme mit iobroker start/stop Geschichte sein.
Der debug Befehl ist natürlich eine legitime Anwendung. Probiere mal
sudo -u iobroker node...
Gesendet von unterwegs
-
Um mit dem neuen installer befehle als root auszuführen, reicht es sudo davor zu schreiben. Um nicht grundsätzlich alles zu erlauben (sonst hätten wir uns das auch sparen können) sammeln wir die nötigen befehle hier: https://github.com/ioBroker/ioBroker/issues/96
Wenn du was vermisst, bitte eintragen
Gesendet von unterwegs
-
sudo -u iobroker node... ```` `
Danke, das funktioniert! Kann jetzt endlich wieder testen und die Adapter auf den neuesten Stand bringen!