FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hotzi am 29 März 2013, 15:12:21

Titel: Auslesen Solaranlage
Beitrag von: hotzi am 29 März 2013, 15:12:21
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 (//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
Titel: Aw: Auslesen Solaranlage
Beitrag von: Rohan am 29 März 2013, 22:45:28
Hallo hotzi,

kann es sein, dass es so etwas (ähnliches) (//www.fhemwiki.de/wiki/NT5000) schon gibt?

Gruß
Thomas
Titel: Aw: Auslesen Solaranlage
Beitrag von: hotzi am 30 März 2013, 08:34:49
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
Titel: Aw: Auslesen Solaranlage
Beitrag von: lechez am 02 April 2013, 09:41:21
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
Titel: Aw: Auslesen Solaranlage
Beitrag von: lechez am 05 April 2013, 00:00:57
Hallo,

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



Titel: Aw: Auslesen Solaranlage
Beitrag von: hotzi am 06 April 2013, 21:33:20
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. :-)
Titel: Aw: Auslesen Solaranlage
Beitrag von: lechez am 11 April 2013, 12:12:40
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
Titel: Aw: Auslesen Solaranlage
Beitrag von: olindner am 08 Juni 2013, 19:38:17
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();
}
Titel: Aw: Auslesen Solaranlage
Beitrag von: justme1968 am 08 Juni 2013, 19:40:26
schau mal hier: Link (http://forum.fhem.de/index.php?topic=13212.msg81271#msg81271). das und zwei beiträge weiter unten geht natürlich nicht nur mit wetter daten sondern mit allem möglichen.

gruss
  andre
Titel: Aw: Auslesen Solaranlage
Beitrag von: matzefisi am 25 Juni 2013, 19:53:04
Hi Olaf,

falls Du noch nach einer Lösung für den Kostal PIKO suchst:
Link (http://forum.fhem.de/index.php?topic=13508.0)

Hab mein Modul fertig.

MfG
Matthias
Titel: Antw:Auslesen Solaranlage
Beitrag von: danni-k am 26 Dezember 2013, 17:46:10
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
Titel: Antw:Auslesen Solaranlage
Beitrag von: Franz Tenbrock am 26 Dezember 2013, 18:22:08
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
Titel: Antw:Auslesen Solaranlage
Beitrag von: danni-k am 26 Dezember 2013, 18:34:07
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 ;-)
Titel: Antw:Auslesen Solaranlage
Beitrag von: danni-k am 31 Dezember 2013, 13:08:16
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 ;)

Titel: Antw:Auslesen Solaranlage
Beitrag von: JayAhr am 13 Februar 2015, 13:23:49
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

Titel: Antw:Auslesen Solaranlage
Beitrag von: danni-k am 13 Februar 2015, 16:47:18
Hallo JayAhr,

das ist ja verdammt lang her
Titel: Antw:Auslesen Solaranlage
Beitrag von: danni-k am 13 Februar 2015, 16:53:13
Zitat von: danni-k am 13 Februar 2015, 16:47:18
Hallo JayAhr,

das ist ja verdammt lang her

Ähem, da fehlt der Rest.
Hatte das seinerzeit auf nem Beaglebone black laufen.
Soweit ich weiss ging das nachladen von WWW::mechanize mit cpan.
Syntax musst du mal googlen.

