Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Admin3 Migration von Konfigurationsdateien

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Admin3 Migration von Konfigurationsdateien

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

      Da jetzt Admin3 ohne jQuery UI funktioniert (Meistens), sollten alle Adapter, die Konfigurationsdialoge haben, auf Admin3 migriert werden.

      Welche Merkmale hat man da:

      • Statt Gruntfile wird gulp benutzt (optional)

      • Statt jQueryUI wird MaterializeCSS benutzt

      • Zusätzlich noch 5 andere Sprachen: es, pt, nl, it, fr

      Schritt 1. Gulp

      Diese Datei nehmen https://github.com/ioBroker/ioBroker.te … ulpfile.js

      und in eigenem Adapter platzieren.

      Dann in package.json die devDependencies anpassen:

      von:

      "devDependencies": {
          "grunt": "^1.0.1",
          "grunt-replace": "^1.0.1",
          "grunt-contrib-jshint": "^1.1.0",
          "grunt-jscs": "^3.0.1",
          "grunt-http": "^2.2.0",
          "mocha": "^3.5.3",
          "chai": "^4.1.2"
        },
      
      

      auf

      "devDependencies": {
          "gulp": "^3.9.1",
          "mocha": "^4.1.0",
          "chai": "^4.1.2"
        },
      
      

      .npmignore erweitern. Einfach gulpfile.js hinzufügen.

      Beispiel: https://github.com/ioBroker/ioBroker.te … .npmignore

      gulpfile.js
      tasks
      node_modules
      .idea
      .git
      /node_modules
      test
      .travis.yml
      appveyor.yml
      
      

      Dabei kann Gruntfile.js gelöscht werden (aus .npmignore und aus GitHub repository)

      Schritt 2. 5 Sprachen:

      1. Wenn man gulp im Verzeichniss installiert (cd node_modules/iobroker.ADAPTERNAME => "npm install")

      2. gulp-cli: "npm i gulp-cli -g" (Egal wo)

      3. "gulp adminWords2languagesFlat" => danach hat man 9 Dateien, flat.txt in "admin/i18n". Es kann zu einem Fehler kommen wenn die Texte noch nicht als words.js vorliegen. Dann müssen vorher die Texte noch aus der index.html rausgezigen werden (siehe http://forum.iobroker.net/viewtopic.php … 72#p109772)

      4. Alle Dateien übersetzen. Man nimmt z.B admin/i18n/es/flat.txt und übersetzt mit Google https://translate.google.de/#en/es/

      Das wass man da bekommt paltziert man einfach in admin/i18n/es/flat.txt zurück. Zeilen Rehenfolge ist wichtig. Und man wiederholt es für 4 andere Sprachen (pt, nl, it, fr)

      Es gibt noch admin/i18n/flat.txt - bitte nicht verändern.

      5. Danach "gulp adminLanguagesFlat2words" aufrufen und die flat.txt's werden zu admin/words.js zusammen gebaut.

      6. Die i18n Dateiein müssen nicht im Git eingeckecht werden, es sei denn die sind gross und müssen dann mit Extra Software abgearbeitet werden.

      7. in io-package.json titleLang, desc und news mit neuen Sprachen erweitern.

      Dafür kann man service benutzen: http://iobroker.net:3000/

      Einfach den Text auf Englisch eingeben und er wird in 7 Sprachen mit google übersetzt.

      Schritt 3. Materialze:

      1. Zu io-package.json in common hinzufügen:

      "materialize": true,
      
      

      2. die Datei admin/index.html nach admin/index_m.html kopieren.

      3. In index_m.html Materialze aktivieren:

      ersetzen mit

      
      =>
      

      Statt tabelle es werden jetzt divs mit class "row" und "col" verwendet.

      Schaue https://github.com/ioBroker/ioBroker.te … dex_m.html für Details.

      hier ist die Beschreibung, wie Layout funktioniert: http://next.materializecss.com/grid.html

      Das war es.

      1 Reply Last reply Reply Quote 1
      • V
        vegetto last edited by

        https://github.com/ioBroker/ioBroker.te … ulpfile.js ist nicht eingechekt. Das gulpfile von iobroker.adapter habe ich gefunden aber es braucht extra Modulen wie gulp-less.

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

          @vegetto:

          https://github.com/ioBroker/ioBroker.te … ulpfile.js ist nicht eingechekt. Das gulpfile von iobroker.adapter habe ich gefunden aber es braucht extra Modulen wie gulp-less. `
          vorhin konnte ich auf den Link zugreifen, jetzt nicht mehr…

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

            Sehr komisch … ich hoffe ein commit von mir hat nicht irgendwie die git-history gestört ... Bluefox muss es nochmal committen

            Ich habe auch in jedem Adapter-Repo was ich kenne ein Issue angelegt mit Link zu dem Artikel hier

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

              @apollon77:

              Sehr komisch … ich hoffe ein commit von mir hat nicht irgendwie die git-history gestört ... Bluefox muss es nochmal committen

              Ich habe auch in jedem Adapter-Repo was ich kenne ein Issue angelegt mit Link zu dem Artikel hier `
              Hi,

              gesehen, danke.

              Eine Frage hätte ich noch, bluefox schreibt:

              __Schritt 2. 5 Sprachen:

              1. Wenn man gulp im Verzeichniss installiert (cd node_modules/iobroker.ADAPTERNAME => "npm install")

              2. gulp-cli: "npm i gulp-cli -g" (Egal wo)

              3. "gulp adminWords2languagesFlat" => danach hat man 9 Dateien, flat.txt in "admin/i18n"__

              Finde ich die Dateien unter Punkt 3 dann im Adapter Verzeichnis?

              Ich habe das vorhin schon mal probiert, aber da hat die Konsole irgendwas von einer fehlender words.js Datei geschrieben. Ich gehe davon aus, ich muss diese unter den Adapter admin Verzeichnis anlegen? Muss ich dabei noch mehr beachten?

              Sorry für die "einfachen" fragen, aber das ist nicht mein täglich Brot. :oops:

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

                Ich denke das der Schritt fehlt:

                Wenn keine words.js da ist dann muss diese angelegt werden und das "systemDictionary"-Objekt aus der index.html in die eigene words.js rausgezogen werden und dafür die words.js inkludiert werden per

                Einige Adapter haben schon eine words.js … andere noch nicht. Das ist aber in jedem Fall ein einfacher Teil.

                Siehe: https://github.com/ioBroker/ioBroker.te ... ster/admin

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

                  Meine obrigen Fragen haben sich erledigt, hat eigentlich gut geklappt mit der gulp Geschichte.

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

                    Ich habe eine Frage: Wie kann ich admin v3 (oder was immer die neue Infrastruktur braucht) auf einer Testmaschine installieren und dort die Änderungen checken?

                    Habe gesehen dass 3.0.x auf Git verfügbar ist und ich hoffe dass Rückwärtskompatibilityt gegeben ist.

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

                      @fsjoke:

                      Ich habe eine Frage: Wie kann ich admin v3 (oder was immer die neue Infrastruktur braucht) auf einer Testmaschine installieren und dort die Änderungen checken? `

                      Du musst auf deiner (test) machine den verwahrungsort "latest" benutzen.

                      dan kan der admin V3 einfach ueber adapter installiert werden, im moment stehen da 2 admin adapter drin version 2.xx (jetziger) und 3.xx (der neue beta)

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

                        Ok, habe admin-beta zusätzlich installiert.

                        Bin vorerst gescheitert da ich die IP-Adresse vom fixed network (einziges benutzte) im config eingestellt habe und nicht mit '0.0.0.0' alle Adapter, da hat's nähmlich nicht funktioniert und man kommt nur bis zu den großen bunten, drehenden Kreisen …

                        Nach Umstellung auf '0.0.0.0' funktioniert 3.0.7 admin, aber leider auch mein umgestelltes admin für den ersten Testadapter nicht mehr 😞

                        p.s.: Gibt's irgendwo eine Info die beschreibt wie ich einen jQuery-ui in materialize ändere? Ich baue grad an einem neuen Adapter der die ui verwendet hat, will sie aber möglicherweise rauslassen.

                        p.p.s: Auch noch 'ne andere Frage: Wenn mein (neuer) Adapter einen admin-tab hat, wie kann ich ihm dann ein icon zuweisen?

                        p.p.p.s.: Der Javascript-Adapter gibt keine debug-Ausgaben mehr in sein 'debug' window bei admin 3.0.7, hat anscheinend ähnliche Probleme wie ich 😞

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

                          @fsjoke:

                          p.s.: Gibt's irgendwo eine Info die beschreibt wie ich einen jQuery-ui in materialize ändere?

                          ( `

                          Das wäre toll!

                          Klassische Beispiele wie verschiedene Tabs (wie z.B. S7 Adapter) wären für mich mega hilfreich…

                          EDIT: Welcher Adapter benutz das "neue" Design?

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

                            Das gulpfile.js beim Template-Adapter ist wieder da.

                            1 Reply Last reply Reply Quote 0
                            • P
                              pix last edited by

                              Hallo,

                              ich werde mich bemühen, die Änderungen zeitnah in meine Adapter zu pflegen. Das kostet ja wieder mal Gehirnschmalz.

                              Freue mich auf die Nutzung von iobroker.net:3000 😛

                              Pix

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

                                @Bluefox:

                                … `

                                @bluefox, can we standardize also on the modules a bit in 3.x?

                                As I just create a new adapter I copied over some fom the javascript adapter (it's a state machine with some graphical interface).

                                I realized that you use in there

                                1 Reply Last reply Reply Quote 0
                                • R
                                  robsdobs last edited by

                                  Wäre es vielleicht möglich als Einstiegsseite nicht die Adapter Übersicht zu haben, sondern die Übersicht der Instanzen?

                                  Oder das konfigurierbar zu haben?

                                  Im normalen Betrieb installiert man weniger Adapter und wenn es ein Update gibt sieht man das unter 2.x auch am grünen Reiter. Da wäre die Schnelle Übersicht über den Zustand der laufenden Adapter vielleicht als Einstieg sinnvoller.

                                  Gesendet von meinem A0001 mit Tapatalk

                                  1 Reply Last reply Reply Quote 0
                                  • V
                                    vegetto last edited by

                                    I released the update for the chromecast adapter. Beyond updating the html everything else is quite simple thanks to the comprehensive instructions.

                                    I will run it for a few days at home before doing a PR to the stable repositories.

                                    Some feedback about the gulp file:

                                    • The version I copied from the template does less checking that the version in the admin adapter. Should they get added eventually?
                                    - Gulp checks - Admin adapter: 
                                    >! [23:34:54] Using gulpfile ~/code/iobroker/ioBroker.chromecast/gulpfile.js
                                    >! [23:34:54] Starting 'iobCSS'…
                                    >! [23:34:54] Starting 'appCSS'…
                                    >! [23:34:54] Finished 'appCSS' after 2.63 ms
                                    >! [23:34:54] Starting 'treeTableCSS'…
                                    >! [23:34:54] Starting 'configCSS'…
                                    >! [23:34:54] Finished 'configCSS' after 1.13 ms
                                    >! [23:34:54] Starting 'materializeCSS'…
                                    >! [23:34:54] Finished 'materializeCSS' after 656 μs
                                    >! [23:34:54] Starting 'vendorJS'…
                                    >! [23:34:54] Starting 'materializeJS'…
                                    >! [23:34:54] Starting 'appJS'…
                                    >! [23:34:54] Starting 'appHTML'…
                                    >! [23:34:54] Starting 'aceCopy'…
                                    >! [23:34:54] Starting 'colorpickerCopy'…
                                    >! [23:34:54] Starting 'appCopy'…
                                    >! [23:34:54] Finished 'iobCSS' after 32 ms
                                    >! [23:34:54] Finished 'treeTableCSS' after 23 ms
                                    >! [23:34:54] Starting '2_css'…
                                    >! [23:34:54] Finished '2_css' after 28 μs
                                    >! [23:34:54] Finished 'vendorJS' after 21 ms
                                    >! [23:34:54] Finished 'materializeJS' after 19 ms
                                    >! [23:34:54] Finished 'appJS' after 17 ms
                                    >! [23:34:54] Starting '3_js'…
                                    >! [23:34:54] Finished '3_js' after 2.01 μs
                                    >! [23:34:54] Finished 'appCopy' after 12 ms
                                    >! [23:34:54] Finished 'appHTML' after 17 ms
                                    >! [23:34:54] Finished 'aceCopy' after 15 ms
                                    >! [23:34:54] Finished 'colorpickerCopy' after 14 ms
                                    >! [23:34:54] Starting '4_static'…
                                    >! [23:34:54] Finished '4_static' after 1.84 μs
                                    >! [23:34:54] Starting 'default'…
                                    >! [23:34:54] Finished 'default' after 1.67 μs
                                    - Gulp checks - Template adapter:
                                    
                                    >! [23:48:42] Using gulpfile ~/code/iobroker/ioBroker.chromecast/gulpfile.js
                                    >! [23:48:42] Starting 'updatePackages'…
                                    >! [23:48:42] Finished 'updatePackages' after 1.04 ms
                                    >! [23:48:42] Starting 'updateReadme'…
                                    >! [23:48:42] Finished 'updateReadme' after 270 μs
                                    >! [23:48:42] Starting 'default'…
                                    >! [23:48:42] Finished 'default' after 21 μs
                                    
                                    • The flow is not clear: I need to update package.json and io-package.json before calling gulp to update the readme. If I call it before then the Readme stays with the "dummy" changelog even after I update the template in io-package.json. But if I do this then the code that adds the news entries to the io-package.json is not useful. My proposal would be that:
                                      <list type="decimal">4. Developer edits io-package.json to modify the version and add the news in english for the new version

                                      1. Developer calls gulp -> gulp updates the version in package.json and any other places (grunt did a global replace of the old version string). Then gulp calls iobroker.3000 (or directly the google translate API) to add the translated news.

                                      2. Developer uploads to github for the automated tests

                                      3. Alpha testers (such as the developer) pull the new beta from github

                                      4. Developer pushes to npm

                                      5. Beta testers test the new version

                                      6. Developer does a PR to the iobroker.repository -> everyone gets the new version

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

                                      Hi,

                                      versuche gerade die Migration des Viessmann Adapter auf Admin3.

                                      Ich denke, ich habe mich halbwegs in die Materialize Geschichte eingearbeitet, jedoch stehen mir seit Stunden die Haare zu berge.

                                      Ich muss in der Adapter Config, select Felder dynamisch generieren. Das klappt aber mit der Templete Vorlage nicht, die SELECTS werden nicht angezeigt. 671_unbenannt1.png Wenn ich die Config Seite neu öffne, sind sie da. 671_unbenannt.png

                                      Wenn ich aber die Source Quelle im HTML Tag tauschen, von:

                                      auf:

                                      klappt alles!

                                      Was soll ich tun?

                                      Kann es sein das die Datei im im Admin die Funktion:

                                      $('select').material_select();
                                      

                                      irgenwie nicht bearbeitet?

                                      Wenn ich die Materialize Seite richtig verstanden habe, ist eine Initialisierung nach dem dynamischen anlegen der selects durch diesen Code nötig.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        Darnat last edited by

                                        Moin,

                                        im EnOcean-Adapter werden Listen auch dynamisch generiert.

                                        Es wird eine Liste mit Geräten erstellt und in jeder Zeile (= ein Gerät) gibt es eine Select-Dropdown-Liste:

                                                function showDevice(obj, isFirst) {
                                                    var text = '';
                                                    text += '' + obj.native.id + '';
                                                    text += '' + obj.native.eep + '';
                                                    text += '' + obj.native.manufacturer + '';
                                                    text += '' + obj.native.desc + '';
                                        
                                                    text += '' + '' +
                                                      '<select id="' + obj.native.id + '_deviceOP" data-id="' + obj.native.id + '">' + '<option value/disabled/selected="">Select operation</option>';
                                        
                                                    for (var i in deviceCommands) {
                                                        text += '<option value="' + i + '">' + _(i) + '</option>';
                                                    }
                                        
                                                    text += '</select>';
                                        
                                                    text = '' + text + '';
                                                    $('#devices').append(text);
                                                    $('#' + obj.native.id + '_deviceOP').change({id : obj.native.id}, onSelect);
                                                    $('#' + obj.native.id + '_deviceOP').select();
                                                }
                                        
                                        

                                        Und im Body-Abschnitt in einer Tabelle.

                                        Sieht dann so aus:
                                        3840_unbenannt.png

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          Darnat last edited by

                                          Moin,

                                          bezüglich der Migration zum Admin Adapter 3 hätte ich da auch noch eine Frage:

                                          Im Adapter V2 wird der EnOcean-Adapter grün angezeigt (conntect to Enocean). Im V3-Adapter bleibt er auf Gelb.

                                          Was muss ich setzen, damit er Grün angezeigt wird?

                                          Gruß,

                                          Sven

                                          Update 11.1.: Nach Update auf 3.0.10 funktioniert es.

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            foxthefox Developer last edited by

                                            Hallo,

                                            evtl. habt ihr eine Idee für mich.

                                            Ich versuche gerade den fritzdect Adapter für Adminv3 fit zu machen und es wird einfach nichts in der neuen materialize Formatierung angezeigt.

                                            Ich hab die index_m.html erzeugt, die words.js enthält alle Sprachen in strukturierter Form (nach dem gulp Aufruf waren da sehr viele Zeilenumbrüche drin, die ich händisch korrigiert habe). i18n ist nicht Bestandteil von github.

                                            Ich komme nur zu folgender Anzeige
                                            1926_fehler_darstellung.png

                                            Der template Adapter führt jedoch zu korrekter Anzeige:
                                            1926_darstellung_template.png

                                            Hab keine Idee mehr, was hier die Anzeige in materialize verhindert.

                                            Die beiden Fehlermeldungen scheinen in beiden Adaptern aufzutauchen und nicht zu stören.

                                            Ansonsten hat die Konsole keine weiteren Fehlermeldungen.

                                            installierte Adapter

                                            admin-beta 3.0.10

                                            admin 2.0.9

                                            discovery 1.0.1

                                            template 0.0.6

                                            fritzdect 0.0.13 von github

                                            js-controller 1.2.3

                                            Hat jemand Rat für mich?

                                            Gruß

                                            Klaus

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            970
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            17
                                            50
                                            11105
                                            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