Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Lösung für den Fehler EISGIT

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Lösung für den Fehler EISGIT

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

      Wer seinen adapter direkt im Verzeichnis /opt/iobroker/node_modules entwickeln möchte
      und dort ein git Repository initialisiert, könnte den Fehler EISGIT beim aktualisieren/installieren eines anderen Adapters erhalten.
      Dafür funktioniert folgende Lösung:

      1. Seinen eine Ebene direkt unter /opt/iobroker kopieren.
        Ein vorheriger Versuch den Adapter unter /home/pi zu kopieren scheiterte leider an der Auflösung von dependencys

      Die Option -r steht für rekursiv
      Die Option -p steht für alle Rechte und Infos über Eigentümer mitkopieren.

      cd /opt/iobroker/node_modules/
      sudo cp -rp <VerzeichnisnameAdapter>/ /opt/iobroker/
      
      1. Zur Sicherheit macht ihr dann noch eine Sicherheitskopie und löscht dann das Verzeichnis
      cd /opt/iobroker/node_modules/
      tar -cvpf /home/pi/<adaptername>.tar <VerzeichnisnameAdapter>/
      rm -r /opt/iobroker/node_modules/<VerzeichnisnameAdapter>
      
      1. Dann geht ihr in das Verzeichnis mit der Kopie und legt einen npm link an.
        Dadurch wird ein symlink ins globale Modulverzeichnis angelegt
      cd /opt/iobroker/<VerzeichnisnameAdapter>
      sudo npm link
      
      1. Zum Schluss dann in das Programmverzeichnis von iobroker
        Dort führt ihr wieder npm link plus den Paketnamen des Adapters aus (also das was in package.json drin steht.
        Das legt letztendlich einen symlink in das node_modules Verzeichnis an, so dass euer adapter an gewohnter Stelle verfügbar ist
      cd /opt/iobroker/
      npm link <AdapterPackagename>
      

      Danach habt ihr unter node_modules einen symlink zum anderen Verzeichnis.
      Ihr könnt dann ganz normal wieder im Adapterverzeichnis unter node_modulse arbeiten und npm
      stört sich nicht mehr an dem git-Repository.

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

        Praktisch... ein ähnliches Problem hatte ich gestern. Allerdings wollte ich meinen Adapter aus dem dev-Verzeichnis ins ioBroker-Verzeichnis linken. Dann beschwert sich ioBroker allerdings, dass die Startdatei nicht gefunden wird. Hattest du das Problem auch schon?

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

          ja genau das ist das problem wenn man es ausserhalb des Pfades zum iobroker hin transportiert.
          Das Problem ist, das bei require nicht das symlink-verzeichnis beachtet, sondern das original-verzeichnis
          und da findet er andere Module nicht (bei mir wars der js-controller).
          vgl. auch
          https://github.com/nodejs/node/issues/3402
          Da gab es eine grössere Diskussion ob das überhaupt gefixt werden soll.

          Letztendlich wurde eine Startoption b ei node eingeführt. (--preserve-symlinks)
          Die habe ich aber noch nicht ausprobiert, da es ersteinmal einfacher war,
          das Verzeichnis direkt unterhalb von /opt/iobroker zu platzieren und dann den symlink zu machen

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

            Danke, das sind schon mal zwei gute Hinweise. Werde ich später mal probieren.

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

              super, ich wäre an den Ergebnissen interessiert.
              ich würde den eigentlichen Entwicklungsordner gern wieder woanders hinschieben.
              Interessant wäre es, wie ich dem iobroker sagen kann, dass er node mit der option starten muss.
              da kenn ich mich nicht aus

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

                @OliverW sagte in Lösung für den Fehler EISGIT:

                Interessant wäre es, wie ich dem iobroker sagen kann, dass er node mit der option starten muss.

                Das geht nicht soweit ich weiß, aber du kannst den Adapter ja manuell starten.

                1 Reply Last reply Reply Quote 0
                • SKB
                  SKB Developer Most Active last edited by SKB

                  Hallo Zusammen,
                  ich hätte hier mal eine Frage zu.

                  Ich habe von Node14 auf Node16 upgedated.

                  Nun habe ich aktuell 2 Adapter in der Entwicklung. Wenn ich die Befehle nacheinander für die jeweiligen Adapter ausführe, wird der jeweils vorher angelegte Link wieder entfernt. Wisst ihr, wieso das so ist?

                  EDIT: Wenn man mehrere Adapter linken möchte, sollte man die Namen nacheinander schreiben. Dann klappt es auch 😉

                  1 Reply Last reply Reply Quote 0
                  • SKB
                    SKB Developer Most Active last edited by

                    Mir ist inziwschen aufgefallen, das jedesmal, wenn man am "NPM" etwas macht - die Verlinkungen irgendwie wieder entfernt werden.
                    Sei es:

                    npm install canvas
                    

                    oder ähnlich ....

                    Weiss hier jemand was?

                    Ich bin auf NPM 8.

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @SKB last edited by

                      @skb

                      das könnte ein verhalten erklären, das ich vor kurzem in einem anderen kontext erlebt habe.
                      allerdings habe ich unter node_module selbst ein verzeichnis erstellt.
                      ils ich im iobroker ein zusätzlichen adapter installiert habe, war der wieder weg.
                      es kann sein, das npm die package.json überprüft und wenn dort kein Eintrag enthalten ist, dann wird der adapter/verzeichnis wieder entfernt.

                      also zum ausprobieren wäre

                      1. package.json manuell pflegen
                      2. die package-lock neu erzeugen lassen mit npm install --package-lock

                      dann dürfe ruhe sein

                      SKB 1 Reply Last reply Reply Quote 0
                      • SKB
                        SKB Developer Most Active @OliverIO last edited by

                        @oliverio Meinst du nun die package.json des Adapter selbst? Oder eine andere?

                        Die package-lock dann im Entwicklerverzeichnis neu erstellen lassen, richtig?

                        OliverIO 1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @SKB last edited by

                          @skb
                          nein von iobroker
                          wenn dein adapter im iobrokr installiert ist, ist er dort eingetragen
                          iobroker macht im hintergrund unter anderem auch ein npm install adaptername

                          aber bitte nur auf einem entwicklersystem, nicht im Produktivsystem
                          da kann man auch mal was verhauen

                          evtl ist der dev-server was oder der devcontainer (hier im forum nach diesen stichworten suchen)

                          SKB 1 Reply Last reply Reply Quote 0
                          • SKB
                            SKB Developer Most Active @OliverIO last edited by

                            @oliverio Danke. Da hatte ich den Adapter eingetragen, aber der Link zum Verzeichnis verschwindet dann.

                            Oder muss ich noch etwas beachten?

                            Habe den Adapternamen und die Version eingetragen.

                            OliverIO 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @SKB last edited by OliverIO

                              @skb
                              package-lock erzeugt?

                              iob restart

                              und dann im iobroker mal bei den refresh knopf drücken

                              SKB 1 Reply Last reply Reply Quote 0
                              • SKB
                                SKB Developer Most Active @OliverIO last edited by

                                @oliverio danke für die Rückmeldung.

                                Also, der Reihe nach.

                                Ganz normal die Adapter in die Verzeichnisse linken, wie oben.
                                Dann:

                                • die jeweiligen Adapter mit ihren Versionen in die package.json einfügen
                                • package-lock erzeugen
                                • iob restart

                                Welchen refresh Knopf meinst du?

                                OliverIO 1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO @SKB last edited by

                                  @skb

                                  37a6e593-8f3c-484c-b929-051ceaff94eb-image.png

                                  SKB 1 Reply Last reply Reply Quote 0
                                  • SKB
                                    SKB Developer Most Active @OliverIO last edited by SKB

                                    @oliverio Das scheint so nicht zu funktionieren.

                                    Ich habe zusätzlich am Ende nochmals erneut "verlinkt", da irgendwie meine Ordner doch wieder entfernt wurden ...

                                    Danke 🙂

                                    EDIT: Irgendwie klappt dies doch nicht wie gewünscht. Nach einem NPM Befehl sind die "Links" wieder komplette Ordner.

                                    Kennst Du dich zufällig auch mit Canvas auf einem RaspberryPi aus? Ich bekomme es bei Node16 einfach nicht installiert...

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

                                      @skb
                                      canvas?
                                      was ist das?
                                      was sind die fehlermeldungen?
                                      was funktioniert nicht?

                                      aber nicht in diesem thread, mach mal einen in offtopic auf

                                      SKB 1 Reply Last reply Reply Quote 0
                                      • SKB
                                        SKB Developer Most Active @OliverIO last edited by SKB

                                        @oliverio Also, das Erzeugen der Datei in iobroker hat funktioniert.

                                        Danach habe ich ein NPM installieren wollen und da sind die Links zu den Ordnern wieder verschwunden und wurden "normale" Ordner. Somit musste ich wieder neu verlinken.

                                        Canvas ist ein Bildbearbeitungs-Modul von NPM - das will sich absolut nicht installieren lassen.

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        669
                                        Online

                                        31.7k
                                        Users

                                        79.7k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        18
                                        2123
                                        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