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. Skripten / Logik
  4. JavaScript
  5. Deye Solar Sun600 Auslese-JavaScript

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

Deye Solar Sun600 Auslese-JavaScript

Geplant Angeheftet Gesperrt Verschoben JavaScript
24 Beiträge 14 Kommentatoren 12.4k Aufrufe 15 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.
  • K kiste01

    Hallo,

    ich habe einen SUN-M80G3-EU-230 und möchte die Daten lokal auslesen. Die web ui sieht sehr ähnlich wie die vom Sun600 aus. Kann jemand diesen WR über das script auslesen? Ich bekomme auch nur die drei Nullen wie @truderinger

    Grüße

    Z Offline
    Z Offline
    znyde
    schrieb am zuletzt editiert von
    #21

    @kiste01
    lösche den Ordner und ändere mal die Datenpunkterstellung mit folgendem Code. Danach hat´s bei mir funktioniert

     
    function CreateDatapoints(myFolder){
        // Datenpunkte anlegen, muss nur einmalig aufgerufen werden
         createState(myFolder + '.' + 'cover_ap_ip', '');
         createState(myFolder + '.' + 'cover_ap_mac', '');
         createState(myFolder + '.' + 'cover_ap_ssid', '');
         createState(myFolder + '.' + 'cover_mid', '');
         createState(myFolder + '.' + 'cover_sta_ip', '');
         createState(myFolder + '.' + 'cover_sta_mac', '');
         createState(myFolder + '.' + 'cover_sta_rssi', '');
         createState(myFolder + '.' + 'cover_sta_ssid', '');
         createState(myFolder + '.' + 'cover_ver', '');
         createState(myFolder + '.' + 'cover_wmode', '');
         createState(myFolder + '.' + 'status_a', '');
         createState(myFolder + '.' + 'status_b', '');
         createState(myFolder + '.' + 'status_c', '');
         createState(myFolder + '.' + 'webdata_alarm', '');
         createState(myFolder + '.' + 'webdata_msvn', '');
         createState(myFolder + '.' + 'webdata_now_p', 0);
         createState(myFolder + '.' + 'webdata_pv_type', '');
         createState(myFolder + '.' + 'webdata_rate_p', '');
         createState(myFolder + '.' + 'webdata_sn', '');
         createState(myFolder + '.' + 'webdata_ssvn', '');
         createState(myFolder + '.' + 'webdata_today_e', 0);
         createState(myFolder + '.' + 'webdata_total_e', 0);
         createState(myFolder + '.' + 'webdata_utime', '');
     
         }
     
    
    K 1 Antwort Letzte Antwort
    0
    • F Flying-Bolt

      @flying-bolt said in Deye Solar Sun600 Auslese-JavaScript:

      @achim-baecker

      Bei mir sieht die Status.HTML anders aus.
      5852bdb7-2281-4578-9196-c153835607e5-image.png

      Was muss ich für meine HTML Seite anpassen?

      ich bin schon mal selber einen Schritt weiter. Der http.get bekommt nicht die komplette Seite sondern nur den statischen HTML Teil.
      Der Teil der durch das JAVA Script erzeugt wird, also den Datenteil, der fehlt.

      Ich habe diese Consolenausgabe eingefügt:

      res.on('end', function () {
      console.log(str);

      Den Ausgabestring habe ich dann rauskopiert und ihn dann als HTML-Datei gespeichert und im Browser anzeigen lassen.

      05b2328f-c0ce-4720-9e38-cb245f6825ef-image.png

      D Offline
      D Offline
      Dubaischeich
      schrieb am zuletzt editiert von
      #22

      @flying-bolt Sieht mir aus als würdest du die index.html laden und nicht die status.html. Bisschen komisch gemacht das Ganze aber mit F12 drücken im Chrome kannst du in den Tools unter "Netzwerk" sehen welche Unterseiten angefragt werden falls die nicht status.html heißen solle.

      O 1 Antwort Letzte Antwort
      0
      • Z znyde

        @kiste01
        lösche den Ordner und ändere mal die Datenpunkterstellung mit folgendem Code. Danach hat´s bei mir funktioniert

         
        function CreateDatapoints(myFolder){
            // Datenpunkte anlegen, muss nur einmalig aufgerufen werden
             createState(myFolder + '.' + 'cover_ap_ip', '');
             createState(myFolder + '.' + 'cover_ap_mac', '');
             createState(myFolder + '.' + 'cover_ap_ssid', '');
             createState(myFolder + '.' + 'cover_mid', '');
             createState(myFolder + '.' + 'cover_sta_ip', '');
             createState(myFolder + '.' + 'cover_sta_mac', '');
             createState(myFolder + '.' + 'cover_sta_rssi', '');
             createState(myFolder + '.' + 'cover_sta_ssid', '');
             createState(myFolder + '.' + 'cover_ver', '');
             createState(myFolder + '.' + 'cover_wmode', '');
             createState(myFolder + '.' + 'status_a', '');
             createState(myFolder + '.' + 'status_b', '');
             createState(myFolder + '.' + 'status_c', '');
             createState(myFolder + '.' + 'webdata_alarm', '');
             createState(myFolder + '.' + 'webdata_msvn', '');
             createState(myFolder + '.' + 'webdata_now_p', 0);
             createState(myFolder + '.' + 'webdata_pv_type', '');
             createState(myFolder + '.' + 'webdata_rate_p', '');
             createState(myFolder + '.' + 'webdata_sn', '');
             createState(myFolder + '.' + 'webdata_ssvn', '');
             createState(myFolder + '.' + 'webdata_today_e', 0);
             createState(myFolder + '.' + 'webdata_total_e', 0);
             createState(myFolder + '.' + 'webdata_utime', '');
         
             }
         
        
        K Offline
        K Offline
        kiste01
        schrieb am zuletzt editiert von
        #23

        @znyde und @Tobi-Ro

        Danke... Jetzt läuft es. Bei jeder Änderung muss man auf das 5 Minuten-Intervall achten, deswegen ist Geduld gefragt.

        Den online-Status frage ich über einen DP unifi.0.default.clients.xx ab, hat aber das gleiche Ergebnis.

        1 Antwort Letzte Antwort
        0
        • D Dubaischeich

          @flying-bolt Sieht mir aus als würdest du die index.html laden und nicht die status.html. Bisschen komisch gemacht das Ganze aber mit F12 drücken im Chrome kannst du in den Tools unter "Netzwerk" sehen welche Unterseiten angefragt werden falls die nicht status.html heißen solle.

          O Offline
          O Offline
          opöl
          schrieb am zuletzt editiert von
          #24

          @ACHIM-BAECKER ,

          auch ich nutze Dein Script gerne und erfolgreich, um von der Cloud unabhängig zu sein.
          Leider gibt es da noch den kleinen Schönheitsfehler, dass in dem Moment, wenn sich abends der Inverter mangels Energie abschaltet, die zuletzt gemeldete Leistung weiterhin ansteht. Der Inverter setzt die Leistung nicht als "Letzte Amtshandlung" vor dem schlafen gehen auf "0". Letztlich macht das den Kohl nicht fett, mich stört es aber, wenn nachts eine Leistung von 2 W - 5W angezeigt wird.

          Daher habe ich mir erlaubt, Dein Script wie folgt zu modifizieren:

          schedule('*/5 5-22 * * *', GetData); // zwischen 5-22Uhr alle 5min ausführen
           
          // Anfang Original 
          // function GetData(){
              // zyklisches abholen der Daten, falls Solaranlage online ist
          //    var SolarIsOnline = getState(SolarOnlineVar).val;
          //    if (SolarIsOnline) {
          //        getWebsite();
          //    }
          //}
           // Ende Original
          
          // Anfang Erweiterung, um "0" auszugeben, wenn der Inverter nicht erreichbar ist
          
          function GetData(){
              // zyklisches abholen der Daten, falls Solaranlage online ist
              var SolarIsOnline = getState(SolarOnlineVar).val;
              if (SolarIsOnline) {
                  getWebsite();
              }
              else {
                	setState("0_userdata.0.Solar.webdata_now_p", 0);
             }
          

          Die "setState" Anweisung setzt die Leistung auf "0", wenn der Inverter nicht erreichbar ist.

          Es gibt sicher elegantere Lösungen um das zu realisieren, aber für mich funktioniert es.

          Gruß

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


          Support us

          ioBroker
          Community Adapters
          Donate

          1.0k

          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