Hauptmenü

Auslesen Solaranlage

Begonnen von hotzi, 29 März 2013, 15:12:21

Vorheriges Thema - Nächstes Thema

hotzi

Hallo,

mir ist es zumindest schon einmal gelungen die Werte der Solaranlage (Sunways NT 4200) aus dem Sunways Solar Inverter über curl auszulesen. Der folgende Aufruf:

curl --digest -u customer:******** "http://192.168.2.90/data/ajax.txt?CAN=1&HASH=00200403&TYPE=1"

(curl --digest -u user:password "URL")

liefert mir die Daten in dieser Form zurück:

518 W;502 W;0.5 kVA;0.0 kvar;556.0;220.5;0.9;2.3;518.0;502.0;---;---;1.00 ;2.05;354.2;526.3;555.1;132;0;0;NT 4200;0

Dabei handelt es sich um die aktuellen Werte, die auch im Webfrontend angezeigt werden. Wer ebenfalls über einen Sunways Inverter mit integriertem Webserver verfügt, muss sich lediglich einmal über den Browser anmelden und die Funktion Extras - Webentwickler - Webconsole aktivieren. Jetzt einmal über den Browser anmelden. Danach kann man sich die URL aus der unteren Konsole einfach in den curl Aufruf kopieren.

Funktioniert hat es übrigens nur mit curl, wget z.B. unterstützt keine "RFC 2617 Digest Access Authentication".

Jetzt würde ich hierzu gerne ein Modul erstellen. Hätte jemand einen Vorschlag, an welchem bestehenden Modul ich mich bei der Implementierung orientieren könnte?

Danke für eure Hilfe

Rohan

Hallo hotzi,

kann es sein, dass es so etwas (ähnliches) schon gibt?

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

hotzi

Hallo Thomas,

der Ansatz ist zwar ein anderer, da ich in meinem Fall um die Anschaffung der zusätzlichen Hardware herumkomme und auch keine weitere Kabelverbindung benötige, aber du hast natürlich recht. Letztlich müsste ich ja lediglich die Datenquelle in dem Modul anpassen, alles weitere könnte ja so bleiben.

Viele Grüße und Danke für den Hinweis

lechez

Hallo hotzi,
habe ein At4500 von Sunways.

Habe es auch geschafft meinen auszulesen.
String:
0 W;0 W;0 VA;0 var;0.90;233.10;0.00;0.00;0;0;---;---;0.00 c;0.00;21.16;542.05;1484.71;8;0;0;AT 4500;1;x00100403;01;00000001;

Hast du schon was geschrieben um es darzustellen?

Gruß
lechez

lechez

Hallo,

habe es jetzt selber herausgefunden.
Habe mich jetzt in gplot eingelesen und bekomme jetzt meine Darstellung.




hotzi

Hallo,

sorry das ich mich nicht schneller gemeldet hatte. Ich bin zeitlich noch nicht viel weiter gekommen. Bis jetzt hatte ich mir nur ein kleines Perl-Script geschrieben, dass die Daten in die DB überträgt. Damit sind sie sozusagen erst einmal gesichert.

Der Plot sieht super aus. Hier wird in einer Geschwindigkeit umgesetzt, da kommt ein dreifacher Familienvater einfach nicht mit. :-)

lechez

Zitat von: hotzi schrieb am Sa, 06 April 2013 21:33Hallo,

sorry das ich mich nicht schneller gemeldet hatte. Ich bin zeitlich noch nicht viel weiter gekommen. Bis jetzt hatte ich mir nur ein kleines Perl-Script geschrieben, dass die Daten in die DB überträgt. Damit sind sie sozusagen erst einmal gesichert.

Der Plot sieht super aus. Hier wird in einer Geschwindigkeit umgesetzt, da kommt ein dreifacher Familienvater einfach nicht mit. :-)

Hallo Hotzi,

kann ich verstehen, habe noch keine Kinder, aber bei der ganzen bastellei beleiben die Hausprojekte auch auf der Strecke. Ich wollte nur mein Eigenverbrauch erhöhen. Jetzt weiss ich welche Verbraucher ich wann schalten kann. Ich schreibe die Daten auch nur in ein Log nicht in einer DB. Ja ich muss es noch einwenig verfeinern. Jetzt mach ich aber erstmal die Aussenanlagen, Nachbar macht Druck.

Gruß
le Chez

olindner

Hallo, suche nach einem Script, um meinen Piko (Kostal) auszulesen. Habe versucht hier im Forum fündig zu werden ... Bin leider aber noch nicht so fit.

Ich möchte die aktuellen Werte in einem Log speichern und dann auch gern anzeigen! Den Piko kann man per HTTP ansprechen, dort muss ich dann die Werte mir zusammensuchen. Soweit so gut ... Wie spreche ich das Modul an? Muss ich ein eigenes Modul dafür schreiben, oder kann ich dies auch in 99_myUtils.pm ablegen.

viele Grüße
Olaf


## Piko auslesen
...
use WWW::Mechanize;
sub
pikopv
{
my $url = "http://192.168.178.36/";
my $digest_user = "xxx";
my $digest_password="xxx";

my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech->credentials($digest_user, $digest_password);
$mech->add_header( 'X-REQUESTED-AUTH' => 'Digest' );
$mech->get($url);
my $response = $mech->response();
printf $response->content();
}

justme1968

schau mal hier: Link. das und zwei beiträge weiter unten geht natürlich nicht nur mit wetter daten sondern mit allem möglichen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

matzefisi

Hi Olaf,

falls Du noch nach einer Lösung für den Kostal PIKO suchst:
Link

Hab mein Modul fertig.

MfG
Matthias

danni-k

Hallo zusammen,

und noch schöne Rest-Weihnachten.

Bin grad dabei meine PV-Anlage in FHEM zu integrieren.
Sind beides Sunways AT (1x 5000er & 1x2700er).

Per curl bekomme ich die Werte übers Netzwerk.

Allerdings hapert es etwas am Einlesen in FHEM respektive dem Logging/Plotten der Werte.

Kann mir hier jemand helfen bzw. die Module zukommen lassen ?

Schöne Grüße,
   danni-k

Franz Tenbrock

Hallo
ich lese mit einem EM1000WZ die Daten problemlos aus,
Plots etc bekommt man da prima hin dank des gutem FHEM Moduls
Als Bausatz sind die Em1000 auch sehr günstig
nur mal so als alternativer Vorschlag
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

danni-k

Danke,

die EM1000WZ hatte ich mir auch schon angesehen.
Da ich den Wechselrichter aber eh schon an Netz habe, wäre es mir lieber, die Daten direkt auszulesen.
Dann hab ich auch die Momentanwerte etc.

Aber eventuell kommt das Teil trotzdem mit ran, damit ich meinen Stromverbrauch am anderen Zähler erfassen kann ;-)

danni-k

#13
Hallo zusammen,

hab's inzwischen hinbekommen und kann meine Solarinverter Sunways AT5000 (und AT2700) in FHEM mitloggen.

Ich hänge mal mein Modul an und einen Plot, falls es wer brauchen kann.

Hier der Aufruf im fhem.cfg:
# PV-Anlage
define myAT5000 AT5000 http://192.168.1.201/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5 USER PASSWORD 300
attr myAT5000 delay 300
define FileLog_myAT5000 FileLog ./log/myAT5000-%Y.log myAT5000
attr FileLog_myAT5000 logtype at5000,text
attr FileLog_myAT5000 room logs
define SVG_FileLog_myAT5000_1 SVG FileLog_myAT5000:SVG_FileLog_myAT5000_1:CURRENT
attr SVG_FileLog_myAT5000_1 label "PV akt $data{currval1} kW, Max $data{max1} kW, Tag $data{currval2} kWh, Monat $data{currval3} kWh"
attr SVG_FileLog_myAT5000_1 room Plots


Evtl. mag ja jemand auch einiges dran verbessern am Coding ;)


JayAhr

Hi Danny-K!
Habe deinen sehr interessanten Artikel im fhem-Forum gefunden und - da ich ebenfalls 2 Sunways WR (NT4200 und NT10000) besitze - direkt mal testen wollen, ob das bei mir nicht auch funzt.
Der direkte Aufruf im Browser funktioniert auch einwandfrei:
2169 W;2106 W;2.1 kVA;0.0 kvar;450.1;449.1;447.4;234.0;233.5;232.5;1.6;1.6;1.6;3.0;3.0;3.0;728.0;723.0;718.0;707.0;701.0;698.0;---;---;1.00 ;1.00 ;1.00 ;0.69;0.67;0.68;52.4;44.5;16.9;107.6;96.0;67.3;10858.8;10795.2;10716.9;132;132;132;0;0;NT 10000 x 00200403;01;00000001
Nur beim Versuch, deine 20_AT5000.pm zu integrieren, bekomme ich folgende Fehlermeldungen:
Can't locate WWW/Mechanize.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /opt/fhem/FHEM) at /opt/fhem/FHEM/myUtilsTemplate.pm line 38. BEGIN failed--compilation aborted at /opt/fhem/FHEM/myUtilsTemplate.pm line 38.

Ich finde auch kein Verzeichnis WWW, sondern nur www, aber auch dort ist keine Datei Mechanize.pm zu finden...
Was übersehe ich?
JayAhr

P.S.: Meine Konfig: fhem 5.6 auf raspberry