Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Anker Adapter

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Anker Adapter

Geplant Angeheftet Gesperrt Verschoben Entwicklung
401 Beiträge 58 Kommentatoren 100.6k Aufrufe 54 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Thomas BraunT Thomas Braun

    @excalibur270 sagte in Anker Adapter:

    Hier hänge ich jetzt auch.

    Mit dem docker?
    Ich mach das über einen service, natürlich ohne docker dann.

    E Offline
    E Offline
    excalibur270
    schrieb am zuletzt editiert von
    #33

    @thomas-braun nein ich habe die local Methode genommen. Wie gesagt. Solix taucht auf aber nur mit dem Status alive.
    Habe es mit eingeladenem Account und dem Hauptaccount von Anker versucht. Oder muss wie beim PSA noch ein Script laufen? Da bin ich bei meiner Suche nirgends drauf gestoßen.

    Thomas BraunT 1 Antwort Letzte Antwort
    0
    • E excalibur270

      @thomas-braun nein ich habe die local Methode genommen. Wie gesagt. Solix taucht auf aber nur mit dem Status alive.
      Habe es mit eingeladenem Account und dem Hauptaccount von Anker versucht. Oder muss wie beim PSA noch ein Script laufen? Da bin ich bei meiner Suche nirgends drauf gestoßen.

      Thomas BraunT Online
      Thomas BraunT Online
      Thomas Braun
      Most Active
      schrieb am zuletzt editiert von Thomas Braun
      #34

      @excalibur270

      Wie sieht dein startup-Skript und die .service-Datei aus?
      Bei mir:

      echad@chet:~ $ cat /usr/lib/systemd/system/solix2mqtt.service
      [Unit]
      Description=Pushing Anker Solix data to mosquitto
      After=mosquitto.service
      Before=iobroker.service
      
      [Service]
      User=iobroker
      Group=iobroker
      ExecStart=/usr/local/bin/solix2mqtt/solix2mqtt.sh
      Type=simple
      # Restart=always
      
      
      [Install]
      WantedBy=multi-user.target
      #RequiredBy=network.target
      

      und

      echad@chet:~ $ cat /usr/local/bin/solix2mqtt/solix2mqtt.sh
      #!/bin/bash
      rm /usr/local/bin/solix2mqtt/auth.data;
      cd /usr/local/bin/solix2mqtt;
      S2M_USER="anker-app-user" S2M_PASSWORD="dessen_pw" S2M_COUNTRY=DE S2M_MQTT_URI=mqtt://host:1883 S2M_MQTT_USERNAME="iobroker" S2M_MQTT_PASSWORD="passwort" S2M_MQTT_CLIENT_ID="solix2mqtt" S2M_MQTT_TOPIC=solix S2M_VERBOSE=false npm run start
      

      Linux-Werkzeugkasten:
      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
      NodeJS Fixer Skript:
      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

      E 2 Antworten Letzte Antwort
      0
      • Thomas BraunT Thomas Braun

        @excalibur270

        Wie sieht dein startup-Skript und die .service-Datei aus?
        Bei mir:

        echad@chet:~ $ cat /usr/lib/systemd/system/solix2mqtt.service
        [Unit]
        Description=Pushing Anker Solix data to mosquitto
        After=mosquitto.service
        Before=iobroker.service
        
        [Service]
        User=iobroker
        Group=iobroker
        ExecStart=/usr/local/bin/solix2mqtt/solix2mqtt.sh
        Type=simple
        # Restart=always
        
        
        [Install]
        WantedBy=multi-user.target
        #RequiredBy=network.target
        

        und

        echad@chet:~ $ cat /usr/local/bin/solix2mqtt/solix2mqtt.sh
        #!/bin/bash
        rm /usr/local/bin/solix2mqtt/auth.data;
        cd /usr/local/bin/solix2mqtt;
        S2M_USER="anker-app-user" S2M_PASSWORD="dessen_pw" S2M_COUNTRY=DE S2M_MQTT_URI=mqtt://host:1883 S2M_MQTT_USERNAME="iobroker" S2M_MQTT_PASSWORD="passwort" S2M_MQTT_CLIENT_ID="solix2mqtt" S2M_MQTT_TOPIC=solix S2M_VERBOSE=false npm run start
        
        E Offline
        E Offline
        excalibur270
        schrieb am zuletzt editiert von
        #35

        @thomas-braun Hey. Ich hab das nach der readme bei github gemacht. Das sieht iwie alles anders aus. ich denke ich werde das projekt auf eis legen. Dahingehend sind die kenntnisse nicht ausreichend.

        Thomas BraunT 1 Antwort Letzte Antwort
        0
        • mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #36

          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.

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          Thomas BraunT 1 Antwort Letzte Antwort
          0
          • E excalibur270

            @thomas-braun Hey. Ich hab das nach der readme bei github gemacht. Das sieht iwie alles anders aus. ich denke ich werde das projekt auf eis legen. Dahingehend sind die kenntnisse nicht ausreichend.

            Thomas BraunT Online
            Thomas BraunT Online
            Thomas Braun
            Most Active
            schrieb am zuletzt editiert von
            #37

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

            Linux-Werkzeugkasten:
            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
            NodeJS Fixer Skript:
            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

            1 Antwort Letzte Antwort
            0
            • mickymM mickym

              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 BraunT Online
              Thomas BraunT Online
              Thomas Braun
              Most Active
              schrieb am zuletzt editiert von
              #38

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

              Linux-Werkzeugkasten:
              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
              NodeJS Fixer Skript:
              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

              mickymM 1 Antwort Letzte Antwort
              0
              • Thomas BraunT Thomas Braun

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

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #39

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

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                Thomas BraunT 1 Antwort Letzte Antwort
                0
                • mickymM 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 BraunT Online
                  Thomas BraunT Online
                  Thomas Braun
                  Most Active
                  schrieb am zuletzt editiert von Thomas Braun
                  #40

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

                  Linux-Werkzeugkasten:
                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                  NodeJS Fixer Skript:
                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                  1 Antwort Letzte Antwort
                  1
                  • Thomas BraunT Thomas Braun

                    @excalibur270

                    Wie sieht dein startup-Skript und die .service-Datei aus?
                    Bei mir:

                    echad@chet:~ $ cat /usr/lib/systemd/system/solix2mqtt.service
                    [Unit]
                    Description=Pushing Anker Solix data to mosquitto
                    After=mosquitto.service
                    Before=iobroker.service
                    
                    [Service]
                    User=iobroker
                    Group=iobroker
                    ExecStart=/usr/local/bin/solix2mqtt/solix2mqtt.sh
                    Type=simple
                    # Restart=always
                    
                    
                    [Install]
                    WantedBy=multi-user.target
                    #RequiredBy=network.target
                    

                    und

                    echad@chet:~ $ cat /usr/local/bin/solix2mqtt/solix2mqtt.sh
                    #!/bin/bash
                    rm /usr/local/bin/solix2mqtt/auth.data;
                    cd /usr/local/bin/solix2mqtt;
                    S2M_USER="anker-app-user" S2M_PASSWORD="dessen_pw" S2M_COUNTRY=DE S2M_MQTT_URI=mqtt://host:1883 S2M_MQTT_USERNAME="iobroker" S2M_MQTT_PASSWORD="passwort" S2M_MQTT_CLIENT_ID="solix2mqtt" S2M_MQTT_TOPIC=solix S2M_VERBOSE=false npm run start
                    
                    E Offline
                    E Offline
                    excalibur270
                    schrieb am zuletzt editiert von
                    #41

                    @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 BraunT 1 Antwort Letzte Antwort
                    0
                    • E excalibur270

                      @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 BraunT Online
                      Thomas BraunT Online
                      Thomas Braun
                      Most Active
                      schrieb am zuletzt editiert von
                      #42

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

                      Linux-Werkzeugkasten:
                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                      NodeJS Fixer Skript:
                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                      E 2 Antworten Letzte Antwort
                      0
                      • Thomas BraunT Thomas Braun

                        @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 Offline
                        E Offline
                        excalibur270
                        schrieb am zuletzt editiert von excalibur270
                        #43

                        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
                        0
                        • Thomas BraunT Thomas Braun

                          @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 Offline
                          E Offline
                          excalibur270
                          schrieb am zuletzt editiert von excalibur270
                          #44

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

                          Thomas BraunT mickymM 2 Antworten Letzte Antwort
                          0
                          • E excalibur270

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

                            Thomas BraunT Online
                            Thomas BraunT Online
                            Thomas Braun
                            Most Active
                            schrieb am zuletzt editiert von
                            #45

                            @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);
                            
                            });
                            

                            Linux-Werkzeugkasten:
                            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                            NodeJS Fixer Skript:
                            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                            E 2 Antworten Letzte Antwort
                            0
                            • E excalibur270

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

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von mickym
                              #46

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

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              E 1 Antwort Letzte Antwort
                              0
                              • Thomas BraunT Thomas Braun

                                @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 Offline
                                E Offline
                                excalibur270
                                schrieb am zuletzt editiert von
                                #47

                                @thomas-braun Daaaaaaaaaaaaaaaaaaaankeschön

                                1 Antwort Letzte Antwort
                                0
                                • mickymM 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 Offline
                                  E Offline
                                  excalibur270
                                  schrieb am zuletzt editiert von
                                  #48

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

                                  1 Antwort Letzte Antwort
                                  0
                                  • Thomas BraunT Thomas Braun

                                    @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 Offline
                                    E Offline
                                    excalibur270
                                    schrieb am zuletzt editiert von
                                    #49

                                    @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 BraunT 1 Antwort Letzte Antwort
                                    0
                                    • E excalibur270

                                      @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 BraunT Online
                                      Thomas BraunT Online
                                      Thomas Braun
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #50

                                      @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:~ $
                                      

                                      Linux-Werkzeugkasten:
                                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                      NodeJS Fixer Skript:
                                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                      E 1 Antwort Letzte Antwort
                                      0
                                      • Thomas BraunT Thomas Braun

                                        @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 Offline
                                        E Offline
                                        excalibur270
                                        schrieb am zuletzt editiert von
                                        #51

                                        @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 BraunT 1 Antwort Letzte Antwort
                                        0
                                        • E excalibur270

                                          @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 BraunT Online
                                          Thomas BraunT Online
                                          Thomas Braun
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #52

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

                                          Linux-Werkzeugkasten:
                                          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                          NodeJS Fixer Skript:
                                          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                          E 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          456

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe