Hallo Zusammen,
ich habe ein Problem und hoffe mich kann jemand in die richtige Richtung schubsen.
Mein Kaco Wechselrichter liefert über eine URL die Tagesertragswerte des Monats der in der URL angegeben wird.
Ich möchte es gerne automatisieren, dass immer um 0:05 die Werte abgefragt werden und der Vortageswert ins DBlog geschrieben wird.
Das Problem ist, dass die URL dynamisch bzgl Jahr und Monat ist.
Was muss ich also machen, dass immer der richtige Monat und das Jahr gesetzt werden und die URL abgefragt wird?
Beim Monatswechsel, muss jedoch am 1. eines Monats noch der letzte Monat aufgerufen werden,
da erst um 00:00 der Vortageswert abgefragt werden kann.
Ich brauche den Wert um dann den Eigenverbrauch ermitteln zu können.
http://192.168.178.56/201709.csv
WR-Typ;Seriennummer;RS485-Adresse;IP-Adresse;Ertrag[kWh] blueplanet 6.5 TL3;6.5TL0184;1;192.168.178.56;303.38 Datum;E[Wh]
01/09/2017;23985
02/09/2017;17165
03/09/2017;34055
04/09/2017;26413
05/09/2017;18344
06/09/2017;14157
07/09/2017;16884
08/09/2017;3776
09/09/2017;15859
10/09/2017;25817
11/09/2017;23059
12/09/2017;24492
13/09/2017;23764
14/09/2017;17067
15/09/2017;18549
Wer kann mir helfen wie ich das angehen muss?
Danke Euch
Hallo Tungsten,
ich habe zufällig einen Blogbeitrag geschrieben, wie man CSV-Dateien in FHEM als Reading einliest.
Vielleicht hilft die dieser ja weiter.
https://waschto.eu/csv-datei-als-fhem-reading-einlesen/ (https://waschto.eu/csv-datei-als-fhem-reading-einlesen/)
Gruß Daniel
Hallo,
ich bin am gleichen Problem:
Schau mal hier:
https://forum.fhem.de/index.php/topic,78194.0.html
Der Vorschlag von Daniel hat bei mir nicht funktioniert, da CSV nicht findbar.
Hatte gedacht eine Mischung aus HTTPMOD und der Dynamisierung aus Daniels Vorschlag. Habe aber noch keine Lösung.
Ohne jetzt ins Detail zu gehen, folgender Hinweis. at anlegen z.b jeden Tag um 0:05. Unix timestamp in Sekunden seit 1970 holen, hier z.b. 600 abziehen und daraus dann wieder das Datum generieren lassen.
https://wiki.fhem.de/wiki/DevelopmentModuleAPI (https://wiki.fhem.de/wiki/DevelopmentModuleAPI)
Aktuell soll es so gelöst werden im at.
defmod readKacoMonthCSV at *00:05:00 {\
my $CSVstring;;;;\
my $Wert;;;;\
my $csvMonth;;;;\
\
if ($mday == "1") {\
$csvMonth = $month-1;;;;\
if ($csvMonth < "10") {$csvMonth = "0".$csvMonth;;;;}}\
else {\
$csvMonth = $month;;\
if ($csvMonth < "10") {$csvMonth = "0".$csvMonth;;;;}}\
\
$CSVstring = "http://192.168.178.56/2017".$csvMonth.".csv";;;;\
$Wert = readCSV($CSVstring,"Seriennummer");;;;\
fhem("setreading WechselrichterErtrag Ertrag $Wert");;;;\
\
}
Ich weiß nur noch nicht wie ich die URL mit $CSVstring ins HTTPMOD bekomme....
habe eine Lösung mit wget gefunden:
http://www.buerfeind.de/fhem-csv-datei-als-reading-einlesen/ (http://www.buerfeind.de/fhem-csv-datei-als-reading-einlesen/)
Hallo Tungsten,
wir sind am gleichen Problem dran. Deine Lösung geht nur für die neueren blueplanet Wechselrichter von Kaco.
Ich habe eine Powador 10 TL3. Dieser baut leider die Datei anders zusammen.
Hier meine Lösung für die "älteren" Geräte:
defmod at_SolarTagErtrag at +*00:15:00 {\
my $adresse = "http://192.168.178.24";;;;\
\
my ($jahr, $monat, $tag) = (localtime(time))[5,4,3];;;;\
$jahr += 1900;;;;\
$monat += 1;;;;\
\
my $abfragedatum = sprintf("%04d%02d%02d", $jahr, $monat, $tag);;;;\
\
Log 3,"KACO CSV Ertrag: Heute=$jahr $monat $tag";;;;\
\
my $text = `wget -O - "${adresse}/${abfragedatum}.csv"| sed -e 's/\x0d/;;;;/g'`;;\
{\
if ($text) {my $impValue = (split(';;', $text))[10];;;;\
fhem("setreading KaCo_Real Tagesertrag ${impValue}")}\
}\
}
attr at_SolarTagErtrag verbose 3
setstate at_SolarTagErtrag Next: 22:45:27
setstate at_SolarTagErtrag 2018-01-15 22:30:27 state Next: 22:45:27
Musste nach den einzelnen ; suchen. Dein Vorschlag brachte mich auf die Lösung.
Hallo,
ich weiß dieser Thread ist schon sehr alt aber vielleicht kann mir einer helfen der es schon selbst zu laufen gebracht hat.
Und zwar geht es um das Wget aus dem oben genannten Link http://www.buerfeind.de/fhem-csv-datei-als-reading-einlesen/ (http://www.buerfeind.de/fhem-csv-datei-als-reading-einlesen/).
Ich schaffe es einfach nicht das Ganze zum Laufen zu bringen und bin dementsprechend schon langsam am verzweifeln.
LG
T
was genau klappt denn nicht? Mehr Details wären hilfreich.
Hallo zusammen,
versuche CSV Dateien die von einem Webserver (123Solar) erzeugt werden, auszulesen. Leider scheitert das Ganze daran, dass FHEM die CSV Dateien nicht öffnen kann, da es keine Leserechte auf die täglich neu erzeugte Datei hat. Wo muss ich einstellen, dass FHEM Lesen darf? Vielen Dank vorab.