Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Anker Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active @excalibur270 last edited by

      @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 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @excalibur270 last edited by 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 Reply Last reply Reply Quote 0
        • E
          excalibur270 @Thomas Braun last edited by

          @thomas-braun Daaaaaaaaaaaaaaaaaaaankeschön

          1 Reply Last reply Reply Quote 0
          • E
            excalibur270 @mickym last edited by

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

            1 Reply Last reply Reply Quote 0
            • E
              excalibur270 @Thomas Braun last edited by

              @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 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @excalibur270 last edited by

                @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 Reply Last reply Reply Quote 0
                • E
                  excalibur270 @Thomas Braun last edited by

                  @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 Reply Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @excalibur270 last edited by

                    @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 Reply Last reply Reply Quote 0
                    • E
                      excalibur270 @Thomas Braun last edited by 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 Reply Last reply Reply Quote 0
                      • Thomas Braun
                        Thomas Braun Most Active @excalibur270 last edited by

                        @excalibur270

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

                        E 1 Reply Last reply Reply Quote 0
                        • E
                          excalibur270 @Thomas Braun last edited by

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

                            Wird an einem Adapter gearbeitet ?
                            Oder hat wer ne Anleitung für einen "normalen User" ?

                            Thomas Braun mcm1957 2 Replies Last reply Reply Quote 0
                            • Thomas Braun
                              Thomas Braun Most Active @Flopsi last edited by

                              @flopsi sagte in Anker Adapter:

                              Wird an einem Adapter gearbeitet ?

                              Nicht das ich wüsste.

                              Oder hat wer ne Anleitung für einen "normalen User" ?

                              Was ist ein 'normaler user'? Bzw. was ist 'unnormal' an dem oben gezeigten Weg per Docker oder per systemd-Service?

                              1 Reply Last reply Reply Quote 0
                              • mcm1957
                                mcm1957 @Flopsi last edited by

                                @flopsi said in Anker Adapter:

                                Wird an einem Adapter gearbeitet ?
                                Oder hat wer ne Anleitung für einen "normalen User" ?

                                https://github.com/ioBroker/AdapterRequests/issues/855

                                Status: Requested

                                Grothesk242 created this issue in ioBroker/AdapterRequests

                                closed Anker Solix Solarbank (2) E1600 - Anker App #855

                                D 1 Reply Last reply Reply Quote 0
                                • D
                                  dtp @mcm1957 last edited by

                                  Für Home Assistant gibt es da ja was: https://github.com/thomluther/ha-anker-solix

                                  Schade, dass es da keinen entsprechenden Adapter für den ioBroker gibt.

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    MadMic last edited by Homoran

                                    Hallo Zusammen,
                                    ich versuche schon eine ganze Weile den solix2mqtt zum laufen zu bekommen.

                                    Leider bekomme ich diese Fehlermeldung:

                                    [2024-09-09T13:03:15.422Z] Sleeping for 29859ms...
                                    [2024-09-09T13:03:45.282Z] Fetching data
                                    [2024-09-09T13:03:45.284Z] Using cached auth data
                                    [2024-09-09T13:03:45.284Z] f0507697e360d1faad16eb5bf73c0f171659c098
                                    [2024-09-09T13:03:45.285Z] {}
                                    [2024-09-09T13:03:45.514Z] Failed fetching or publishing printer data TypeError: Cannot read properties of undefined (reading 'site_list')
                                        at fetchAndPublish (/home/madmic/solix2mqtt/bin/app.js:46:35)
                                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                                        at async run (/home/madmic/solix2mqtt/bin/app.js:67:13)
                                    

                                    und am mqtt reader kommt nur das an:

                                    solix/site_homepage (null)
                                    

                                    MOD-EDIT: Code in code-tags gesetzt!

                                    Hat jmd von euch eine Ahnung woran es liegen könnte??

                                    Thomas Braun 1 Reply Last reply Reply Quote 0
                                    • Thomas Braun
                                      Thomas Braun Most Active @MadMic last edited by Thomas Braun

                                      @madmic sagte in Anker Adapter:

                                      Hat jmd von euch eine Ahnung woran es liegen könnte??

                                      An falschen Rechten.

                                      Bei mir liegt das Ding nicht im /home eines users sondern für alle zugänglich in /usr/local/bin
                                      Darüber hinaus wird solix2mqtt via systemd gestartet und dann dem user 'iobroker' übergeben.

                                      Edit: service dann wie hier:
                                      https://forum.iobroker.net/topic/69229/anker-adapter/18

                                      M 2 Replies Last reply Reply Quote 0
                                      • M
                                        MadMic @Thomas Braun last edited by MadMic

                                        @thomas-braun
                                        danke für die fixe Antwort....

                                        Ich möchte meine anker solix gar nicht in den iO Broker integrieren, sondern benötige nur die mqtt Daten um die dann weiter zu verarbeiten.

                                        Thomas Braun Homoran 2 Replies Last reply Reply Quote 0
                                        • Thomas Braun
                                          Thomas Braun Most Active @MadMic last edited by

                                          @madmic sagte in Anker Adapter:

                                          Hast Du dazu evtl auch eine Idee?

                                          Ja, halt als Service laufen lassen.
                                          Die ganzen Variablen liegen bei mir in einem Skript unter /usr/local/bin und das wird dann vom systemd-service aufgerufen.

                                          1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @MadMic last edited by

                                            @madmic bitte die code-tags wieder herstellen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            788
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            41
                                            241
                                            35953
                                            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