Viel Erfolg
Titel: Antw:Auslesen Solaranlage
Beitrag von: JayAhr am 13 Februar 2015, 22:07:17
Hallo Danni-K!
Vielen Dank für die schnelle Antwort!
Und das gute Gedächtnis! ;-)
Ich mach mich dann mal auf die Suche! ;-)
JayAhr
Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 18 Juli 2020, 20:58:05
Hallo Danni-K,
ich nutze seit langem dein Modul AT5000 um meine Sunways WR auszulesen und über das Logfile als Plot anzuzeigen. Funktioniert soweit top, danke dafür. :D
Nur würde ich auch gerne mit dem Wert der aktuellen Leistung rechnen und für meine Hausautomatisierung verwenden. Leider scheitere ich daran den Wert "aktual" aus dem Logfile zu extrahieren. Ich bin leider zu wenig Programmierer (eigentlich gar nicht  :(), als dass ich mit den Tipps aus dem Forum zum Thema "Werte aus Logfile auslesen" oder "get FileLog" etwas anfangen kann.
Ich habe auch versucht anhand des 70_NT5000.pm herauszufinden, wie ich ggf. AT5000 anpassen könnte um Readings zu erhalten. Leider erfolglos  :'(

Habt ihr mir einen Tip, wie ich die aktuellen Werte als Readings in mein AT5000-Device rein bekommen?

Vielen Dank, vorab.
Grüße
Fabian
Titel: Antw:Auslesen Solaranlage
Beitrag von: ch.eick am 25 Juli 2020, 16:27:35
Hallo.
Die aktuellen Werte kannst Du doch direkt aus dem Device nehmen.


Bei DOIF z.B [device:reading] = wert
oder mit readingVal(,,device","Reading","defaultwert im Fehlerfall")


Gruß Christian
Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 30 Juli 2020, 08:55:14
Servus!

Freut mich, dass noch jemand in dem (ur)alten Thread unterwegs ist.  :-)

Das mit den Readings habe ich schon versucht. Mit
{ReadingsVal("myAT3000","aktual","123")}
bekomme ich aber immer nur 123 zurück.

Das Problem ist, dass mein AT5000-Device gar keine Readings hat. Anbei 3 Screenshots von
- AT5000-Device (myAT3000)
- FileLog Device
- ein Ausschnitt der Log-Datei
Ich hoffe das hilft euch weiter.

Mit dem "aktual" Wert würde ich gerne arbeiten.

Danke und Gruß
Fabian
Titel: Antw:Auslesen Solaranlage
Beitrag von: ch.eick am 01 August 2020, 19:47:10
Hi,
leider kenn ich das Modul nicht, aber wenn es keine readings erstellt, kann man die auch nicht auslesen.
Dann schau doch mal in das Modul, ob man da etwas im code erkennen kann.

Gibt es noch attribute, die man setzen kann? Was sagt die Dokumentation oder die commandref?

Bei mir ist gar kein at5000 Modul zu finden :-)
Titel: Antw:Auslesen Solaranlage
Beitrag von: amenomade am 01 August 2020, 20:27:29
Das Modul sollte aber doch Readings erstellen:
readingsBeginUpdate($hash);
        readingsBulkUpdate($hash,"aktual",$akt);
readingsBulkUpdate($hash,"Tagesertrag",$te);
readingsBulkUpdate($hash,"Monatsertrag",$me);
readingsBulkUpdate($hash,"Jahresertrag",$je);
readingsBulkUpdate($hash,"Gesamtertrag",$ge);
readingsEndUpdate($hash, 1);

(@ch.eick: das Modul ist höher hier (https://forum.fhem.de/index.php/topic,11972.msg120425.html#msg120425) im Thread)

Und Du hast ja entspr. Log Einträge. Ohne Events wäre es nicht möglich, wie diese FileLog definiert ist. Es sei denn, Du hast irgendein Skript, das die gleiche Datei befüllt.

Kannst Du das Ergebnis von einem "list myAT3000" posten?
Und auch in der Log schauen (mit verbose >=3)


Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 02 August 2020, 17:20:13
Ein Skript habe ich nicht. Ich habe das Device und Logfile entsprechend dem Post von danni-k (31 Dezember 2013, 13:08:16) angelegt. Quasi copy&paste, mehr nicht.

Vor 2 Wochen habe ich dann sogar nochmal das Device gelöscht, mir hier nochmal das Modul gezogen und das Device neu angelegt. Leider keine immer Readings.  :-(

Hier ein List:
Internals:
   DEF        http://192.168.188.37/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5 customer ******** 60
   FUUID      5c5dd958-f33f-3d64-5a70-789d15b828ad5d88
   Host       http://192.168.188.37/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5
   NAME       myAT3000
   NR         71
   Pass       ********
   STATE      initialized
   TYPE       AT5000
   User       customer
Attributes:
   delay      60
   icon       measure_photovoltaic_inst
   room       Energie,Technikraum
   verbose    5

recht überschaubar.

Im EventMonitor finde ich nichts von meinem AT3000, bis auf die verbose-Umstellung.
Im Logfile ist lediglich folgendes zu sehen:
2020.08.02 17:03:02 3: myAT3000: Beende nun Eltern-Prozess, bin durch
2020.08.02 17:03:03 3: myAT3000 Ich bin das Kind! Debug: Host:[http://192.168.188.37/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5]
2020.08.02 17:03:03 3: myAT3000 Beende das Kind erfolreich...
2020.08.02 17:03:19 3: myAT3000: Beende nun Eltern-Prozess, bin durch
2020.08.02 17:03:19 3: myAT3000 Ich bin das Kind! Debug: Host:[http://192.168.188.37/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5]
2020.08.02 17:03:19 3: myAT3000 Beende das Kind erfolreich...


Attribute gibt es lediglich suppressReadings, aber gerade das will ich ja nicht. CommandRef oder DeviceHelp gibt es leider nicht.
Titel: Antw:Auslesen Solaranlage
Beitrag von: amenomade am 02 August 2020, 17:43:56
Versuche mal mit der angehängten Version vom Modul. Die sollte mehr verbose 4 Ausgabe in der Log zeigen.

Ich glaube, es hängt an BlockingCall. Hier wäre mMn ein HttpUtils_NonblockingGet besser. Aber zuerst mal sehen, was deine Log ausgibt (insb. ob er wirklich in die $finishFn kommt)

EDIT: Angehängte Version gelöscht. Es gibt jetzt weiter unten im Thread eine Version mit HttpUtils_NonblockingGet
Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 02 August 2020, 19:37:14
Danke amenomade. Jetzt sieht das Logfile wiefolgt aus:
2020.08.02 19:33:03 3: myAT3000: Beende nun Eltern-Prozess, bin durch
2020.08.02 19:33:03 4: response=HTTP::Response=HASH(0x6ced370)
2020.08.02 19:33:03 4: ergebnis=master;0.23 kW;0.25 kVA;0.08 kvar;12.27 kWh;12.27 kVAh;0.01 kvarh;37.21 kWh;37.21 kVAh;0.01 kvarh;4.44 MWh;4.44 MVAh;0.00 Mvarh;49.24 MWh;49.24 MVAh;0.00 Mvarh;
1;AT 3000;0.12 kW;6.09 kWh;24.52 MWh;0055A1400667;268435492;3;00100403;0
2;AT 3000;0.11 kW;6.18 kWh;24.72 MWh;0055A1400671;268435492;3;00100403;0
x
x
0;0
00100403;01;00000005


2020.08.02 19:33:03 4: aktual=0.23 kW, tag=12.27 kWh, monat=37.21 kWh, jahr=4.44 MWh, gesamt=49.24 MWh
2020.08.02 19:33:03 3: myAT3000 Ich bin das Kind! Debug: Host:[http://192.168.188.37/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5]
2020.08.02 19:33:03 3: myAT3000 Beende das Kind erfolreich...


Genau das sind die Werte die ich im Logfile habe, aber nicht als Reading.
Titel: Antw:Auslesen Solaranlage
Beitrag von: amenomade am 02 August 2020, 19:45:37
Ja, und da sieht man nur die $blockingFn. Die readingsBulkUpdate, die da gemacht werden, können keine Readings erzeugen. Irgendwie merckt das die FileLog trotzdem (ich vermute, die Events sind doch da), und deswegen hast Du keine Readings, aberdoch FileLog Einträge.

Ein Workaround wäre, ein notify zu erstellen, der auf allen Events des Devices reagiert, und entspr. ein anderes Device (z.B. ein dummy) befüllt.

Ich schaue mal, ob ich das Modul irgendwie überarbeiten kann. Das Problem: ich kann dann nicht testen, da ich keine solche Solaranlage habe...
Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 02 August 2020, 20:03:12
Zu Testen würde ich mich natürlich gerne bereitstellen. ;-) Danke schonmal vorab, solltest du dir die Mühe machen.

In der Richtung die Werte in ein Dummy o.ä. zu schreiben, hatte ich auch schon gedacht. Habe das aber mangels (FHEM-)Kenntnisse wieder verworfen, bzw. es hat nicht funktioniert. Evtl. versuche ich es in der Zwischenzeit mal den Weg über ein notify, wie du es schreibst.

Titel: Antw:Auslesen Solaranlage
Beitrag von: amenomade am 02 August 2020, 21:02:53
Wenn Du testen willst... siehe anbei ;)

HttpUtils_NonBlockingGet mit digest Auth habe ich noch nie gemacht. Es kann sein, dass es nicht sofort funktioniert. Bitte um Geduld :)
Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 02 August 2020, 21:35:37
Wunderbar danke. Jetzt habe ich die Readings  ;D:
Internals:
   DEF        http://192.168.188.37/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5 customer ******** 30
   FUUID      5c5dd958-f33f-3d64-5a70-789d15b828ad5d88
   Host       http://192.168.188.37/data/ajax.txt?CAN=1&HASH=00100403&TYPE=5
   NAME       myAT3000
   NR         71
   NextUpdate 2020-08-02 21:22:34
   Pass       ********
   STATE      initialized
   TYPE       AT5000
   User       customer
   READINGS:
     2020-08-02 21:22:04   Gesamtertrag    49.24 MWh
     2020-08-02 21:22:04   Jahresertrag    4.44 MWh
     2020-08-02 21:22:04   Monatsertrag    37.60 kWh
     2020-08-02 21:22:04   Tagesertrag     12.66 kWh
     2020-08-02 21:22:04   aktual          0.00 kW
Attributes:
   delay      30
   icon       measure_photovoltaic_inst
   room       Energie,Technikraum
   verbose    5


Allerdings wollte ich "event-on-change-reading" einstellen, das ging nicht.
Titel: Antw:Auslesen Solaranlage
Beitrag von: amenomade am 02 August 2020, 21:37:07
Wie setzt Du das? event-on-change-reading ist eine standard Funktion von Fhem, und die sollte unabhängig vom Modul sein.
Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 02 August 2020, 21:50:11
zuerst wollte ich es wie gehabt über das ATTR-Menü im Device machen. Da finde ich den Menüeintrag nicht. Und so über die Commandozeile
attr myAT3000 event-on-change-reading .*
bekomme ich folgende Rückmeldung:
myAT3000: unknown attribute event-on-change-reading. Type 'attr myAT3000 ?' for a detailed list.
Titel: Antw:Auslesen Solaranlage
Beitrag von: amenomade am 02 August 2020, 21:51:00
arf. Ja ok, moment
Titel: Antw:Auslesen Solaranlage
Beitrag von: amenomade am 02 August 2020, 21:57:17
Habs hieroben (https://forum.fhem.de/index.php/topic,11972.msg1075909.html#msg1075909) aktualisiert.
Das ging übringens mit dem alten Modul auch nicht ;)
Titel: Antw:Auslesen Solaranlage
Beitrag von: fabtie am 02 August 2020, 22:16:32
Wunderbar, danke.  :D

Mit dem ursprünglichen Modul habe ich es wohl nie versucht einzustellen, da ich keine Readings gesehen hatte. ;-)