Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. ronny130286

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    R
    • Profile
    • Following 0
    • Followers 1
    • Topics 2
    • Posts 137
    • Best 16
    • Groups 3

    ronny130286

    @ronny130286

    Starter

    20
    Reputation
    28
    Profile views
    137
    Posts
    1
    Followers
    0
    Following
    Joined Last Online

    ronny130286 Follow
    Developer Pro Starter

    Best posts made by ronny130286

    • Test Adapter AnkerSolix2
      Aktuelle Test Version 2.0.0
      Hier Adapter Beschreibung, Changelog etc. Aktuelle Test Version 2.0.0
      Veröffentlichungsdatum 09.03.2025
      Github Link https://github.com/ronny130286/ioBroker.ankersolix2

      Adapter integriert die Daten aus der Anker Solix App. Ich kann leider immer noch für die Anker Solix 2 Pro sprechen, da ich nur diese als Hardware zur Verfügung haben. Es sollte sich allerdings auch andere Anker Geräte auslesen lassen.

      Da es sich nicht um eine richtige API handelt, sondern lediglich eine simulierte Android App, habe ich mich vorerst entschlossen nur lesenden Zugriff zu nutzen.

      Bitte verwendet einen Familie Account.

      Hinweis: Wer bereits 1.1.0 installiert hatte, bitte noch einmal das Passwort neu eingeben, da es jetzt verschlüsselt ist.

      posted in Tester
      R
      ronny130286
    • RE: Anker Adapter

      Hallo,

      ich wollte den Adapter eigentlich noch vorstellen, hatte aber bis jetzt nicht so richtig Zeit 🙂

      @Holger76
      Ja das Problem kommt daher, dass du dich in der App wieder eingeloggt und den gleichen Account nutzt, damit nutzt du aktuelle unterschiedliche Token mit einem Account und das geht nicht.
      Das ist auch mit Vorsicht zu genießen, weil du auf diese Art und Weise auch deinen Account sperren werden kann (man bekommt nur eine bestimmt Anzahl an Token pro Tag , danach ist der Account für xx Stunden gesperrt, keine Sorge der wird wieder freigegeben).
      Bitte leg dir einen Familie-Account und füge diese deinem Main Account hinzu.

      Ich würde dir empfehlen, nachdem du den Account erstellst hast, die session.data zu löschen, diese liegt im Normalfall unter /opt/iobroker/iobroker-data/ankersolix2/

      posted in Entwicklung
      R
      ronny130286
    • RE: SONOFF NSPanel mit Lovelace UI

      Gibt es eigentlich eine Möglichkeit einen Monobutton (true/false) einzubinden?
      Weil es steht immer noch oben in der Beschreibung:

      Taste               - Für Szenen oder Radiosender, etc. --> Nur Funktionsaufruf - Kein Taster wie MonoButton - True/False
      

      Dann ist mir noch ein kleiner Bug im Script aufgefallen, die Funktion vom Display Update ignoriert die eigentlich Version des Displays.
      Ich habe mehrere Panels im Einsatz unter anderem auch die US-L Version, leider zerknallt er dann immer die Software auf dem Display 😞
      Kann man die Abfrage nicht noch zusätzlich einpflegen, dass auch wirklich nur die Software genommen wird welche das Panel auch benötigt?

      Edit:
      habe die Funktion mal angepasst:

      function update_tft_firmware() {
          const tft_version: string = 'v3.8.1';
          let desired_display_firmware_url =""
      
          if(getState(NSPanel_Path + '.NSPanel_Version').val =="us-l"){
              desired_display_firmware_url = `http://nspanel.pky.eu/lovelace-ui/github/nspanel-us-l-${tft_version}.tft`;
          }else if (getState(NSPanel_Path + '.NSPanel_Version').val =="us-p"){
              desired_display_firmware_url = `http://nspanel.pky.eu/lovelace-ui/github/nspanel-us-p-${tft_version}.tft`;
          }else{
              desired_display_firmware_url = `http://nspanel.pky.eu/lovelace-ui/github/nspanel-${tft_version}.tft`;
          }
          
          try {
      
              let urlString = `http://${get_current_tasmota_ip_address()}/cm?cmnd=FlashNextion ${desired_display_firmware_url}`;
              if (tasmota_web_admin_password != '') {
                  urlString = `http://${get_current_tasmota_ip_address()}/cm?user=${tasmota_web_admin_user}&password=${tasmota_web_admin_password}&cmnd=FlashNextion ${desired_display_firmware_url}`;
              }
      
              request({
                  url: `${urlString}`,
                  headers: {
                      'User-Agent': 'ioBroker'
                  }
              }, async function () {
                  await createStateAsync(NSPanel_Path + 'TFT_Firmware.onlineVersion', <iobJS.StateCommon>{ type: 'string' });
                  await setStateAsync(NSPanel_Path + 'TFT_Firmware.onlineVersion', <iobJS.State>{ val: tft_version, ack: true });
              });
          } catch (err) {
              console.warn('error at function update_tft_firmware: ' + err.message);
          }
      }
      
      posted in Hardware
      R
      ronny130286
    • RE: Node-Red funktioniert nicht über das IoBroker Menü

      @UncleSam

      Mixed Content: The page at 'https://XXXXX:xxxx/#tab-node-red-0' was loaded over HTTPS, but requested an insecure frame 'http://XXXXX:xxxx/?instance=0'. This request has been blocked; the content must be served over HTTPS.
      

      würde ja bedeuten das der Link im Menü falsch ist, weil mit http und der IP komme ich nicht in Node-Red ich muss definitv Https verwenden.

      EDIT:
      Ach wie schlecht ist das denn => ich habe den Browser Cache nochmal geleert und jetzt geht es 🤦‍♂️

      posted in ioBroker Allgemein
      R
      ronny130286
    • RE: Anker Adapter

      @solardach
      Vielen Dank für die Rückmelde 🙂

      @spoeh-man
      ich werde die im nächsten Release die Abfrage Intervalle etwas größerer ziehen, da man momentan "nur" eine Range von 10-180sek hat

      posted in Entwicklung
      R
      ronny130286
    • RE: SONOFF NSPanel mit Lovelace UI

      @armilar

      Die Funktion für den Monobutton war damals so

      function triggerButton(id: string): boolean{
      	try {
      		let obj = getObject(id);
      		if (existsState(id) && obj.common.type !== undefined && obj.common.type === "boolean") {
      			setState(id, true);
      			setTimeout(function() { setState(id, false) }, 250)
      			return true;
      		}
      		return false;
      	}  catch (err) {
              console.warn('function triggerButton: ' + err.message);
          }	
      }
      

      Man muss aber etwas mehr machen weil man separat einen Status dem Alias hinzufügen muss der dann den Status des Lichts wieder gibt.
      Dummerweise habe ich damals nicht alles den Version hinterher gezogen.

      posted in Hardware
      R
      ronny130286
    • RE: Anker Adapter

      @smarthomer-0

      Auf Github habe ich schon eine Version hochgeladen, dort wird der Folder energyanalysis "reorganisiert".
      Der DP, den du zeigst, kommt vom Grid (Netz) der allerdings schon in der Response leider leer, jedoch hat man die Option sich die engeryanalysis von der Solix selbst zu holen und dort ist der Wert dann befüllt.

      Beispiel von meinem System (Solix 2 Pro)
      Unbenannt.png

      Ich werde die Tage noch einen neuen Release machen.

      posted in Entwicklung
      R
      ronny130286
    • RE: SONOFF NSPanel mit Lovelace UI

      @armilar
      ne ist auch nicht gut, aber ich habe glaube ne schöne Lösung gefunden:

      if (existsState(pageItem.id + '.GET')) {
                      val = getState(pageItem.id + '.GET').val;
                      RegisterEntityWatcher(pageItem.id + '.GET');
                  }
                  if(pageItem.monobutton != undefined && pageItem.monobutton == true){
                     if (existsState(pageItem.id + '.ACTUAL')) {
                          val = getState(pageItem.id + '.ACTUAL').val;
                          RegisterEntityWatcher(pageItem.id + '.ACTUAL');
                      }
                  }
                  else{
                      if (existsState(pageItem.id + '.ACTUAL')) {
                          val = getState(pageItem.id + '.ACTUAL').val;
                          RegisterEntityWatcher(pageItem.id + '.ACTUAL');
                      }
                      if (existsState(pageItem.id + '.SET')) {
                          val = getState(pageItem.id + '.SET').val;
                          RegisterEntityWatcher(pageItem.id + '.SET');
                      }
                  }
                  if (existsState(pageItem.id + '.ON_ACTUAL')) {
                      val = getState(pageItem.id + '.ON_ACTUAL').val;
                      RegisterEntityWatcher(pageItem.id + '.ON_ACTUAL');
                  } 
                  if (existsState(pageItem.id + '.ON_SET')) {
                      val = getState(pageItem.id + '.ON_SET').val;
                      RegisterEntityWatcher(pageItem.id + '.ON_SET');
                  }
                  if (existsState(pageItem.id + '.ON')) {
                      val = getState(pageItem.id + '.ON').val;
                      RegisterEntityWatcher(pageItem.id + '.ON');
                  }
      

      Ich verzichte dann im Alias auf den Sonderwert .STATE und nutze .ACTUAL für den Status des Lichts bzw. den SPS Ausgang.
      Somit funktioniert bei mir alle wie es soll. Auch das hin und her hüpfen des Status ist weg und die Icon werden auch richtig angezeigt (beim Mono und beim normalen Schalter)

      20230110-190950_NIBLaJ1R.mp4

      Ich habs auch nochmal im Gridpage getestet, sieht auch gut aus.

      posted in Hardware
      R
      ronny130286
    • RE: Anker Adapter

      @erazorlee

      Ich spiele heute nochmal einen kleinen Patch ein, weil die Solix 3 einen neuen Wert liefert, der als String erkannt wird, allerdings ein bool ist.
      Wenn das alles chic ist, wird es Freitag oder Samstag zur Stable;)

      posted in Entwicklung
      R
      ronny130286
    • RE: SONOFF NSPanel mit Lovelace UI

      @armilar

      ok, na dann lebe ich erstmal damit wie es jetzt ist und hoffe dann auf die Sprungmarke 🙂

      posted in Hardware
      R
      ronny130286

    Latest posts made by ronny130286

    • RE: Anker Adapter

      @toralt

      Ich habe gestern Abend noch eine commit auf Github gemacht, diese hat den Powerplan und das ACLoading enthalten.
      Wenn du willst kannst du es gern testen (ich kann es noch nicht zu 100% testen).

      @Holger76
      Du könntest den Post einfach editieren 😉
      Aber Kurz erklärt, das mit der Site ist nur verwirrend, weil man denkt man steuert das Geräte selbst, aber technisch gesehen steuert man die Site und nicht das Gerät. Auch wenn du dort das Device (Solarbank) auswählst holt sich der Adapter aus dem String nur die SiteID.
      af1c47cb-7801-49e5-a69f-806b1409bdba-image.png

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @darksoul

      Ja diesen Wert suche ich auch schon länger in den ganzen Requests, aber man kann es leider irgendwie noch nicht abfragen.

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @toralt

      Fakt ist, du kannst es so erstmal nicht nutzen, mit dem einfach Steuern, weil der Benutzerdefinierte Modus es aktuell nicht hergibt => das AC Laden wird über separate Parameter gesteuert.

      Bis jetzt sind im Adapter rein gelesene Werte enthalten in den DP anzeigt, mit dem Einzug des einfachen Steuerns gibst du nur eine DP an der überwacht wird auf Änderungen.
      Ändert sich der angegeben DP, dann nimmt der Adapter diese Wert, gleich ihn noch gegen max. legale Einspeisung ab (in Dt max. 800W) und übergibt es mit diesem JSON an die Anker Cloud:

      {
          "mode_type": 3,
          "custom_rate_plan": [{
                  "index": 0,
                  "week": [0, 1, 2, 3, 4, 5, 6],
                  "ranges": [{
                          "start_time": "00:00",
                          "end_time": "24:00",
                          "power": 400 // Hier wäre dein Steuerwert aus dem ausgewählten DP
                      }
                  ]
              }
          ],
          "blend_plan": null,
          "default_home_load": 200,
          "max_load": 800,
          "min_load": 0,
          "step": 10
      }
      
      

      Hier mal noch ein komplettes JSON mit Kommentaren, was man übergeben kann.

      {
          "mode_type": 1, => das ist der Modus: 1 = Eigenverbrauch, 3 = Benutzerdefiniert.... die andern müsste ich mir erst noch ansehen.
          "custom_rate_plan": [{ // => Hier wird der Benutzerdefinierte Plan eingestellt.
                  "index": 0, // => Index des Parametersatzes
                  "week": [0, 1],  // =>  Wochentage vom Benutzerdefiniert
                  "ranges": [{
                          "start_time": "00:00",  // => Startzeit
                          "end_time": "01:00", // =>  Endzeit
                          "power": 200  // =>  Leistung
                      }
                  ]
              }, {
                  "index": 1,
                  "week": [2, 3, 5, 6],  // =>  Wochentage vom Benutzerdefiniert
                  "ranges": [{
                          "start_time": "00:00",  // =>  Startzeit
                          "end_time": "06:00",  // =>  Endzeit
                          "power": 450  // => Leistung
                      }, {
                          "start_time": "06:00", // =>  Startzeit
                          "end_time": "23:00",  // =>  Endzeit
                          "power": 200 // => Leistung
                      }
                  ]
              }
          ],
          "blend_plan": null,
          "use_time": [],
          "manual_backup": { // => Hiermit wird die AC Einspeisung gemacht
              "ranges": [{
                      "start_time": 1755611760, // => Startzeit in Millisekunden
                      "end_time": 1755618960 // => Endzeit in Millisekunden
                  }
              ],
              "switch": true // => gibt den Schalter an ob an/aus
          },
          "reserved_soc": 5,// => theoretisch die Reserve des Akkus, findet aber scheinbar keine Anwendung
          "dynamic_price": null,
          "ai_ems": {
              "enable": false,
              "status": 3
          },
          "time_slot": null,
          "schedule_mode": null,
          "default_home_load": 200,
          "max_load": 800, // => max. Einspeisung => wird jedoch aus anderen Parametern gebildet 
          "min_load": 0,
          "step": 10 // => Sollten die Steps sein die man einstellen kann
      }
      

      Der Parameter "manual_backup" ist aktuell im Adapter immer Null bzw. wir gar nicht angegeben, deshalb würde er das AC Laden auch nicht einschalten.

      Gib mir mal noch 1-2 Tage dann versuche ich das AC Laden umzusetzen.

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @toralt

      Also würde eigentlich wie von mir beschrieben erstmal reichen, eine DP zu erzeugen der den Betriebsmodus umstellen auf Noteinspeisung?

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @toralt

      Ich wusste es das solche Sonderanwendungen kommen 😄 (nicht böse gemeint 😉 )
      Momentan ist im Adapter nur eine Einspeisung über den Benutzerdefinierten Modus vorgesehen, ich habe im Adapter das Thema AC laden noch nicht berücksichtig.

      Da ich diesen Aufbau so nicht testen kann, hätte ich ein paar Frage:
      Du hast jetzt ein Solix 3 mit dem Smartmeter in der App verknüpft und eine Solix 3 die du mit dem Adapter steuern willst, habe ich das so richtig verstanden?
      Was willst du machen wenn nicht genug Strom mehr vorhanden ist bzw. wie machst du das jetzt (einfach Modus wechseln)?

      Ich werde mir das aber mal aufschreiben, ich will am kommenden Wochenende meinen Aufbau etwas anpassen vielleicht kann ich es dann auch testen 😉

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @thisoft

      Was ich auf alle Fälle noch realisieren will ist, dass man gerade im Winter nicht nur auf Eigenverbrauch stellt, sondern bspw. sagt von 10:00 - 14:00 machst er nur 200W und dann erst schaltet er auf Eigenverbrauch um (Also eine reine Umschaltung zwischen den Betriebsmodis).
      Dies Funktion fast ich ziemlich cool, der Growatt Neo hat sowas schon von Hause aus an Bord.

      Man könnte es einfach über eine weiteren DP machen und ihm den Betriebs Modus geben, dabei würde er nicht mal den benutzerdefinierten Plan überschreiben.

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @thisoft

      Vorerst ja, es war die erste Umsetzung, ich will dann dann später noch die andere Dinge zur Verfügung stellen.
      Auch das du dir den Plan so machen kann wie du willst (analog zur App).

      Der DP zum Steuern kann ein beliebiger sein, Hauptsache ist es ist eine Nummerwert.
      Du kannst diese auch mit dem JavaSkript Adapter beschreiben (ganz wichtig ack=true) und dann übergibt der Apdater ihn an die Solix im benutzerdefinierten Modus. Du kannst auch ein Smartmeter nutzen was nicht mit der Solix verknüpft ist.

      Es ist auch momentan so, dass man max. 800w in richtigung Haus einspeisen kann, das liegt aber daran, dass ich nur eine Response bekommen was die max legale einspeise Power ist.
      In der App kannst du ja inzwischen auch 1200W mit der Solix 3 in Haus schicken 😉

      Und er wert wir auf 10er gerundet also wie beim benutzerdefiniert in der App auch.

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @thisoft

      hast du auch deinen Admin Account benutzt?

      Guck mal bitte unter der Solarbank direkt oder auch im Smartmeter, dort gibt es jetzt einen DP der "is_admin" heißt.
      Nur wenn diese auf True steht wurde der Account als Admin identifiziert (den kann man nicht manuell setzen)

      Screenshot 2025-08-18 160843.png

      Der DP "retain_load" ist ein reiner Auslesewert den die Response zurück gibt.

      Wichtig: wenn du den Wert manuell reinschreibst, dann immer die Bestätigt Checkbox anwählen, sonst passiert auch nichts!
      f099bb1a-d81f-4e80-bba7-0ccba607d3d9-image.png

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @thisoft

      Der obere Wert ist der Wattwert der gesteuert werden soll und unten kommt die SiteId rein welche gesteuert werden soll.

      Wenn ich das auf dem Smartphone richtig sehe, hast du es schon richtig eingegeben.

      Änderst du jetzt den Wert, sollte er es in deiner Solix unter benutzerdefiniert setzen.

      posted in Entwicklung
      R
      ronny130286
    • RE: Anker Adapter

      @thisoft

      Ich habe gestern Abend die Beta reingestellt.

      posted in Entwicklung
      R
      ronny130286
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo