Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Deye Solar Sun600 Auslese-JavaScript

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Deye Solar Sun600 Auslese-JavaScript

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

      @mpf Steht doch in der Beschreibung. Der Folder ist ein Ort wo die Daten abgelgt werden. Kannst Du ablegen wo die willst unter userdata Was nach Userdata0. kommt ist frei wählbar. Kannst statt Solar auch Mettwurst dort eintragen. Würde ich aber nicht machen verwirrt ja hinterher nur 🙂 Also Verzeichnis Deiner Wahl. Solar_Online_Var ist das Objekt in ioBroker was signalisiert das die Anlage ereichbar ist. Ich habe z. B. nicht den Radar_2_Adapter sondern nutze einfach nur den Pinkg Adapter. Das heißt bei mir ist der Datenpunkt unter den Objekten unter Ping zu finden… Du könntest aber auch einfach den passenden Adapter installieren. Der liefert etwas mehr Daten. Die Script Variante hat halt andere Vorteile… Die Frage ist was Du willst

      M 1 Reply Last reply Reply Quote 0
      • M
        MPF @cash last edited by

        @cash ok,danke.
        Den Radar_2_Adapter konnte ich gar installieren, warum auch immer ?

        cash 1 Reply Last reply Reply Quote 0
        • cash
          cash Most Active @MPF last edited by

          @mpf wie gesagt den Adapter brauchst Du nicht unbedingt. Du brauchst nur einen Datenpunkt der true oder false anzeigt jenachdem ob die Anlage ereichbar ist. Man könnte auch einen eigenen Datenpunkt dafür anlegen und das ebenfalls per JavaScript abfragen z. B. per Axios ob die gewünschte Adresse etwas passendes zurückgibt. Alternatic das Script nur ausführen lassen wenn der Wechselrichter sicher läuft. Bei mir ist der Wechselrichter derzeit min. von 9:00 - 16:00 erreichbar. Je nach Helligkeit aber auch schon um kurz vor 8 bis 17:30. Viele Wege führen hier nach Rom

          1 Reply Last reply Reply Quote 0
          • E
            EREX @ACHIM BAECKER last edited by

            @achim-baecker Vielen Dank für Deine Mühe. Lese damit meinen DEYE SUN800W aus.
            Funktioniert einwandfrei.

            1 Reply Last reply Reply Quote 0
            • M
              meexx last edited by

              Hi,

              ich habe mal eine Frage zu dem "SolarOnlineVar" Datenpunkt. Braucht der als Wert 0 bzw 1 .... oder true oder false ? ich habe den Ping Adapter ohnehin schon installiert und dort auch den Wert, der ist aber nur true bzw false. Wenn das reicht dann kann ich diesen ja benutzen rein theoretisch. Brauche ich aber als Wert 0 bzw 1 dann würde ich halt noch mit einem BlocklyScript einen Datenpunkt mit 0 oder 1 erstellen .

              Ich bin noch blutiger Anfänger, darum verzeiht mit die Frage, im übrigen werte ich einen Wechselrichter von Sofar-Solar damit aus, im Moment noch ohne Abfrage ob er online ist oder nicht, würde das aber gerne auch automatisieren.

              MfG Ralf

              1 Reply Last reply Reply Quote 0
              • M
                meexx last edited by meexx

                Hallo nochmal,

                habe es inzwischen laufen, nur die Werte passen nicht so richtig..... kann man in dem Script irgendwie die nachkommastellen festlegen ? bekomme da nicht die plausiblen Werte. Im Beispiel zusehen ist das der Wert 6,99 der dann auf 7 bzw 7,1 springt, der sollte aber laut Weboberfläche dann 7,00 bzw 7,01 sein und nicht 7,1 weil dann weiter oben die Werte ja nicht mehr zusammen passen ? gibt es da eventuell eine kleine Lösung für ? weil so spielt dann Grafana nicht ganz mit. Im übrigen gebrauche ich das Script für einen Data Logger von SofarSolar Wechselrichter, Cool wäre auch noch das der Wert um 23:59 Uhr wieder auf 0,00 Gesetz wird oder wenn der Logger Offline ist dann setze Wert auf 0,00 . Leider stecke ich nicht so drin bei Java .

                java_zahlenwerte.JPG

                besten Dank für die Mühe Gruß Ralf ......

                T 1 Reply Last reply Reply Quote 0
                • F
                  Flying-Bolt @ACHIM BAECKER last edited by

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

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    Flying-Bolt @Flying-Bolt last edited by 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 1 Reply Last reply Reply Quote 0
                    • T
                      truderinger @meexx last edited by truderinger

                      Hallo,

                      ich wende mich mal an einen erfolgreichen user hier.

                      Ich habe im ioBroker das JS-Script angelegt und die Punkte

                      var SolarFolder = "0_userdata.0.Solar";
                      var SolarOnlineVar = "radar2.0.Solar._here";
                      var SolarUrl = "http://admin:admin@192.168.1.87/status.html";

                      entsprechend angepasst. Das script neu gestartet und ca. 30 min. gewartet. Keiner der neu angelegten Datapoints wurde befüllt. Der Deye Sun800 ist auch in Betrieb. Ich bin jedoch auch mit solarman-business verbunden. Gibt es hier noch etwas zu beachten?

                      Danke an den Ersteller und an die Gehilfen.

                      Ergänzung: nach 40 Min habe ich jetzt jeweils eine "0" stehen und zwar bei
                      webdata_now_p
                      _today_e
                      _total_e

                      Aber warum "0" wenn die Solarman-App und mit der "status.html" rund 70 Watt angezeigt hat.

                      Herbert

                      1 Reply Last reply Reply Quote 0
                      • K
                        kiste01 last edited by

                        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

                        Tobi Ro Z 2 Replies Last reply Reply Quote 0
                        • Tobi Ro
                          Tobi Ro @kiste01 last edited by

                          @kiste01
                          Ich habe den gleichen Wechselrichter und kann das Skript problemlos nutzen.
                          Hattest du die IP in radar2 eingetragen und die ID vom Wechselrichter im Skript geändert?

                          1 Reply Last reply Reply Quote 0
                          • Z
                            znyde @kiste01 last edited by

                            @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 Reply Last reply Reply Quote 0
                            • D
                              Dubaischeich @Flying-Bolt last edited by

                              @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 Reply Last reply Reply Quote 0
                              • K
                                kiste01 @znyde last edited by

                                @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 Reply Last reply Reply Quote 0
                                • O
                                  opöl @Dubaischeich last edited by

                                  @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 Reply Last reply Reply Quote 1
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  776
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  14
                                  24
                                  10807
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo