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. Daten aus Fronius Solarweb auslesen

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.2k

Daten aus Fronius Solarweb auslesen

Geplant Angeheftet Gesperrt Verschoben Entwicklung
619 Beiträge 60 Kommentatoren 188.7k Aufrufe 50 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.
  • Dr. KOALD Dr. KOAL

    @strobelix :

    Hallo, danke für das Script.
    Ich hab das seit heute im Einsatz aber bekomme keine Daten.

    Steht immer "Solarweb Token konnte nicht erstellt werden"
    Ich hab im Passwort viele Sonderzeichen ist das eventuell ein Problem?
    User = meien Mail
    ID: Alles Zeichen nach dem = aus diesem Link: "https://www.solarweb.com/PvSystems/PvSystem?pvSystemId=xxxxxx"

    Hab das Script aus dem POST 1, das ZIP File.

    Danke
    LG
    KOAL

    C Offline
    C Offline
    c1olli
    schrieb am zuletzt editiert von
    #472

    @dr-koal
    Hast Du auch die Solarweb ID eingetragen?

    Gruß
    Olli

    1 Antwort Letzte Antwort
    0
    • S Strobelix

      Gen24 und Solarweb

      Hallo zusammen.
      Da der Gen24 ja über die lokale xml API nicht die Tages/Monats und Jahreswerte liefert und deren Berechnungen mit Sourceanalytics zu ungenau sind (ausserdem sind manche Werte nicht verfügbar), habe ich die Solarweb App mal abgehört und ein Script geschrieben, dass die aktuellen Tages/Monats/Jahres/Totalwerte der Verbräuche abfragt.

      Falls ihr eine Version vor dem 10. Jan 2021 nutzt, bitte noch mal den gesamten Solarweb Ordner löschen.
      Ich musste zu viele Anpassungen vornehmen um alles in die Ordnerstruktur zu bekommen.

      Ihr müsst die Solarweb Zugangsdaten und die PV-ID (aus dem Browser ersichtlich) einfügen und das Blockly starten.

      Totalwerte und Tages/Monats/Jahres-Werte des dem aktuellen Jahr werden sofort geladen.
      Bereits vergangene Wochentage der aktuellen Woche können mit einem Button nachgeladen werden.

      Vergangene Werte werden entweder zum Ende der Periode (Tag/Woche/Monat/Jahr) geladen oder manuell über den Button.

      Um 0:00 jeden Tag/Woche/Monat/Jahr werden die Vordaten zurückgesetzt und neu befüllt, sobald Solarweb Daten zur Verfügung stellt.

      Die Daten im "Previous" Ordner werden auch um 0:00 der neuen Periode zurückgesetzt, aber erst um 2:00 mit den Daten aus Solarweb aktualisiert.
      Manchmal liefert der Wechselrichter erst nach Mitternacht die letzten Tagesdaten an Solarweb und damit hier nicht - wie mit Sourceanalytix - beim Tagesübergang Fehler entstehen, werden diese Werte erst um 2:00 abgefragt.

      Außerdem kann man durch das manuelle Nachladen, sofort auf Vorjahresdaten zugreifen und muss nicht erst ein Jahr abwarten. Sollte das abfragen von alten Werten mal nicht funktionieren, bitte nach einer Minute nochmal testen.

      Laut Solarweb-API müssten alle Vergangenheitswerte auch als Nicht-Premium-Kunde funktionieren.
      Lediglich beim Forecast erhalten Basic-Nutzer einen Hinweis im Log, das kein Premium vorhanden ist.

      Änderungsprotokoll:
      12. Jan 2021
      Änderung: Umlaute korrigiert, Forecast Wertrundung korrigiert, Premium-Fehlermeldung als Info und nicht als Error
      Einfach Blockly austauschen - Datenpunkte bleiben identisch, wenn ihr das Script vom 10.Jan 2021 genutzt habt

      1. März 2022:
        Fehlerbehebung: Annual Month wurde monatlich zurückgesetzt, statt jährlich.
        Änderung: Ohne Premium Account erfolgt beim Forecast nur noch eine Loginfo und keine Warnung mehr

      2. September 2023
        Fehlerbehebung Forecast Today.
        Fronius hat die API geändert und auch vergangene Tagesdaten dazuaddiert. Fehler behoben, in dem ich nur noch ab der aktuellen Uhrzeit abfrage.

      3. März 2024
        Fehler beim Periodenwechsel behoben (Fehlermeldung im Log bzgl Booleanwert der mit Number beschrieben wird)
        Optimierung der Forcastabfrage

      4. Mai 2024
        Library von Request auf Axios umgestellt, damit der Javascript-Adapter keine Fehler mehr berichtet.

      Solarweb_Abfrage_Leer.zip

      S Offline
      S Offline
      Snopy_16
      schrieb am zuletzt editiert von
      #473

      @strobelix sagte in Daten aus Fronius Solarweb auslesen:

      März 2022:
      Änderung: Ohne Premium Account erfolgt beim Forecast nur noch eine Loginfo und keine Warnung mehr

      javascript.0
      2024-02-09 17:35:06.155	info	script.js.Mein_Ordner.Fronius0: Solarweb Forecast Forecast Tomorrow konnte nicht abgefragt werden - Kein Premiumaccount
      
      javascript.0
      2024-02-09 17:35:02.158	info	script.js.Mein_Ordner.Fronius0: Solarweb Forecast Forecast Today konnte nicht abgefragt werden - Kein Premiumaccount
      
      javascript.0
      2024-02-09 17:32:00.215	info	script.js.Mein_Ordner.Fronius0: Solarweb Token erstellt
      

      Ich will auch das Loginfo abschalten, es müllt mir das Log zu (jede halbe Stunde die Einträge)
      würde da ein Löschen der Funktion "forecast" im Script abhilfe schaffen?

      Forecast.JPG
      Oder gibt es da im Hintergrund Abhängigkeiten, sodass das Script nicht mehr funktioniert ?
      Bin leider nicht so bewandert mit den Programmiersachen.

      Man kann nicht alle Probleme lösen, aber wenigstens verursachen.

      LenovoThinkCentre M900 Tiny | i5-T6500 | 16 GB | 256 SSD
      iobroker auf Proxmox VM
      Node.js: v22.18.0 - NPM: 10.9.3 - js-controller: 7.0.6 - admin: v7.7.2
      FritzBox-7530TX hinter Glasfasermodem, WiFi mit Unifi

      JB_SullivanJ 1 Antwort Letzte Antwort
      0
      • S Snopy_16

        @strobelix sagte in Daten aus Fronius Solarweb auslesen:

        März 2022:
        Änderung: Ohne Premium Account erfolgt beim Forecast nur noch eine Loginfo und keine Warnung mehr

        javascript.0
        2024-02-09 17:35:06.155	info	script.js.Mein_Ordner.Fronius0: Solarweb Forecast Forecast Tomorrow konnte nicht abgefragt werden - Kein Premiumaccount
        
        javascript.0
        2024-02-09 17:35:02.158	info	script.js.Mein_Ordner.Fronius0: Solarweb Forecast Forecast Today konnte nicht abgefragt werden - Kein Premiumaccount
        
        javascript.0
        2024-02-09 17:32:00.215	info	script.js.Mein_Ordner.Fronius0: Solarweb Token erstellt
        

        Ich will auch das Loginfo abschalten, es müllt mir das Log zu (jede halbe Stunde die Einträge)
        würde da ein Löschen der Funktion "forecast" im Script abhilfe schaffen?

        Forecast.JPG
        Oder gibt es da im Hintergrund Abhängigkeiten, sodass das Script nicht mehr funktioniert ?
        Bin leider nicht so bewandert mit den Programmiersachen.

        JB_SullivanJ Offline
        JB_SullivanJ Offline
        JB_Sullivan
        schrieb am zuletzt editiert von
        #474

        @snopy_16 Braucht man nicht löschen - einfach den Block auf deaktivieren setzen. Habe ich auch gemacht und es gibt meines Wissens keine weiteren Anhängigkeiten, bzw. wenn keine Daten auf diesem Weg rein kommen, wird auch vom Skript nichts weiter in die Datenpunkte geschrieben.

        ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

        S 1 Antwort Letzte Antwort
        0
        • JB_SullivanJ JB_Sullivan

          @snopy_16 Braucht man nicht löschen - einfach den Block auf deaktivieren setzen. Habe ich auch gemacht und es gibt meines Wissens keine weiteren Anhängigkeiten, bzw. wenn keine Daten auf diesem Weg rein kommen, wird auch vom Skript nichts weiter in die Datenpunkte geschrieben.

          S Offline
          S Offline
          Snopy_16
          schrieb am zuletzt editiert von
          #475

          @jb_sullivan
          Super
          Danke für den Tip:+1: :blush:

          Man kann nicht alle Probleme lösen, aber wenigstens verursachen.

          LenovoThinkCentre M900 Tiny | i5-T6500 | 16 GB | 256 SSD
          iobroker auf Proxmox VM
          Node.js: v22.18.0 - NPM: 10.9.3 - js-controller: 7.0.6 - admin: v7.7.2
          FritzBox-7530TX hinter Glasfasermodem, WiFi mit Unifi

          1 Antwort Letzte Antwort
          0
          • S Strobelix

            Gen24 und Solarweb

            Hallo zusammen.
            Da der Gen24 ja über die lokale xml API nicht die Tages/Monats und Jahreswerte liefert und deren Berechnungen mit Sourceanalytics zu ungenau sind (ausserdem sind manche Werte nicht verfügbar), habe ich die Solarweb App mal abgehört und ein Script geschrieben, dass die aktuellen Tages/Monats/Jahres/Totalwerte der Verbräuche abfragt.

            Falls ihr eine Version vor dem 10. Jan 2021 nutzt, bitte noch mal den gesamten Solarweb Ordner löschen.
            Ich musste zu viele Anpassungen vornehmen um alles in die Ordnerstruktur zu bekommen.

            Ihr müsst die Solarweb Zugangsdaten und die PV-ID (aus dem Browser ersichtlich) einfügen und das Blockly starten.

            Totalwerte und Tages/Monats/Jahres-Werte des dem aktuellen Jahr werden sofort geladen.
            Bereits vergangene Wochentage der aktuellen Woche können mit einem Button nachgeladen werden.

            Vergangene Werte werden entweder zum Ende der Periode (Tag/Woche/Monat/Jahr) geladen oder manuell über den Button.

            Um 0:00 jeden Tag/Woche/Monat/Jahr werden die Vordaten zurückgesetzt und neu befüllt, sobald Solarweb Daten zur Verfügung stellt.

            Die Daten im "Previous" Ordner werden auch um 0:00 der neuen Periode zurückgesetzt, aber erst um 2:00 mit den Daten aus Solarweb aktualisiert.
            Manchmal liefert der Wechselrichter erst nach Mitternacht die letzten Tagesdaten an Solarweb und damit hier nicht - wie mit Sourceanalytix - beim Tagesübergang Fehler entstehen, werden diese Werte erst um 2:00 abgefragt.

            Außerdem kann man durch das manuelle Nachladen, sofort auf Vorjahresdaten zugreifen und muss nicht erst ein Jahr abwarten. Sollte das abfragen von alten Werten mal nicht funktionieren, bitte nach einer Minute nochmal testen.

            Laut Solarweb-API müssten alle Vergangenheitswerte auch als Nicht-Premium-Kunde funktionieren.
            Lediglich beim Forecast erhalten Basic-Nutzer einen Hinweis im Log, das kein Premium vorhanden ist.

            Änderungsprotokoll:
            12. Jan 2021
            Änderung: Umlaute korrigiert, Forecast Wertrundung korrigiert, Premium-Fehlermeldung als Info und nicht als Error
            Einfach Blockly austauschen - Datenpunkte bleiben identisch, wenn ihr das Script vom 10.Jan 2021 genutzt habt

            1. März 2022:
              Fehlerbehebung: Annual Month wurde monatlich zurückgesetzt, statt jährlich.
              Änderung: Ohne Premium Account erfolgt beim Forecast nur noch eine Loginfo und keine Warnung mehr

            2. September 2023
              Fehlerbehebung Forecast Today.
              Fronius hat die API geändert und auch vergangene Tagesdaten dazuaddiert. Fehler behoben, in dem ich nur noch ab der aktuellen Uhrzeit abfrage.

            3. März 2024
              Fehler beim Periodenwechsel behoben (Fehlermeldung im Log bzgl Booleanwert der mit Number beschrieben wird)
              Optimierung der Forcastabfrage

            4. Mai 2024
              Library von Request auf Axios umgestellt, damit der Javascript-Adapter keine Fehler mehr berichtet.

            Solarweb_Abfrage_Leer.zip

            D Offline
            D Offline
            DonAlfredo70
            schrieb am zuletzt editiert von
            #476

            @strobelix
            Hallo Strobelix,

            ich kann, auch nach langem recherchieren, das Blockly Script (Solarweb abfrage Blockly 17-09-2023.txt) nach dem Import nicht speichern, d.h. nach dem Import werden die Blöcke und Funktionen angezeigt, werden aber beim Speichern gelöscht.

            IoBroker Admin: v6.13.16
            Skript Adapter: zuerst 7.1.6 und dann 7.8.0 von npm haben das gleiche Verhalten
            Node: v18.17.1

            Sind eventuell etwaige Zusatzpakte einzubinden oder sonstige Parameter zu setzen?

            Danke & lg

            T 1 Antwort Letzte Antwort
            0
            • D DonAlfredo70

              @strobelix
              Hallo Strobelix,

              ich kann, auch nach langem recherchieren, das Blockly Script (Solarweb abfrage Blockly 17-09-2023.txt) nach dem Import nicht speichern, d.h. nach dem Import werden die Blöcke und Funktionen angezeigt, werden aber beim Speichern gelöscht.

              IoBroker Admin: v6.13.16
              Skript Adapter: zuerst 7.1.6 und dann 7.8.0 von npm haben das gleiche Verhalten
              Node: v18.17.1

              Sind eventuell etwaige Zusatzpakte einzubinden oder sonstige Parameter zu setzen?

              Danke & lg

              T Online
              T Online
              TimoWald
              schrieb am zuletzt editiert von
              #477

              @donalfredo70 Das hatte ich auch mal. Aber nicht nur bei diesem Script. Habe den JS Adapter bzw Iobroker neu gestartet dann ging es.

              D 1 Antwort Letzte Antwort
              0
              • T TimoWald

                @donalfredo70 Das hatte ich auch mal. Aber nicht nur bei diesem Script. Habe den JS Adapter bzw Iobroker neu gestartet dann ging es.

                D Offline
                D Offline
                DonAlfredo70
                schrieb am zuletzt editiert von
                #478

                @TimoWald
                Danke für den Tip, das Problem hat sich leider damit nicht gelöst. Habe zusätzlich noch alle Pakete, angefangen von proxmox, Containern bis zu den Adaptern aktualisiert und neu gestartet. Interessant ist, das sich andere Blockly Exporte (z.B. https://www.smarthome-tricks.de/download/3378/) importieren und speichern lassen.

                S 1 Antwort Letzte Antwort
                0
                • D DonAlfredo70

                  @TimoWald
                  Danke für den Tip, das Problem hat sich leider damit nicht gelöst. Habe zusätzlich noch alle Pakete, angefangen von proxmox, Containern bis zu den Adaptern aktualisiert und neu gestartet. Interessant ist, das sich andere Blockly Exporte (z.B. https://www.smarthome-tricks.de/download/3378/) importieren und speichern lassen.

                  S Offline
                  S Offline
                  Snopy_16
                  schrieb am zuletzt editiert von Snopy_16
                  #479

                  @Strobelix

                  Ich habe immer Warnmeldungen von javascript.0 im log wenn Tages oder Monatswerte abgerufen werden.

                  You are assigning a number to the state "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.
                  

                  Der state type wurde im Script dem Objekt so zugewiesen

                  var https = require("https");
                  var request = require("request");
                  var data = JSON.stringify({userId: Mail, password: Pass});
                   
                   var options = {
                    url: 'https://swqapi.solarweb.com/iam/jwt',
                    headers: {
                    'AccessKeyId':'FKIAFFB3D0986CF24CBDBF580755A9F38769',
                    'AccessKeyValue': 'ab5563fb-ff0a-43d0-a526-c07a4d0b03aa',
                    'Content-Type': 'application/json'
                    },
                    body: data,
                    
                  };
                   
                  function callback(error, response, body) {
                  var result = JSON.parse(body);
                  if (response.statusCode ==200) {
                  token = result.jwtToken;
                  console.log("Solarweb Token erstellt");
                  createState("0_userdata.0.Solarweb.Current.02_Weekdays.Aktuelle_Wochentagwerte_abrufen", {name: "Aktuelle Wochentagwerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                  createState("0_userdata.0.Solarweb.Current.05_Annual_Months.Aktuelle_Einzelmonatswerte_abrufen", {name: "Aktuelle Einzelmonatswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                  createState("0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen", {name: "Vergangene Tageswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                  
                  
                  {
                    "common": {
                      "name": "Vergangene Tageswerte abrufen",
                      "type": "boolean",
                      "role": "button",
                      "read": true,
                      "write": true,
                      "desc": "Manuell erzeugt",
                      "def": false
                    },
                    "native": {},
                    "type": "state",
                    "_id": "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen",
                    "acl": {
                      "object": 1636,
                      "state": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator"
                    },
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1709374264274
                  }
                  

                  Leider weiss ich jetzt nicht, wo ich den Hebel ansetzen soll.
                  Von wo aus wird dieser Wert geschrieben?
                  Soll ich im Objekt den type manuell auf number setzen?

                  Man kann nicht alle Probleme lösen, aber wenigstens verursachen.

                  LenovoThinkCentre M900 Tiny | i5-T6500 | 16 GB | 256 SSD
                  iobroker auf Proxmox VM
                  Node.js: v22.18.0 - NPM: 10.9.3 - js-controller: 7.0.6 - admin: v7.7.2
                  FritzBox-7530TX hinter Glasfasermodem, WiFi mit Unifi

                  C S 3 Antworten Letzte Antwort
                  0
                  • S Snopy_16

                    @Strobelix

                    Ich habe immer Warnmeldungen von javascript.0 im log wenn Tages oder Monatswerte abgerufen werden.

                    You are assigning a number to the state "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.
                    

                    Der state type wurde im Script dem Objekt so zugewiesen

                    var https = require("https");
                    var request = require("request");
                    var data = JSON.stringify({userId: Mail, password: Pass});
                     
                     var options = {
                      url: 'https://swqapi.solarweb.com/iam/jwt',
                      headers: {
                      'AccessKeyId':'FKIAFFB3D0986CF24CBDBF580755A9F38769',
                      'AccessKeyValue': 'ab5563fb-ff0a-43d0-a526-c07a4d0b03aa',
                      'Content-Type': 'application/json'
                      },
                      body: data,
                      
                    };
                     
                    function callback(error, response, body) {
                    var result = JSON.parse(body);
                    if (response.statusCode ==200) {
                    token = result.jwtToken;
                    console.log("Solarweb Token erstellt");
                    createState("0_userdata.0.Solarweb.Current.02_Weekdays.Aktuelle_Wochentagwerte_abrufen", {name: "Aktuelle Wochentagwerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                    createState("0_userdata.0.Solarweb.Current.05_Annual_Months.Aktuelle_Einzelmonatswerte_abrufen", {name: "Aktuelle Einzelmonatswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                    createState("0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen", {name: "Vergangene Tageswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                    
                    
                    {
                      "common": {
                        "name": "Vergangene Tageswerte abrufen",
                        "type": "boolean",
                        "role": "button",
                        "read": true,
                        "write": true,
                        "desc": "Manuell erzeugt",
                        "def": false
                      },
                      "native": {},
                      "type": "state",
                      "_id": "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      },
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1709374264274
                    }
                    

                    Leider weiss ich jetzt nicht, wo ich den Hebel ansetzen soll.
                    Von wo aus wird dieser Wert geschrieben?
                    Soll ich im Objekt den type manuell auf number setzen?

                    C Offline
                    C Offline
                    c1olli
                    schrieb am zuletzt editiert von
                    #480

                    @snopy_16
                    Den Fehler habe ich auch, und auch keine Ahnung warum.

                    Gruß
                    Olli

                    C 1 Antwort Letzte Antwort
                    0
                    • C c1olli

                      @snopy_16
                      Den Fehler habe ich auch, und auch keine Ahnung warum.

                      C Offline
                      C Offline
                      c1olli
                      schrieb am zuletzt editiert von
                      #481

                      Kann es sein, dass es einen Unterschied macht ob es Solarweb Premium oder der einfache Zugang ist?

                      Gruß
                      Olli

                      S 1 Antwort Letzte Antwort
                      0
                      • C c1olli

                        Kann es sein, dass es einen Unterschied macht ob es Solarweb Premium oder der einfache Zugang ist?

                        S Offline
                        S Offline
                        Snopy_16
                        schrieb am zuletzt editiert von
                        #482

                        @c1olli
                        Das kann ich nicht beurteilen, hab kein Premium.
                        Aber wie könnte das der Grund sein?

                        Man kann nicht alle Probleme lösen, aber wenigstens verursachen.

                        LenovoThinkCentre M900 Tiny | i5-T6500 | 16 GB | 256 SSD
                        iobroker auf Proxmox VM
                        Node.js: v22.18.0 - NPM: 10.9.3 - js-controller: 7.0.6 - admin: v7.7.2
                        FritzBox-7530TX hinter Glasfasermodem, WiFi mit Unifi

                        1 Antwort Letzte Antwort
                        0
                        • S Snopy_16

                          @Strobelix

                          Ich habe immer Warnmeldungen von javascript.0 im log wenn Tages oder Monatswerte abgerufen werden.

                          You are assigning a number to the state "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.
                          

                          Der state type wurde im Script dem Objekt so zugewiesen

                          var https = require("https");
                          var request = require("request");
                          var data = JSON.stringify({userId: Mail, password: Pass});
                           
                           var options = {
                            url: 'https://swqapi.solarweb.com/iam/jwt',
                            headers: {
                            'AccessKeyId':'FKIAFFB3D0986CF24CBDBF580755A9F38769',
                            'AccessKeyValue': 'ab5563fb-ff0a-43d0-a526-c07a4d0b03aa',
                            'Content-Type': 'application/json'
                            },
                            body: data,
                            
                          };
                           
                          function callback(error, response, body) {
                          var result = JSON.parse(body);
                          if (response.statusCode ==200) {
                          token = result.jwtToken;
                          console.log("Solarweb Token erstellt");
                          createState("0_userdata.0.Solarweb.Current.02_Weekdays.Aktuelle_Wochentagwerte_abrufen", {name: "Aktuelle Wochentagwerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                          createState("0_userdata.0.Solarweb.Current.05_Annual_Months.Aktuelle_Einzelmonatswerte_abrufen", {name: "Aktuelle Einzelmonatswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                          createState("0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen", {name: "Vergangene Tageswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                          
                          
                          {
                            "common": {
                              "name": "Vergangene Tageswerte abrufen",
                              "type": "boolean",
                              "role": "button",
                              "read": true,
                              "write": true,
                              "desc": "Manuell erzeugt",
                              "def": false
                            },
                            "native": {},
                            "type": "state",
                            "_id": "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            },
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1709374264274
                          }
                          

                          Leider weiss ich jetzt nicht, wo ich den Hebel ansetzen soll.
                          Von wo aus wird dieser Wert geschrieben?
                          Soll ich im Objekt den type manuell auf number setzen?

                          S Offline
                          S Offline
                          Strobelix
                          schrieb am zuletzt editiert von Strobelix
                          #483

                          @snopy_16 ich hab mir das gerade angesehen suche den Fehler
                          Ich habe das gerade auch bei mir im Log entdeckt

                          So ich habe den Fehler gefunden!
                          Beim Tages/Montas/Jahrewechsel werden ja die jeweiligen Werte alle auf 0 gesetzt.
                          Da sich der Datenpunkt "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen" auch in dem Ordner befindet, wird dieser auch auf 0 gesetzt.

                          Ich schau mal wie ich diesen Datenpunkt ausschließen kann.

                          Raspberrymatic, Homematic & Homematic IP Aktoren, ioBroker auf NUC i3, Nuki, Harmony Hub, Digitalstrom, Diverse Sonoff (Tasmota) und Shellies

                          1 Antwort Letzte Antwort
                          0
                          • S Snopy_16

                            @Strobelix

                            Ich habe immer Warnmeldungen von javascript.0 im log wenn Tages oder Monatswerte abgerufen werden.

                            You are assigning a number to the state "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.
                            

                            Der state type wurde im Script dem Objekt so zugewiesen

                            var https = require("https");
                            var request = require("request");
                            var data = JSON.stringify({userId: Mail, password: Pass});
                             
                             var options = {
                              url: 'https://swqapi.solarweb.com/iam/jwt',
                              headers: {
                              'AccessKeyId':'FKIAFFB3D0986CF24CBDBF580755A9F38769',
                              'AccessKeyValue': 'ab5563fb-ff0a-43d0-a526-c07a4d0b03aa',
                              'Content-Type': 'application/json'
                              },
                              body: data,
                              
                            };
                             
                            function callback(error, response, body) {
                            var result = JSON.parse(body);
                            if (response.statusCode ==200) {
                            token = result.jwtToken;
                            console.log("Solarweb Token erstellt");
                            createState("0_userdata.0.Solarweb.Current.02_Weekdays.Aktuelle_Wochentagwerte_abrufen", {name: "Aktuelle Wochentagwerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                            createState("0_userdata.0.Solarweb.Current.05_Annual_Months.Aktuelle_Einzelmonatswerte_abrufen", {name: "Aktuelle Einzelmonatswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                            createState("0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen", {name: "Vergangene Tageswerte abrufen",  type: 'boolean', role: 'button', read: true, write: true, desc: "Manuell erzeugt",def:false}, function () {})
                            
                            
                            {
                              "common": {
                                "name": "Vergangene Tageswerte abrufen",
                                "type": "boolean",
                                "role": "button",
                                "read": true,
                                "write": true,
                                "desc": "Manuell erzeugt",
                                "def": false
                              },
                              "native": {},
                              "type": "state",
                              "_id": "0_userdata.0.Solarweb.Previous.01_Day.Vergangene_Tageswerte_abrufen",
                              "acl": {
                                "object": 1636,
                                "state": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator"
                              },
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1709374264274
                            }
                            

                            Leider weiss ich jetzt nicht, wo ich den Hebel ansetzen soll.
                            Von wo aus wird dieser Wert geschrieben?
                            Soll ich im Objekt den type manuell auf number setzen?

                            S Offline
                            S Offline
                            Strobelix
                            schrieb am zuletzt editiert von Strobelix
                            #484

                            @snopy_16
                            Fehler behoben!
                            Im ersten Beitrag ist ein neues Blockly das auch eine Optimierung der Forcastwerte enthält.

                            Wer die Änderung manuell machen möchte, muss in allen Funktionen die ein "reset" enthalten folgendes anpassen:

                            Hier am Beispiel "Tag reset":
                            Es muss am Ende des Datenpunkts noch ein ".*" hinzugefügt werden, damit nur die Werte in den Ordnern resettet werden

                            alt:

                            var ids = $('0_userdata.0.Solarweb.*.01_Day.*');
                            ids.each (function(id,i){
                            setState(id, 0, true)
                            })
                            

                            neu:

                            var ids = $('0_userdata.0.Solarweb.*.01_Day.*.*');
                            ids.each (function(id,i){
                            setState(id, 0, true)
                            })
                            

                            Raspberrymatic, Homematic & Homematic IP Aktoren, ioBroker auf NUC i3, Nuki, Harmony Hub, Digitalstrom, Diverse Sonoff (Tasmota) und Shellies

                            S 1 Antwort Letzte Antwort
                            3
                            • S Strobelix

                              @snopy_16
                              Fehler behoben!
                              Im ersten Beitrag ist ein neues Blockly das auch eine Optimierung der Forcastwerte enthält.

                              Wer die Änderung manuell machen möchte, muss in allen Funktionen die ein "reset" enthalten folgendes anpassen:

                              Hier am Beispiel "Tag reset":
                              Es muss am Ende des Datenpunkts noch ein ".*" hinzugefügt werden, damit nur die Werte in den Ordnern resettet werden

                              alt:

                              var ids = $('0_userdata.0.Solarweb.*.01_Day.*');
                              ids.each (function(id,i){
                              setState(id, 0, true)
                              })
                              

                              neu:

                              var ids = $('0_userdata.0.Solarweb.*.01_Day.*.*');
                              ids.each (function(id,i){
                              setState(id, 0, true)
                              })
                              
                              S Offline
                              S Offline
                              Snopy_16
                              schrieb am zuletzt editiert von
                              #485

                              @strobelix
                              Herzlichen Dank - funktioniert :+1: :blush:

                              Man kann nicht alle Probleme lösen, aber wenigstens verursachen.

                              LenovoThinkCentre M900 Tiny | i5-T6500 | 16 GB | 256 SSD
                              iobroker auf Proxmox VM
                              Node.js: v22.18.0 - NPM: 10.9.3 - js-controller: 7.0.6 - admin: v7.7.2
                              FritzBox-7530TX hinter Glasfasermodem, WiFi mit Unifi

                              1 Antwort Letzte Antwort
                              0
                              • Domi ThD Offline
                                Domi ThD Offline
                                Domi Th
                                schrieb am zuletzt editiert von Homoran
                                #486

                                Hallo,
                                danke für das Skript, nutze es schon sehr lange!

                                Ich bekomme hin und wieder folgende beiden Fehlermeldungen oft bei mehreren Abfragen hintereinander.
                                Heute zum Beispiel bei den Abfragen zwischen 13:30 und 15:30.

                                Request error: Error: getaddrinfo ENOTFOUND swqapi.solarweb.com
                                Error in request callback: SyntaxError: Unexpected token u in JSON at position 0
                                

                                MOD-EDIT: Code in code-tags gesetzt!

                                S 1 Antwort Letzte Antwort
                                0
                                • Domi ThD Domi Th

                                  Hallo,
                                  danke für das Skript, nutze es schon sehr lange!

                                  Ich bekomme hin und wieder folgende beiden Fehlermeldungen oft bei mehreren Abfragen hintereinander.
                                  Heute zum Beispiel bei den Abfragen zwischen 13:30 und 15:30.

                                  Request error: Error: getaddrinfo ENOTFOUND swqapi.solarweb.com
                                  Error in request callback: SyntaxError: Unexpected token u in JSON at position 0
                                  

                                  MOD-EDIT: Code in code-tags gesetzt!

                                  S Offline
                                  S Offline
                                  Strobelix
                                  schrieb am zuletzt editiert von
                                  #487

                                  @domi-th said in Daten aus Fronius Solarweb auslesen:

                                  getaddrinfo ENOTFOUND sw

                                  das kommt immer, wenn der Solarwebserver nicht (rechtzeitig) antwortet. Kannst du aber ignorieren

                                  Raspberrymatic, Homematic & Homematic IP Aktoren, ioBroker auf NUC i3, Nuki, Harmony Hub, Digitalstrom, Diverse Sonoff (Tasmota) und Shellies

                                  1 Antwort Letzte Antwort
                                  0
                                  • P Offline
                                    P Offline
                                    puckthefly
                                    schrieb am zuletzt editiert von
                                    #488

                                    Hallo, ich habe das Script installiert aber irgendwie stimmen die Tageswerte nicht.

                                    zB im Moment bekomme ich über die App
                                    Produktion 35,15 kWh

                                    In den Datenpunkten des Scripts:
                                    EnergyProductionTotal 0

                                    Das geht auch über mehrere Tags so und ich habe keine Ahnung was ich falsch mache...

                                    1 Antwort Letzte Antwort
                                    0
                                    • P Offline
                                      P Offline
                                      puckthefly
                                      schrieb am zuletzt editiert von puckthefly
                                      #489

                                      @puckthefly Ich habs nochmal deinstalliert und neu installiert, zum x.mal und jetzt scheint es zu funktionieren. Keine Ahnung warum das so ist...

                                      Im Log bekomme ich allerdings diese Meldung:
                                      javascript.0
                                      2024-05-04 16:05:06.009 warn script.js.Eigene_Gruppe.Solarweb: request package is deprecated - please use httpGet (or a stable lib like axios) instead!

                                      Muss ich etwas machen oder kann ich das ignorieren?

                                      1 Antwort Letzte Antwort
                                      0
                                      • A Offline
                                        A Offline
                                        Andi.T 0
                                        schrieb am zuletzt editiert von
                                        #490

                                        Hallo, nach dem Update des javascript Adapters auf Version 8.1.1 erscheint in den Protokollen eine Warning:

                                        script.js.common.Energie.Solarweb_Abfrage: request package is deprecated - please use httpGet (or a stable lib like axios) instead!

                                        Wie kann ich das beheben bzw. abstellen?

                                        Grüsse Andi

                                        Thomas BraunT S 2 Antworten Letzte Antwort
                                        0
                                        • A Andi.T 0

                                          Hallo, nach dem Update des javascript Adapters auf Version 8.1.1 erscheint in den Protokollen eine Warning:

                                          script.js.common.Energie.Solarweb_Abfrage: request package is deprecated - please use httpGet (or a stable lib like axios) instead!

                                          Wie kann ich das beheben bzw. abstellen?

                                          Grüsse Andi

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

                                          @andi-t-0 sagte in Daten aus Fronius Solarweb auslesen:

                                          Wie kann ich das beheben bzw. abstellen?

                                          Indem du die Dependency 'request' aus dem AdapterCode heraus operierst und duch z. B. axios ersetzt. Wäre aber eher ein Thema für den Adapter-Maintainer.

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          825

                                          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