Ankündigung

Einklappen
Keine Ankündigung bisher.

Solarlog 500PM+ aktuelle Werte auf den Bus / ins rrd schreiben

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Für alle die es interessiert, hier gibt es eine umfangreiche Übersicht der diversen JavaScript Ausgaben inkl. Beschreibung des Datenformats: solarlog_datenformat - Photonensammlers Wiki
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #17
      Dort ist übrigens auch in der base_vars.js eine Variable isOnline beschrieben, die den Status des WR angibt. Vielleicht lässt sich damit das Problem mit dem aufhängen umgehen, indem man abends sobald isOnline false ist einfach nicht mehr zum SL connected sondern erst morgens wieder.
      Mit freundlichen Grüßen
      Niko Will

      Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
      - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

      Kommentar


        #18
        Zitat von 2ndsky Beitrag anzeigen
        Dort ist übrigens auch in der base_vars.js eine Variable isOnline beschrieben, die den Status des WR angibt. Vielleicht lässt sich damit das Problem mit dem aufhängen umgehen, indem man abends sobald isOnline false ist einfach nicht mehr zum SL connected sondern erst morgens wieder.
        Das hab ich so probiert und ist in meinem Plugin auch drin (ich habs hier gepostet, denke ich), aber es hilft leider beim Aufhängen trotzdem nicht. Ab irgendwann gegen 4 Uhr morgens hängt sich der Webserver auch auf, wenn man nur base_vars.js abruft...

        Gruß

        Kommentar


          #19
          Solarlog 500PM+ aktuelle Werte auf den Bus / ins rrd schreiben

          Ich meinte eigentlich wenn der WR offline ist, dann bis morgens mit der Abfrage aussetzen
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #20
            Ich kann nicht jedes Plugin (das ist übrigens glaube ich nicht im SVN! -> bitte nachholen) - mangels HW - testen..
            Aber das sollte sich ja mit den Infos von 2ndsky machen lassen oder?
            Natürlich sind diese Teile teils total "banane", kenn da welche wo ein WinCE aus dem letzten Jahrtausend drauf läuft, da hatte sich bei MS noch nichtmal die Einsicht durchgesetzt das TCP/IP, nicht Netbeui der Sieger ist

            -> Da sollte man echt an den Hersteller gehen - oder eben einen Workaround finden, ich meine die Uhrzeit und viele andere Parameter hat man im Plugin ja zur Verfügung..

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #21
              Hallo,
              ich bin grad auf der Suche nach einer Lösung um meine PV-Strom-Werte auf den Bus zu bringen. Dabei bin ich dieses Plugin hier gestoßen. Hab es aber im SVN nicht gefunden (Open Automation / Code / [r2213] /wiregate/plugin/generic) Ist dieser Link korrekt?

              Ist die Version hier im Thread die aktuelle Version?

              Gruß
              Stefan

              Kommentar


                #22
                Hallo,

                die aktuellste Version ist diese:

                Code:
                ######## Zum Auslesen der Solarlog Daten, speichern als rrd und senden auf den Bus########
                # Vorraussetzung ist, dass die Daten des Solarlog per Cronjob ins Temp Verzeichniss ######
                # gespeichert werden. Siehe Beispiel:                                               ######
                # für die aktuelle Leistung: curl 192.168.178.xx/min_cur.js > /tmp/min_cur.js       ######
                # wobei die IP Nummer für die Adresse des SL im lokalen LAN angepasst werden muss   ######
                # Monat: curl ftp://SL-WEB-ADRESS@home6.solarlog-web.de/months.js > /tmp/months.js       #
                # Jahr: curl ftp://SL-WEB-ADRESS@home6.solarlog-web.de/years.js > /tmp/years.js          #
                # Days: curl ftp://SL-WEB-ADRESS@home6.solarlog-web.de/days.js > /tmp/days.js            #
                # Das SL-WEB-ADRESS wird durch die Webadresse des Solarlogs ersetzt (könnte man auch     #
                # direkt holen, mein SL stürzt aber dabei in der Nacht ab                                #
                ##########################################################################################
                
                # Das Script bezieht sich auf 2 Wechselrichter, für mehrere müsste eine anpassung vorgenommen werden
                $plugin_info{$plugname.'_cycle'} = 60;
                
                my $WR1; my $WR2;
                my $aktuelle_leistung =  `cat /tmp/min_cur.js | grep Pac | sed -e "s/var Pac=//g"`;
                
                ## GA Definition ##
                my $wr1_summe_ga = '14/1/2'; #kwh
                my $wr2_summe_ga = '14/1/3'; #kwh
                my $wr_gesamt_summe_ga = '14/1/4'; #kwh
                
                my $ertrag_tag_ga ='14/1/1';
                
                my $month_summary_ga = '14/1/5';
                
                my $month_ertrag_ga = '14/1/6';
                my $year_summary_ga = '14/1/7';
                my $year_ertrag_ga = '14/1/8';
                my $aktuelle_leistungGA = '14/1/9';
                ## GA fertig ##
                
                my $verguetung = "0.195"; # Verguetung in Euro
                my $ertrag_tag;
                my $date; 
                my $wr1; 
                my $wr2; 
                my $sum1; 
                my $sum2; 
                my $sum; 
                my $max1; 
                my $max2; 
                my $max;
                my $month1;
                my $month2;
                my $month_all;
                my $year1;
                my $year2;
                my $year_all;
                
                # system ( 'curl 192.168.178.26/days.js > /tmp/days.js' );
                
                open(DAT,'</tmp/days.js') or die "couldnt open file";
                while (<DAT>) {
                    chomp;
                    ($date, $wr1, $wr2) = split(/\|/);
                    ($sum1, $max1) = split(/\;/, $wr1);
                    ($sum2, $max2) = split(/\;/, $wr2);
                ($sum1, $sum2, $max2) =~ s/[^0-9]//;
                }
                close(DAT);
                open (MONTH,'/tmp/months.js') or die $!;
                my $line;
                while (<MONTH>) {
                #    chomp
                chomp;
                
                my $line = '';
                if ($. == 1){
                $line = $_;
                
                    ($date, $month1, $month2) = split (/\|/);
                    ($month1, $month2) =~ s/[^0-9]//;
                last;
                }
                
                     }
                close (MONTH);
                
                open (YEAR,'/tmp/years.js') or die "couldnt open year";
                while (<YEAR>) {
                  chomp;
                  my $line = '';
                if ($. == 1){
                $line = $_;
                    ($date, $year1, $year2) = split (/\|/);
                    ($year1, $year2) =~ s/[^0-9]//;
                     }}
                close (YEAR);
                
                
                my $max21 = int($max2);
                my $summary1 = (int($sum1))/1000;
                my $summary2 = (int($sum2))/1000;
                my $summary = ($summary1 + $summary2);
                
                my $max_gesamt = $max21 + $max1;
                my $leistung = int($aktuelle_leistung);
                
                update_rrd("Aktuelle_Leistung","",$leistung);
                
                knx_write($aktuelle_leistungGA, $leistung,9);
                if ($max_gesamt ne 0){
                update_rrd("WR_gesamt_max","",$max_gesamt);
                }
                if ($summary2 ne 0){
                update_rrd("WR2_Summe","",$summary2);
                }
                knx_write($wr2_summe_ga, $summary2,9);
                
                if ($summary1 ne 0){
                update_rrd("WR1_Summe","",$summary1);
                }
                knx_write($wr1_summe_ga,$summary1,9);
                
                if ($summary ne 0){
                update_rrd("WR_gesamt","",$summary);
                }
                knx_write($wr_gesamt_summe_ga, $summary,9);
                
                if ($max1 ne 0){
                update_rrd("WR1_max","",$max1);
                }
                if ($max21 ne 0){
                update_rrd("WR2_max","",$max21);
                }
                my $ertrag_tag = ($summary * $verguetung);
                knx_write($ertrag_tag_ga,$ertrag_tag,9);
                
                my $month_summary = int($month1) + int($month2);
                my $month_summary1 = $month_summary/1000;
                if ($month_summary1 ne 0){
                update_rrd("Monat_Summe","",$month_summary1);
                }
                my $month_summary_ertrag = ($month_summary1 * $verguetung);
                if ($month_summary_ertrag ne 0){
                update_rrd("Monat_Summe_Euro","",$month_summary_ertrag);
                }
                knx_write($month_ertrag_ga,$month_summary_ertrag,9);
                
                
                my $year_summary = int($year1) + int($year2);
                my $year_summary1 = $year_summary/1000;
                if ($year_summary1 ne 0){
                update_rrd("Jahr_Summe","",$year_summary1);
                }
                my $year_summary_ertrag = $year_summary * $verguetung/1000;
                knx_write($year_ertrag_ga,$year_summary_ertrag,9);
                if ($year_summary_ertrag ne 0){
                update_rrd("Jahr_Summe_Euro","",$year_summary_ertrag);
                }
                return;
                ist definitiv nicht die schönste Variante, aber es funktioniert

                Man könnte die .js Dateien auch direkt von dem Solarlog FTP ziehen (dort wo der Solarlog diese hochlädt). War meiner Meinung nach aber mit der Kirche ums Kreuz...

                Bei Problemen einfach hier schreiben, dann kann ich helfen wo ich kann.

                Gruß

                Kommentar


                  #23
                  Guten Morgen,
                  ich hab aktuell noch Probleme die Daten vom Solarlog (200 PM+) abzuholen. Bei mir ist 192.168.178.40/min_cur.js leider leer :-(

                  Hast du zufällig eine Idee?

                  Gruß
                  Stefan

                  Kommentar


                    #24
                    Ich hab gerade gesehen, dass das die Web Version ist.
                    Das Plugin zielt also auf den solarlog FTP.
                    Bekommst du online Werte Angezeigt?

                    Kommentar


                      #25
                      Also mein Solar-Installateur hat ein eigenes Portal eingetragen: Willkommen
                      Dort kann ich im web die Werte sehen.... aber halt nur im Browser und nicht in einer verarbeitbaren Version :-( Allerdings will ich auch nicht unbedingt meine Solarsteuerung davon abhängig machen, ob ich grad Internet hab oder die Telekom mal wieder streikt... Dann ist mit fast ein html-Parser lieber...

                      Kommentar


                        #26
                        Hallo, gibt es eigentlich eine Lösunh für die aktuelle Solarlog Firmware? Es wird ja keine min_cur.js mehr bereitgestellt?
                        Elektroinstallation-Rosenberg
                        -Systemintegration-
                        Planung, Ausführung, Bauherren Unterstützung
                        http://www.knx-haus.com

                        Kommentar

                        Lädt...
                        X