Navigation

    Logo
    • Registrieren
    • Anmelden
    • Suche
    • Aktuell
    • Tags
    • Ungelesen
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe
    1. Übersicht
    2. Deutsch
    3. Entwicklung
    4. Anker Adapter

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    Anker Adapter

    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • mickym
      mickym Most Active zuletzt editiert von

      Wieder mal eine blöde Frage - ich nutze zwar dieses Teil nicht. Aber der Service redet mqtt - da brauche ich keinen Adapter. Ich werde das wohl nie verstehen.

      Thomas Braun 1 Antwort Letzte Antwort Antworten Zitieren 0
      • Thomas Braun
        Thomas Braun Most Active @excalibur270 zuletzt editiert von

        @excalibur270 sagte in Anker Adapter:

        Hey. Ich hab das nach der readme bei github gemacht.

        Das ist ja auch richtig. Ist mein Weg auch. Aber damit das dann auch mit dem System gestartet wird muss man das noch an sein System anpassen. Deswegen lege ich das dann als Service an, der dann über systemd gestartet wird. Das überlebt dann auch ein Logout des Users.

        1 Antwort Letzte Antwort Antworten Zitieren 0
        • Thomas Braun
          Thomas Braun Most Active @mickym zuletzt editiert von

          @mickym
          Richtig, ist mqtt. Aber die Einrichtung ist etwas fummelig. Ich hab da auch länger für gebraucht, bis das richtig lief. Bei einem Adapter könntest du die Konfiguration halt über Eingabefelder führen. Und auch der Start wäre einfacher, wenn sich das in den ioBroker einfügen würde.

          mickym 1 Antwort Letzte Antwort Antworten Zitieren 0
          • mickym
            mickym Most Active @Thomas Braun zuletzt editiert von mickym

            @thomas-braun sagte in Anker Adapter:

            @mickym
            Richtig, ist mqtt. Aber die Einrichtung ist etwas fummelig. Ich hab da auch länger für gebraucht, bis das richtig lief. Bei einem Adapter könntest du die Konfiguration halt über Eingabefelder führen. Und auch der Start wäre einfacher, wenn sich das in den ioBroker einfügen würde.

            na dafür bist du jedesmal davon abhängig, dass der Adapter alles so interpretiert, wie das Original und eine zusätzliche Fehlerquelle. Davon halte ich genauso viel, wie du von einer GUI auf dem Server.
            Zudem muss ja der Service trotzdem laufen- ist ja wie bei zigbee2mqtt und allen anderen in meinen Augen überflüssigen Adaptern, für Geräte, die mqtt sprechen.(ausser den mqtt Adaptern selbst natürlich)

            Thomas Braun 1 Antwort Letzte Antwort Antworten Zitieren 0
            • Thomas Braun
              Thomas Braun Most Active @mickym zuletzt editiert von Thomas Braun

              @mickym

              Ja, das ist der Nachteil von vorgeformten GUI- Lösungen. Du kannst nur das machen, was der Ersteller des GUI/des Adapters auch zugänglich macht.
              Und eine zusätzliche Fehlerquelle und zusätzlicher Overhead ist es eigentlich auch, vollkommen korrekt.

              Ist halt (tw. auch nur vermeintlich) einfacher zu bedienen/einzurichten.

              1 Antwort Letzte Antwort Antworten Zitieren 1
              • E
                excalibur270 @Thomas Braun zuletzt editiert von

                @thomas-braun hey. ich habe das jetzt mal so nachgebaut auf mein System bezogen. Nachher mal ausprobieren obs dann läuft. Wo laufen die werte dann auf?

                Thomas Braun 1 Antwort Letzte Antwort Antworten Zitieren 0
                • Thomas Braun
                  Thomas Braun Most Active @excalibur270 zuletzt editiert von

                  @excalibur270 sagte in Anker Adapter:

                  Wo laufen die werte dann auf?

                  Auf deinem mqtt-Broker. Musst du dann dort abholen, ich verwende dazu den mqtt-Adapter. Die Werte schleife ich dann noch durch ein Skript, das mir die Einzelwerte in entsprechende Datenpunkte legt.

                  E 2 Antworten Letzte Antwort Antworten Zitieren 0
                  • E
                    excalibur270 @Thomas Braun zuletzt editiert von excalibur270

                    Das kam jetzt bei mir. Alles gemacht. Mosqitto intalliert und eingerichtet. Die Skripte auf meinen Pi angepasst. Ich lass das glaube ich lieber sein. Dafür fehlt der Sachverstand.

                    > solix2mqtt@1.0.0 start
                    > node ./bin/app.js
                    
                    node:internal/modules/cjs/loader:1143
                      throw err;
                      ^
                    
                    Error: Cannot find module '/home/pi/solix2mqtt/bin/app.js'
                        at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
                        at Module._load (node:internal/modules/cjs/loader:981:27)
                        at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_ma                                                                             in:128:12)
                        at node:internal/main/run_main_module:28:49 {
                      code: 'MODULE_NOT_FOUND',
                      requireStack: []
                    
                    
                    1 Antwort Letzte Antwort Antworten Zitieren 0
                    • E
                      excalibur270 @Thomas Braun zuletzt editiert von excalibur270

                      @thomas-braun Jetzt kommt was an. Als Json.
                      Magst beim Script dafür einmal helfen. Also nochmal?

                      Thomas Braun mickym 2 Antworten Letzte Antwort Antworten Zitieren 0
                      • Thomas Braun
                        Thomas Braun Most Active @excalibur270 zuletzt editiert von

                        @excalibur270

                        Sieht so aus:

                        // where the mqtt messages arrive
                        
                        const mqttDatenpunktObjectId = 'mqtt.0.solix.site.NAMESETZEN.scenInfo';
                        
                        // where the states should appear
                        
                        const userDataFolder = '0_userdata.0.solix';
                        
                         
                        
                        // ############## end user config
                        
                         
                        
                        // receive
                        
                        on(mqttDatenpunktObjectId, (obj) => {
                        
                          const jsonString = obj.state.val;
                        
                          const jsonData = JSON.parse(jsonString);
                        
                         
                        
                          function createObjectsRecursively(parent, data) {
                        
                            for (const key in data) {
                        
                              const obj = data[key];
                        
                              const stateName = `${parent}.${key}`;
                        
                             
                        
                              if (typeof obj === 'object') {
                        
                                createObjectsRecursively(stateName, obj);
                        
                              } else {
                        
                               let value = obj;  
                        
                         
                        
                                // Check if the state already exists. If it does, just update the value.
                        
                                // If it does not exist create the states.
                        
                                if (!existsState(stateName)) {
                        
                                  // If the state does not exist, create it and set the value
                        
                                  createState(stateName, value, {
                        
                                    name: key,
                        
                                    type: typeof value,
                        
                                    role: "value",
                        
                                    read: true,
                        
                                    write: true
                        
                                  });
                        
                                  log(`Created state ${stateName}`);
                        
                                  
                        
                                } else {
                        
                                  setState(stateName, value, true);
                        
                                }
                        
                              }
                        
                            }
                        
                          }
                        
                           createObjectsRecursively(userDataFolder, jsonData);
                        
                        });
                        
                        E 2 Antworten Letzte Antwort Antworten Zitieren 0
                        • mickym
                          mickym Most Active @excalibur270 zuletzt editiert von mickym

                          @excalibur270 Als Alternative kannst Dir meinen NodeRed Flow anschauen, der legt Dir alle Datenpunkte automatisch an - egal ob Objekt, JSON, Array oder sonst was.

                          https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen

                          Wenn Du aber lieber programmieren willst bzw. Codefragmente nutzen willst, dann nimm halt das Javascript.

                          E 1 Antwort Letzte Antwort Antworten Zitieren 0
                          • E
                            excalibur270 @Thomas Braun zuletzt editiert von

                            @thomas-braun Daaaaaaaaaaaaaaaaaaaankeschön

                            1 Antwort Letzte Antwort Antworten Zitieren 0
                            • E
                              excalibur270 @mickym zuletzt editiert von

                              @mickym Hey. Ja,das hatte ich auch schon gefunden.

                              1 Antwort Letzte Antwort Antworten Zitieren 0
                              • E
                                excalibur270 @Thomas Braun zuletzt editiert von

                                @thomas-braun Und jetzt wieder das. Was ist da falsch?

                                Error: Cannot find module '/home/pi/solix2mqtt/bin/app.js'
                                    at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
                                    at Module._load (node:internal/modules/cjs/loader:981:27)
                                    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
                                    at node:internal/main/run_main_module:28:49 {
                                  code: 'MODULE_NOT_FOUND',
                                  requireStack: []
                                
                                
                                Thomas Braun 1 Antwort Letzte Antwort Antworten Zitieren 0
                                • Thomas Braun
                                  Thomas Braun Most Active @excalibur270 zuletzt editiert von

                                  @excalibur270 sagte in Anker Adapter:

                                  Und jetzt wieder das. Was ist da falsch?

                                  Wann wird die Meldung ausgelöst? Und ich würde solix2mqtt auch nicht in einem /home-Verzeichnis installieren, sondern in /usr/local/bin

                                  Auf meiner Kiste:

                                  echad@chet:~ $ ls -la /usr/local/bin/solix2mqtt/bin/app.js 
                                  -rw-r--r-- 1 iobroker iobroker 2949 Oct 21  2023 /usr/local/bin/solix2mqtt/bin/app.js
                                  echad@chet:~ $
                                  
                                  E 1 Antwort Letzte Antwort Antworten Zitieren 0
                                  • E
                                    excalibur270 @Thomas Braun zuletzt editiert von

                                    @thomas-braun Der Akku vom Laptop war leer und die Konsole wurde geschlossen. Es wurde nichts mehr im IoBroker aktualisiert von der Solix. Also habe ich die Startdatei wieder eingegeben. Danach kam das.
                                    Ist gekürzt wegen der Userdaten

                                    echad@chet:~ $ cat /home/pi/solix2mqtt/solix2mqtt.sh
                                    #!/bin/bash
                                    rm /home/pi/solix2mqtt/auth.data;
                                    cd /home/pi/solix2mqtt;
                                    S2M_USER=
                                    
                                    Thomas Braun 1 Antwort Letzte Antwort Antworten Zitieren 0
                                    • Thomas Braun
                                      Thomas Braun Most Active @excalibur270 zuletzt editiert von

                                      @excalibur270 sagte in Anker Adapter:

                                      und die Konsole wurde geschlossen. Es wurde nichts mehr im IoBroker aktualisiert von der Solix.

                                      Das ist klar. Solange das nicht als Service läuft wird das Programm geschlossen, wenn der aufrufende user sich abmeldet.
                                      U. a. auch deswegen wird das bei mir a) als service gestartet und b) dem user 'iobroker' der Prozess angehängt und c) ist das nicht in einem /home installiert.

                                      E 1 Antwort Letzte Antwort Antworten Zitieren 0
                                      • E
                                        excalibur270 @Thomas Braun zuletzt editiert von excalibur270

                                        @thomas-braun habe das jetzt mal alles verschoben läuft wieder.
                                        Jetzt nur noch den autostart hinbekommen und dann bin ich zufrieden

                                        Thomas Braun 1 Antwort Letzte Antwort Antworten Zitieren 0
                                        • Thomas Braun
                                          Thomas Braun Most Active @excalibur270 zuletzt editiert von

                                          @excalibur270

                                          Eine Vorlage für eine solix2mqtt.service hatte ich weiter oben schon gepostet.

                                          E 1 Antwort Letzte Antwort Antworten Zitieren 0
                                          • E
                                            excalibur270 @Thomas Braun zuletzt editiert von

                                            @thomas-braun Ja. Die Service datei, ich denke die obere liegt bereits im verzeichnis.
                                            Wenn ich dann den unteren teil so in die konsole eingebe mit meinen zugangsdaten usw läuft auch alles

                                            1 Antwort Letzte Antwort Antworten Zitieren 0
                                            • Erster Beitrag
                                              Letzter Beitrag

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            904
                                            Online

                                            32.2k
                                            Benutzer

                                            80.8k
                                            Themen

                                            1.3m
                                            Beiträge

                                            49
                                            352
                                            85708
                                            Lade mehr Beiträge
                                            • Älteste zuerst
                                            • Neuste zuerst
                                            • Meiste Stimmen
                                            Antworten
                                            • In einem neuen Thema antworten
                                            Anmelden zum Antworten
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo