Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Adapter als Git-Repository

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Adapter als Git-Repository

Geplant Angeheftet Gesperrt Verschoben Entwicklung
18 Beiträge 7 Kommentatoren 1.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 1 Offline
    1 Offline
    150d
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe einen neuen Adapter (iobroker.serviio) entwickelt. Den Code habe ich in ein Git-Repository (bei GitHub) ausgelagert, das lokale Verzeichnis ist direkt das Unterverzeichnis in node_modules.

    Wenn ich jetzt einen anderen Adapter (nicht den meinen) aktualisieren will, so wird das Update nicht durchgeführt und das Log zeigt folgendes:

    87 verbose stack Error: /opt/iobroker/node_modules/iobroker.serviio: Appears to be a git repo or submodule.
    87 verbose stack     at /usr/lib/node_modules/npm/node_modules/npm-install-checks/index.js:137:15
    87 verbose stack     at /usr/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
    87 verbose stack     at FSReqWrap.oncomplete (fs.js:153:5)
    88 verbose cwd /
    89 verbose Linux 3.13.0-164-generic
    90 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.hm-rega@2.1.2" "--production" "--save" "--prefix" "/opt/iobroker"
    91 verbose node v8.15.0
    92 verbose npm  v6.4.1
    93 error path /opt/iobroker/node_modules/iobroker.serviio
    94 error code EISGIT
    95 error git /opt/iobroker/node_modules/iobroker.serviio: Appears to be a git repo or submodule.
    96 error git /opt/iobroker/node_modules/iobroker.serviio
    97 error git Refusing to remove it. Update manually,
    97 error git or move it out of the way first.
    
    

    Die Meldung ist natürlich völlig korrekt, im Verzeichnis node_modules/iobroker.serviio befindet sich tatsächlich ein Git-Repository. Und natürlich könnte ich die Meldung vermeiden, in dem ich es daraus entferne.

    Aber warum kommt es überhaupt zu dieser Meldung? Ich will nicht iobroker.serviio entfernen, sondern iobroker.hm-rega. Die beiden haben nichts miteinander zutun. Warum wird das Update des einen wegen des anderen abgelehnt?

    MfG

    1 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #2

      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 …

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Antwort Letzte Antwort
      0
      • 1 Offline
        1 Offline
        150d
        schrieb am zuletzt editiert von
        #3

        @apollon77:

        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

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

          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.

          1 Antwort Letzte Antwort
          1
          • 1 Offline
            1 Offline
            150d
            schrieb am zuletzt editiert von
            #5

            Das probier' ich, danke!

            1 Antwort Letzte Antwort
            0
            • 1 Offline
              1 Offline
              150d
              schrieb am zuletzt editiert von
              #6

              @Bluefox:

              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

              1 Antwort Letzte Antwort
              0
              • DutchmanD Offline
                DutchmanD Offline
                Dutchman
                Developer Most Active Administrators
                schrieb am zuletzt editiert von
                #7

                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

                1 Antwort Letzte Antwort
                0
                • frankjokeF Offline
                  frankjokeF Offline
                  frankjoke
                  schrieb am zuletzt editiert von
                  #8

                  @Bluefox:

                  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 xs1

                  instance 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!

                  Frank,

                  NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                  Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                  1 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    rewenode
                    schrieb am zuletzt editiert von
                    #9

                    @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.

                    1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @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.

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      1 Antwort Letzte Antwort
                      0
                      • frankjokeF Offline
                        frankjokeF Offline
                        frankjoke
                        schrieb am zuletzt editiert von
                        #11

                        @rewenode,

                        ich bin im Verzeichnis /opt/iobroker und da drinnen ist iobroker.xs1, dann mach ich dort````
                        npm i iobroker.xs1

                        
                        npm 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).

                        Frank,

                        NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                        Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                        1 Antwort Letzte Antwort
                        0
                        • R Offline
                          R Offline
                          rewenode
                          schrieb am zuletzt editiert von
                          #12

                          @fsjoke,

                          Hm, was Anderes mach ich auch nicht :? Wurde der Adapter in die dependencies der package.json eigetragen?

                          1 Antwort Letzte Antwort
                          0
                          • AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            schrieb am zuletzt editiert von
                            #13

                            @fsjoke:

                            @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). `  
                            

                            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 mit systemd umgehen können

                            • Wenn von systemd gestartet, darf das im JS-Controller integrierte daemonize 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.

                            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                            1 Antwort Letzte Antwort
                            0
                            • frankjokeF Offline
                              frankjokeF Offline
                              frankjoke
                              schrieb am zuletzt editiert von
                              #14

                              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?

                              Frank,

                              NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                              Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                              1 Antwort Letzte Antwort
                              0
                              • frankjokeF Offline
                                frankjokeF Offline
                                frankjoke
                                schrieb am zuletzt editiert von
                                #15

                                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!

                                Frank,

                                NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                                Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                                1 Antwort Letzte Antwort
                                0
                                • AlCalzoneA Offline
                                  AlCalzoneA Offline
                                  AlCalzone
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #16

                                  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

                                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                  1 Antwort Letzte Antwort
                                  1
                                  • AlCalzoneA Offline
                                    AlCalzoneA Offline
                                    AlCalzone
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #17

                                    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

                                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                    1 Antwort Letzte Antwort
                                    0
                                    • frankjokeF Offline
                                      frankjokeF Offline
                                      frankjoke
                                      schrieb am zuletzt editiert von
                                      #18

                                      @AlCalzone:

                                      sudo -u iobroker node...
                                      ```` `  
                                      

                                      Danke, das funktioniert! Kann jetzt endlich wieder testen und die Adapter auf den neuesten Stand bringen!

                                      Frank,

                                      NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                                      Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      745

                                      Online

                                      32.5k

                                      Benutzer

                                      81.7k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe