Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Adapter als Git-Repository

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Adapter als Git-Repository

    This topic has been deleted. Only users with topic management privileges can see it.
    • apollon77
      apollon77 last edited by

      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 …

      1 Reply Last reply Reply Quote 0
      • 1
        150d last edited by

        @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 Reply Last reply Reply Quote 0
        • Bluefox
          Bluefox last edited by

          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 Reply Last reply Reply Quote 1
          • 1
            150d last edited by

            Das probier' ich, danke!

            1 Reply Last reply Reply Quote 0
            • 1
              150d last edited by

              @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 Reply Last reply Reply Quote 0
              • Dutchman
                Dutchman Developer Most Active Administrators last edited by

                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 Reply Last reply Reply Quote 0
                • frankjoke
                  frankjoke last edited by

                  @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!
                  1 Reply Last reply Reply Quote 0
                  • R
                    rewenode last edited by

                    @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 Reply Last reply Reply Quote 0
                    • AlCalzone
                      AlCalzone Developer last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • frankjoke
                        frankjoke last edited by

                        @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).
                        1 Reply Last reply Reply Quote 0
                        • R
                          rewenode last edited by

                          @fsjoke,

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

                          1 Reply Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer last edited by

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

                            AlCalzone created this issue in ioBroker/ioBroker

                            closed Move linux part of the installer completely into shell script #99

                            1 Reply Last reply Reply Quote 0
                            • frankjoke
                              frankjoke last edited by

                              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?

                              1 Reply Last reply Reply Quote 0
                              • frankjoke
                                frankjoke last edited by

                                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!

                                1 Reply Last reply Reply Quote 0
                                • AlCalzone
                                  AlCalzone Developer last edited by

                                  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

                                  1 Reply Last reply Reply Quote 1
                                  • AlCalzone
                                    AlCalzone Developer last edited by

                                    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

                                    AlCalzone created this issue in ioBroker/ioBroker

                                    closed Which commands should iobroker be allowed to execute as `sudo`? #96

                                    1 Reply Last reply Reply Quote 0
                                    • frankjoke
                                      frankjoke last edited by

                                      @AlCalzone:

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

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

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      873
                                      Online

                                      31.6k
                                      Users

                                      79.4k
                                      Topics

                                      1.3m
                                      Posts

                                      7
                                      18
                                      1309
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo