FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: matzefisi am 25 Juni 2013, 19:43:13

Titel: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 25 Juni 2013, 19:43:13
Hallo zusammen,

ich habe mich mal daran gemacht und ein Modul für den Kostal PIKO Wechselrichter zusammengebastelt. Es läuft bei mir bislang einwandfrei.Vorlage dafür war das Modul 23_WEBIO.pm.
Da es mein erstes Modul bzw. meine erste Perl Basteslei für FHEM is, würde ich mich über ein paar Anmerkungen oder Tips sehr freuen.

Viel Spaß beim Ausprobieren.

UPDATE: John hat eine neue Version dieses Moduls auferlegt. Bitte verwendet in Zukunft nur noch Version 2.0
http://forum.fhem.de/index.php/topic,24409.msg175253.htm

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: olindner am 26 Juni 2013, 19:58:04
Hallo Matthias, Klasse ... eingebaut und lief sofort. Der aktuelle Wert wird angezeigt. Muss mich erst reinfinden, perl ist nicht so meins. Mal sehen ob ich mich an den Tagesertrag ran traue.

Danke und viele Grüße
Olaf
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 27 Juni 2013, 08:49:11
Hallo Matthias

vielen Dank für das neue Modul.

Mir ist noch aufgefallen, dass beim Aufruf des InternTimer immer fix die 5 Sekunden verwendet werden.
Dafür war wohl der Parameter Delay gedacht.
Das Polling alle 5 Sekunden war mir zu heftig. Daher die kleine Änderung.

KOSTALPIKO_GetStatus($)
{
  my ($hash) = @_;
  my $err_log='';
  my $line;

  my $name = $hash->{NAME};
  my $host = $hash->{Host};
  my $user = $hash->{User};
  my $pass = $hash->{Pass};

  my $delay=$attr{$name}{delay}||300;
  InternalTimer(gettimeofday()+$delay, "KOSTALPIKO_GetStatus", $hash, 0);


Mir ist nicht klar was "||300" bei
 my $delay=$attr{$name}{delay}||300;
bewirken soll.

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 27 Juni 2013, 09:02:12
Hallo zusammen,

danke für die Rückmeldungen!

@John: Stimmt Du hast Recht. Da sollte die Variable $delay hin. Ich hatte kurzzeitig das Problem, dass das Modul die Attribute nicht ausgelesen hat. Daher hatte ich das im Code fest hinterlegt.
Das ||300; soll einen default wert setzen, falls kein Attribut "delay" vorhanden ist. Also quasi eine Oder Funktion. Entweder den Wert aus dem Attribut delay oder falls $delay undef ist dann 300 sekunden.
Ich werde dann mal deine Änderung übernehmen. :)

BTW: In der Funktion define habe ich das auch noch drin, allerdings schon auskommentiert. Habe jetzt beides glatt gezogen.

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 29 Juni 2013, 12:31:49
Hallo Matthias,
ich hab noch einige Schnippsel hinzugefügt.

Das Ergebnis:

(siehe Anhang / see attachement)


Alle Parameter der Webseite werden erfasst und als Readings dargestellt.

ModeNum
Darstellung der Betriebsart als Zahl mit folgendem Zusammenhang
Aus              0
Leerlauf         1
Einspeisen MPP   2

Daily.Energy.Last
erzeugte Energie des letzten Tages.
Wird dann ermittelt, wenn Daily.Energy vom Kostal auf 0 gesetzt wird.

Setter wurde entfernt.
Attribute mit $readingFnAttributes erweitert.
Modul HTML::Parser wird nun zusätzlich benötigt
Aktualisierung der Readings erfolgt nur nach Änderung.

Weitere Ideen
(hier bitte ich im Untestützung)
Wechselrichter auf Plausibilität überwachen.
Stimmt die erzeugte Energie mit der zu erwartenden in etwa überein ?
Ziel: Erkennen eines Ausfalls.
Alarmierung durch FHEM.

Problem:
Wie kann man standortbezogen die Soll-Energieausbeute bestimmen ?

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: olindner am 29 Juni 2013, 13:41:13
Hallo John, vielen Dank script funktioniert super, alle readings sind da und stimmen mit meiner Anlage überein.

ZitatProblem:
Wie kann man standortbezogen die Soll-Energieausbeute bestimmen ?
Meinst Du sowas? Dort hole ich mir meine standortbezogen Prognose.

viele Grüße
Olaf
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 29 Juni 2013, 14:54:41
Hallo Olav,
genau darum gehts. Ich möchte die aktuelle Leistung der PVA mit der Prognose vergleichen.
Bei groben Abweichungen ist von einem Fehler auszugehen.

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 29 Juni 2013, 15:51:57
Hi John,

danke für deine Erweiterungen, werde ich gleich mal ausprobieren.

Bzgl. der Prognose oder Überwachung:

http://www.suntrol-portal.com/de (//www.suntrol-portal.com/de)

Hier habe ich meinen Wechselrichter zusätlich angemeldet (er überträgt alle 15 min seine Werte zu dem Portal) und von dort bekomme ich dann eine Mail sobald meine Anlage im Verhältnis zu anderen Anlagen in meiner Umgebung weniger Energie liefert. Schöner wäre es natürlich diese Funktion dann auch nur im FHEM zu haben und auf das Portal verzichten zu können.

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: olindner am 29 Juni 2013, 19:13:45
Hallo John, mein Link ist leider untergegangen :( hier nochmals die Prognose http://re.jrc.ec.europa.eu/pvgis/apps4/pvest.php?lang=de&map=europe (//re.jrc.ec.europa.eu/pvgis/apps4/pvest.php?lang=de&map=europe)

Beim saven der fhem.cfg stürzt fhem ab
Undefined subroutine &main::KOSTALPIKO_Undef called at fhem.pl line 2449.
danke und vg Olaf
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 29 Juni 2013, 21:30:43
Hallo Olaf,

habs gefunden. Die sub KOSTALPIKO_Undef fehlte noch.

Ist nun bereinigt.

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 30 Juni 2013, 08:18:07
Guten Morgen


Danke! Das Teil läuft super!

Zum Glück gefunden. ;)

Wollte mich gestern mitm Kumpel an das Modul machen. War schon fertig!

Gruß
Andre
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 30 Juni 2013, 13:16:49
Hallo zusammen,
ich hab nun eine Quelle für die Globalstrahlung gefunden und will diese in den Readings verfügbar machen.

Weiss jemand, wie man von der Globalstrahlung auf die zu erwartende Leistung der PV-Anlage schliessen kann ?

Erste Idee:
Globalstahlung [kWh/qm]* Wirkungsgrad der Module [%] * qm Modulfläche [qm] * Wirkungsgrad.Wechselrichter [%]

- Sicher spielt auch noch die Ausrichtung nach Süden und die Neigung eine Rolle

Wäre für Unterstützung dankbar.

John

Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 30 Juni 2013, 22:03:40
Bin zum Thema prognostierte Leistung gut weitergekommen:


(siehe Anhang / see attachement)


Global.Radiation ist die Globalstrahlung meiner Region am heutigen Tag.

EnergyExpected = <Systemnutzungsgrad> * Fläche * Global.Radiation

Und wie man sieht sind die 28,17 Kwh nicht allzu weit von den erwarteten 31.08 entfernt.

Der Chart des heutigen Tages:


(siehe Anhang / see attachement)


John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 30 Juni 2013, 22:16:24
Hi John,

ich hatte eig. vor mich da heute ran zu setzen, wie hast du das mit dem plot gemacht. Ein Beispiel waere super.

Jeder faengt klein an.

MfG
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 30 Juni 2013, 23:25:43
Kein Problem:
Hier ist auch schon EnergieExpected berücksichtigt


(siehe Anhang / see attachement)



John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 30 Juni 2013, 23:39:55
Die Frage ist eher wie erstell ich einen Plott.

Muss ich noch ein wenig wiki studieren. Heute nimmer.

Schoene Arbeit gefaellt mir. Ich hab heute die 31kw gehabt :-)

vielen Dank.

Gute Nacht
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 01 Juli 2013, 09:19:02
Moin John,

wie gehst Du dann mit Schlechtwetter wie z.B. Wolken / Gewitter usw. um? So wie ich verstanden haben, hast Du jetzt eine Quelle gefunden, die Dir die erwartete Sonneneinstrahlung unabhängig vom Wetter angibt, richtig?

Aber ansonsten respekt wie schnell Du die Sachen hinbekommst. Wenn ich überlege wie lange ich an dem Grundmodul gearbeitet (rumgebastelt) habe. Dazu muss ich aber auch sagen, dass ich noch nicht lange mit Perl arbeite.

@AK-868:
Um einen Plot zu erstellen, musst du zuerst die Readings in eine Datei schreiben lassen:

# Define für meinen Wechselrichter.
define power_Wechselrichter KOSTALPIKO ip-adresse user pass 5
attr power_Wechselrichter alias Wechselrichter

# Define für mein Log. Mit power_* sage ich dem Log, dass alle Geräte die mit power_ anfange in diese Datei loggen soll
define PowerLog FileLog %L/powerlog-%Y-%m-%d.log power_.*

Und wenn Du das gemacht hast, kannst Du unter "Undefined" oder "Everything" das "Gerät" PowerLog aufrufen und dort findest Du den Link "Create new SVG Plot". Und ab da kannst Du die Werte aus dem Screenshot von John nutzen.


MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 01 Juli 2013, 20:36:52
Hallo Matthias,
ich kann über die Qualität der Quelle nichts sagen.
Aber so schlecht wird diese nicht sein ,da sie für die Herrn Landwirte gemacht wurde.

In Folgendem erkläre ich, wie man zu der ortsbezogenen URL gelangt,  die die Globalstrahlung beinhaltet.

Folgende Seite aufrufen (ich exerziere es am Beispiel der Stadt Straubing)
http://www.proplanta.de/Agrar-Wetter/Deutschland/ (//www.proplanta.de/Agrar-Wetter/Deutschland/)

Postleitzahl für Straubing eingeben: 94315
ggf. bei Auswahlbox rechts zusätzlich auswählen --> Button "Aufrufen"

Am untersten Ende der nun aufgerufenen Seite findet sich der Link zu
"Wetterrückbick Straubing" --> Click

Auf der nun erscheinenden Seite findet sich ebenfalls am unteren Ende:
"Wetteraussichten Heute" - Click

Nun merken wir uns die URL der aktuellen Seite:
http://www.proplanta.de/Wetter/Straubing-Wetter-Heute.html (//www.proplanta.de/Wetter/Straubing-Wetter-Heute.html)

oder allgemein

http://www.proplanta.de/Wetter/ (//www.proplanta.de/Wetter/)<Ort>-Wetter-Heute.html

Das war das Ziel: eine eindeutige ortsbezogene URL mit dem Inhalt der Globalstrahlung.

Unser Modul wird hier den Begriff "Globalstrahlung" suchen und den entsprechenden Wert extrahieren.
Das geschieht stündlich.

Ich habe ein Attribut vorgesehen, um diesen Link zu speichern:


(siehe Anhang / see attachement)


Das aktualisiert Modul folgt demnächst (will noch etwas testen).

In den technischen Unterlagen meiner PA-Anlagen ist der Systemnutzungsgrad ausgewiesen,
den ich als Gesamtwirkungsgrad verstehe.

Somit ergibt : Expected Energy = <PV-Fläche> * GlobalStrahlung * Systemnutzungsgrad

Dies habe ich mit den UserReadings realisiert:

attr Kostal userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Kostal","Global.Radiation",0)*37*0.10;;}

Sieht auch am 2. Tag sehr plausibel aus.

(siehe Anhang / see attachement)


John







Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 01 Juli 2013, 21:23:07
Hi,

super, dann ist das Wetter ja schon mit drin. Ich dachte das wäre jetzt wirklich nur die erwartete Sonneneinstrahlung ahnand von Sonnenstand usw. Aber so ist es ja perfekt. Ich gucke auch mal, ob die Werte bei mir passen und werde berichten.

Danke!

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 01 Juli 2013, 21:32:21
So, ich hab's mal schnell durchgerechnet.

Heute erzeugt (laut Wechselrichter) 23,70 kWh
Nach deiner Formel hätten es sein müssen: 24,44 kWh

Ich würde sagen, das passt sehr gut. Coole Sache!

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 01 Juli 2013, 23:18:53
Nachdem ich alles überprüft habe, nun das überarbeitete Modul.

Anpassungen:

Das Skript ist nun etwas wuchtiger geworden, wegen der Ermittlung der Globalstrahlung.

Daily.Energy.Last
wird einmalig ab 23:00 Uhr mit dem aktuellen Wert von Daily.Energy überschrieben und ist somit zunächst noch nicht
angelegt.
Damit wird dem Tageswert der noch korrekte Datumswert im Log-File zugeordnet und man könnte damit ggf. einen
Woche/Monatsbericht erstellen.

Global.Radiation
Hier wird die erwartete Globalstrahlung des Tages eingetragen.
Abhängig vom Attribut GR.Link. Wird nur ermittelt, wenn dieser auch definiert ist.
Die Abfrage erfolgt stündlich. Damit wächst der Graph im Chart mit.
(Man muss den Wert natürlich im Log-File aufzeichnen)

EnergyExpected

Habe ich als UserReading angelegt, kommt also nicht direkt vom Modul selbst.
Hier kann man über eine nach den eigenen Verhältnissen angepasste Formel den zu erwartende Tages-Energie berechnen.
Das Reading triggert man sinnigerweise über Global.Radiation.

Attribut delay

Parameter entfällt beim define, dafür wird er als Attribut angegeben.
Wenn nicht definiert, wird dieser automatisch mit 300 belegt.

Attribut Loglevel
Hierüber wird das Skript gesprächig und gibt einem Menge an Informationen in der Log-Datei aus.
Z.B. mit "loglevel 3", wenn "attr global verbose 3" gesetzt ist.

Definition am Beispiel:


Gerät definieren (Achtung: Zeilenumbruch ist nicht beabsichtigt)

define Kostal KOSTALPIKO 192.168.178.10 pvserver pvwr
attr Kostal GR.Link http://www.proplanta.de/Wetter/Straubing-Wetter-Heute.html
attr Kostal delay 300
attr Kostal loglevel 4
attr Kostal room System
attr Kostal userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Kostal","Global.Radiation",0)*37*0.10;;}


Mit dem UserReadings wird das neue Attribut EnergyExpected, das mit der Aktualisierung von Global.Radiation
neu berechnet wird und zwar mit dem in der geschweiften Klammer angegebenen Ausdruck.

Also hier mit PA-Fläche : 37 qm, System-Wirkungsgrad: 10%
EnergyExpected = Globalstrahlung * 37 * 0.10

Über GR.Link habe ich früher schon berichtet.
Link (http://forum.fhem.de/index.php?topic=13508.msg84662#msg84662)

Logfile definieren

# log-files definieren
define Kostal.File FileLog ./log/Kostal-%Y.log Kostal:(AC.Power|Daily.Energy|Total.Energy|ModeNum|EnergyExpected).*
attr Kostal.File logtype text
attr Kostal.File room System


Im einzelnen:
Zitat/log/Kostal-%Y.log
besagt, dass wir ein Logfile der Form Kostal-2013.log wollen, also über das Jahr

ZitatKostal:(AC.Power|Daily.Energy|Total.Energy|ModeNum|EnergyExpected).*
wir nehmen nur die wichtigsten Werte auf
 "Kostal" kennzeichnet das Gerät, der Rest nach dem ":" ein regulärer Ausdruck für die gewünschten Werte
 "|" ist hier als logsiches "Oder" zu verstehen
 "." ist ein Platzhalter für ein beliebiges Zeichen
 "*" sagt, dass sich dieses beliebig oft wiederholen kann

Chart definieren
define wl_Kostal.File_1 weblink fileplot Kostal.File:wl_Kostal.File_1:CURRENT
attr wl_Kostal.File_1 room System



John




Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: olindner am 02 Juli 2013, 11:59:26
Hallo John,

großen Dank an Deine Arbeit. Es funktioniert super. Bei Deiner super Beschreibung kann man (fast) nichts falsch machen.

Habe jetzt einen 2. LogFile angelegt um "Daily.Energy.Last" zu loggen ...

define KostalM.File FileLog ./log/KostalM-%Y-%m.log Kostal:(Daily.Energy.Last).*
attr KostalM.File logtype text
define wl_KostalM.File_1 weblink fileplot KostalM.File:wl_KostalM.File_1:CURRENT
attr wl_KostalM.File_1 fixedrange month

Der Wert "Daily.Energy.Last" wird bei mir so gegen 4Uhr früh gespeichert, für den Tag davor! Wie bekomme ich es hin, das der PLOT dann Timestamp - 1 Tag anzeigt?

vielen Dank und viele Grüße
Olaf

Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 02 Juli 2013, 15:13:06
Hallo Olaf,
das sollte eigentlich mit dem aktuellsten Skript von gestern erledigt sein.

Zitatwird einmalig ab 23:00 Uhr mit dem aktuellen Wert von Daily.Energy überschrieben und ist somit zunächst noch nicht
angelegt.

Bei der Version vorher war es dies anders. Hier wurde der Wert beim Neustart des Wechselrichters geschrieben.

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 02 Juli 2013, 21:12:42
Ich hab noch was gefunden und zwar jedes mal wenn ich was in der config geändert habe kam ein Fehler bzgl. delay.


Delay muß dann als Globales attr hinzugefügt werden.

Ich hoffe das erklärt meine hmlan disconnects und fhem abstürze.

Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 02 Juli 2013, 21:42:27
Hallo Andre ,
hast du das aktuellste Skript (von gestern) im Einsatz ?

Damit sollte das Delay-Problem behoben sein.

Ansonsten schick mir bitte einen Auszug aus der Log-Datei.

Die Laufzeit des Skripts ist nicht unerheblich und kann mehrere Sekunden (je nach Rechner Power/Internetverbindung)
in Anspruch nehmen. FHEM muss ja jedes einzelne HTML-Tag parsen.

Vielleicht führt dies dazu, dass HMLAN ein Problem hat.

Noch länger dauert das Polling der externen ProPlanta-Seite. (kannst du deaktivieren indem du das Attribut GR.Link löschst)
Geh mal mit loglevel auf 3 und beobachte ob die Timeouts mit der Abfrage der Web-Sites korrelieren.

Vielleicht müssen wir das Polling auf die Betriebssystem-Ebene auslagern, damit FHEM nicht blockiert ist.


John


 
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 02 Juli 2013, 22:17:02
Hi John,

ich hab das script gerade eingelesen.

Webseite ist jetzt erst hinzugefügt.

Habe das Globale attr. hinzugefügt.

Bisher keine Disconnects mehr.

Im Log stand leider nichts, da sich fhem anscheinend vollständig verabschiedet hat.

Eine andere Frage,

Kann ich Einträge in das Logfile in größeren Abständen schreiben, als das delay der Abfrage vom Wechselrichter?
Oder Durchschnittswerte?

Ich möchte Geräte in Abhängigkeit der Solarleistung schalten, daher benötige ich relativ genaue Leistungsdaten. (AC.Power)

Wenn nicht muß ich ein wenig umgestalten. Die .pm Massiv abspecken und nur AC.Power abfragen.


(siehe Anhang / see attachement)



Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 03 Juli 2013, 09:30:47
Hallo Andre,
dein Wunsch ist nachvollziehbar. Du verwendest den erzeugten Strom selbst.

Ich habe nun ein neues Reading AC.Power.Fast eingeführt.
Auszug aus EventLog:

2013-07-03_08:55:29 Kostal AC.Power.Fast: 830
2013-07-03_08:56:29 Kostal AC.Power.Fast: 842
2013-07-03_08:57:29 Kostal AC.Power.Fast: 856
2013-07-03_08:58:29 Kostal AC.Power.Fast: 874
2013-07-03 08:59:29 KOSTALPIKO Kostal AC.Power: 890
2013-07-03 08:59:29 KOSTALPIKO Kostal AC.Power.Fast: 890
2013-07-03 08:59:29 KOSTALPIKO Kostal Daily.Energy: 1.56
2013-07-03 08:59:29 KOSTALPIKO Kostal generator.3.current: 1.52
2013-07-03 08:59:29 KOSTALPIKO Kostal generator.3.voltage: 617
2013-07-03 08:59:29 KOSTALPIKO Kostal output.1.power: 300
2013-07-03 08:59:29 KOSTALPIKO Kostal output.1.voltage: 230
2013-07-03 08:59:29 KOSTALPIKO Kostal output.2.power: 301
2013-07-03 08:59:29 KOSTALPIKO Kostal output.3.power: 289
2013-07-03 08:59:29 KOSTALPIKO Kostal W: 890 - Einspeisen MPP


Das neue Reading wird also schneller abgefragt als die übrigen.
Werde es den Tag über laufen lassen und melde mich am Abend wieder.

John

Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Harald am 03 Juli 2013, 11:43:47
Hallo zusammen,

das ist ein tolles Modul, was Ihr da erstellt habt. So etwas ähnliches würde ich auch gerne nutzen. Ich besitze seit 2001 eine Solaranlage mit Fronius-Wechelrichter. Dieser hat eine RS232-Schnittstelle.

Welche Schnittstelle verwendet Ihr? Der PIKO hat ja mehrere Möglichkeiten.

Wie muss der Aufruf in der fhem.cfg gestaltet werden?

Vielen Dank schonmal im Voraus für Eure Auskünfte

Harald
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 03 Juli 2013, 11:54:43
Hi Harald,

ich denke da kommst Du mit unserem Modul leider nicht weiter. Dieses Modul greift auf den Webserver des Wechselrichters zu und wertet dann die empfangene HTML Seite aus. Also nutzen wir kein RS232.
Aber ich meine, dass es für RS232 Wechselrichter/Solarlogger auch schon Module gibt.

Aufruf in der CFG hat John bereits beschrieben: HIER (http://forum.fhem.de/index.php?topic=13508.msg84682#msg84682)

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Harald am 03 Juli 2013, 13:06:42
Danke Matthias für die Info,

das habe ich befürchtet, als ich las, dass der PIKO auch über's Netz ansprechbar ist. Dann werde ich mal weiter suchen.

Viel Spaß und Erfolg noch von

Harald
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 03 Juli 2013, 22:41:14
Für deinen Wechselrichter gibt es sicher auch einen Datenlogger. Das wäre vermutlich das einfachste.

Evtl. hat jemand schon was für einen RPI gebaut. In die Richtung würde ich mal suchen.


John, es hat Vor und Nachteile das du das machst.

Vorteil ich hab das total schnell hier und es läuft.

Nachteil, ich lern dabei nix :-D
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 03 Juli 2013, 23:53:51
Ich hab jetzt doch noch unregelmässig Disconnects. Zudem ist heute proplanta nicht erreichbar.

Vllt. liegt es daran?

Wenn ich jetzt Urlaub habe, dann versuch ich das mal rauszufinden woran das liegt.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 04 Juli 2013, 08:47:51
Hallo Andre,

ZitatJohn, es hat Vor und Nachteile das du das machst.

Vorteil ich hab das total schnell hier und es läuft.

Nachteil, ich lern dabei nix :-D

Da war ich wohl wieder einmal zu schnell.

Es ist gut wenn du die Sache selbst angehst. Melde dich wenn du Unterstützung brauchts.

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 04 Juli 2013, 09:05:58
Hi zusammen,

@Andre: Was ähnliches habe ich mir auch gedacht. :) Ich will auch Durch das Basteln an den Modulen Perl und FHEM lernen und begreifen.

Allerdings bin ich John sehr dankbar für die Erweiterungen an dem PV-Modul. Jetzt habe ich die PV Anlage schon mal abgehakt und kann mich z.B. den Homematic Wired Modulen oder einem Modul für den USB-Schreiblesekopf (Auslesen von Smartmetern) vom Volkszählerprojekt kümmern (Oder hat da jemand schon was brauchbares gefunden?).

Und auch wenn man sich in Ruhe das Modul jetzt nochmal anschaut kann man schon viel für eigene Änderungen und Module mitnehmen. Mein Problem: Ich bin mit einem Perlbuch von 1999 angefangen und habe damit versucht die Änderungen von John zu verstehen, das ist aber gründlich in die Hose gegangen. In den letzten 14 Jahren hat sich in der Perl Welt doch einiges getan. Für die Grundlagen (Schleifen, Variablen usw.) ganz ok, aber alles was darüber hinausging war im Buch nicht zu vorhanden :-)

Fazit: Danke John, Du bist nicht zu schnell! Weiter so! :-)

Edit: John, ich habe gesehen, dass Du auch einen RPi einsetzt. Hast Du auch das Problem, dass die Graphen so lange zum laden brauchen? Bei mir ca. 20 Sekunden und das Problem scheint wohl der Prozessor zu sein. In der Zeit läuft die CPU auf 100%.

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 04 Juli 2013, 12:23:48
Hallo Matthias,
ZitatEdit: John, ich habe gesehen, dass Du auch einen RPi einsetzt. Hast Du auch das Problem, dass die Graphen so lange zum laden brauchen? Bei mir ca. 20 Sekunden und das Problem scheint wohl der Prozessor zu sein. In der Zeit läuft die CPU auf 100%.

Bei 4 Charts im Bild benötigen mit dem Raspi ca. 3..4 Sekunden:

Grösse der Dateien f. Charts:

1. Datei: 2.5 MB
2. Datei: 700 MB
3. Datei: 6 MB
4. Datei:  500 MB

Der Prozessor läuft praktisch immer auf minimaler Taktung: (bis auf die kurzen Chart-Abfragen)

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 04 Juli 2013, 17:20:04
Hallo John,

bei mir dauert das Laden auch so lange.

Ich vermute das kommt von dem Interwall des Logs.

Aber weißt du was super wäre, wenn du die geänderte PM mit AC.Power.Fast: noch online stellen würdest. Ich hab mir jetzt was tolles neues ans Bein gebunden ;)

Ich hab kräftig Hardware bestellt. Mit dem Einbau werd ich einige Zeit beschäftigt sein.

Du willst mir keinen Support leisten :-D Glaub mir. ;)

Ich dank dir auf jeden Fall sehr für deine Arbeit.

Gruß Andre

Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 05 Juli 2013, 22:16:51
Das neue Reading AC.Power.Fast hat fast künstlerischen Wert.


(siehe Anhang / see attachement)


Will man das neue Reading AC.Power.Fast nicht in der Log-Datei sehen, ändert man den Filter für Filelog.
Hier einfach den Doppelpunkt einfügen. Würde bei AC.Power reichen, aber aus systematischen Gründen am besten überall.define Kostal.File FileLog ./log/Kostal-%Y.log Kostal:(AC.Power:|Daily.Energy:|Total.Energy:|ModeNum:|EnergyExpected:).*

AC.Power.Fast hat ja zunächst denselben Wert wie AC.Power.

Wer jedoch das schnelle Reading nutzen will setzt zunächst den Wert von delay runter z.B auf minütliche Abtastung
attr Kostal delay 60
Dann würde jedoch die LogDatei schnell anwachsen, was nicht jeder will.
Daher gibts ein neues optionales Attribut delayCounter.

Optional heisst, es muss nicht definiert sein, es kann definiert sein.
attr Kostal delayCounter 5

Nun wird nur AC.Power.Fast minütlich abgetastet, alle anderen mit 5 * 60 sec. =300 sec, also alle 5 Minuten.

Wer nun mit dem schnellen AC.Power.Fast nutzen will kann ein notify definieren, das praktisch jede Minute gefeuert wird.
(Um z.B. damit Verbraucher zu schalten)

define Kostal.Event notify Kostal:AC.Power.Fast.* {Log (3,"%EVTPART0 wurde gefeuert mit Wert: %EVTPART1");;}

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 06 Juli 2013, 12:40:33
Hallo John,

ich hab die neue PM jetzt online. Nach X mal hin und her.

Ich weiß echt nicht was bei mir nicht stimmt mit dem Kram.

Erst sagt er das er die PM nicht findet, dann soll ich ein KOSTALPIKO define machen?!?

Dabei hab ich nur den Inhalt der datei getauscht.

Dann konnte er urplötzlich die Datei nicht mehr finden oO.

Dann hab ich die Datei neu erstellt...

Naja letzendlich geht es jetzt wohl.

Solche Probleme hatte ich mit meiner leider durch Blitz zerstörten 1&1 7390 nicht. Nur mit der neuen Fritzbox 7390.

Offtopic.

Ich lass mir auch ne Mail schreiben wenn ich nicht da bin und eine Tür oder Fenster geöffnet werden.
Es wird nur ein event generiert, aber es kommen 2 Mails.

Frag mich mal einer warum. ???

Das Modul wird erwachsen. Echt geiles Ding ;)





Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 06 Juli 2013, 14:14:38
Ich hab mir das Modul mal gerade angeschaut.

 # state noch hinzufuegen
 $rdValue = "W: ".$hashValues{"AC.Power.Fast"}." - ".$hashValues{"Mode"};
 $hashValues{state} = $rdValue;


Das da oben funktioniert nicht. Vllt. kannst du mir jetzt doch helfen und erklären wo mein Denkfehler ist?
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 06 Juli 2013, 17:55:30
Hi Andre,
es gibt eine bei weitem elegantere Methode dies zu erreichen.
Du musst dazu nicht einmal das Modul selbst ändern.

Lies mal im CommandRef zum Thema stateFormat nach.

Beispiel:
attr Kostal stateFormat MyPowerFast:AC.Power.Fast - MyMode:Mode
liefert im State nach der ersten Aktualisierung eines Readings:
MyPowerFast:1428 - MyMode:Einspeisen MPP
oder um das zu erreichen was du willst:
attr Kostal stateFormat W:AC.Power.Fast - Mode

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: hummeruli am 08 Juli 2013, 09:51:25
Hallo

Erstmal ein SUPERFETTES Lob an matsefisi und John.

Aber leider stehe ich auf meiner eigenen Leitung.

Bei mir kommt egal was ich mache, ob mit oder ohne

GR.Link

Folgender Fehler

Use of uninitialized value $URL in concatenation (.) or string at /opt/fhem//FHEM/23_KOSTALPIKO.pm line 225.

Im Code selber will er ja die URL, oder?
Ich verstehe nicht was ich da falsch mache?
Habe Folgendes eingetragen:

GR.Link   http://www.proplanta.de/Wetter/Ludwigsburg-Wetter-Heute.html

Weiterhin schreibt er nichts ins Logfile. Angelegt wird es aber.

Hier der Teil der Config:

#
# Photovoltaik
#
define Sonnenschein2011 KOSTALPIKO 192.168.0.19 xxxxx yyyyy
attr Sonnenschein2011 delay 300
attr Sonnenschein2011 loglevel 4
attr Sonnenschein2011 room Energie
define FileLog_KOSTAL_PV FileLog ./log/KOSTAL_PV-%Y.log KOSTAL:(AC.Power|Daily.Energy|Total.Energy|ModeNum|EnergyExpected).*
attr FileLog_KOSTAL_PV logtype text
attr FileLog_KOSTAL_PV room Logfiles
define Link_Sonnenschein2011 weblink fileplot FileLog_KOSTAL_PV:CURRENT
attr Link_Sonnenschein2011 label "Sonnenschein2011 Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr Link_Sonnenschein2011 room Diagramme
define FileLog_KOSTAL_PV_M FileLog ./log/KOSTAL_PV_M-%Y-%m.log KOSTAL:(Daily.Energy.Last).*
attr FileLog_KOSTAL_PV_M logtype text
define Link_Sonnenschein2011_1 weblink fileplot FileLog_KOSTAL_PV:FileLog_KOSTAL_PV_M:CURRENT
attr Link_Sonnenschein2011_1 fixedrange month
attr Sonnenschein2011 userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Sonnenschein2011","Global.Radiation",0)*37*0.10;;}


Die Werte in der letzten Zeile habe ich einfach so zum Test übernommen.
Er zeigt mir auch den momentanen Ertrag in den Werten an.

Wo sitzt nur der Fehler (Ja, ja; zwischen meinen Ohren)?

Gruß


Uli



Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: hummeruli am 08 Juli 2013, 14:53:04
Also das Problem mit dem leeren Log habe ich selbst herausgefunden.

So war es

.
.
define FileLog_KOSTAL_PV FileLog ./log/KOSTAL_PV-%Y.log KOSTAL:(AC.Power|Daily.Energy|Total.Energy|ModeNum|EnergyExpected).*
.
.
.
define FileLog_KOSTAL_PV_M FileLog ./log/KOSTAL_PV_M-%Y-%m.log KOSTAL:(Daily.Energy.Last).*
.
.


Abgeändert auf folgende Zeilen


.
.
define FileLog_KOSTAL_PV FileLog ./log/KOSTAL_PV-%Y.log KOSTAL
.
.
.
define FileLog_KOSTAL_PV_M FileLog ./log/KOSTAL_PV_M-%Y-%m.log KOSTAL
.
.


Jetzt klappt es auch mit dem Nachbar.

Der Fehler mit dem

GR.Link

Use of uninitialized value $URL in concatenation (.) or string at /opt/fhem//FHEM/23_KOSTALPIKO.pm line 225.


Besteht weiterhin.

Gruß


Uli
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 08 Juli 2013, 17:54:24
Hast du die aktuelle Version von der .pm?

Bei mir funktioniert das.

Wenn du die alte und jetzt die neue benutzt, hast du dein reload der pm gemacht?

Du hast den Filter gelöscht und schreibst somit viele Informationen in dein Logfile. Ist das so gewünscht?

#########Wechselrichter#####################################

define Wechselrichter KOSTALPIKO 192.168.X.X pvserver pvwr
attr Wechselrichter GR.Link http://www.proplanta.de/Wetter/DeinORT-Wetter-Heute.html
attr Wechselrichter alias Wechselrichter
attr Wechselrichter delay 60
attr Wechselrichter delayCounter 4
attr Wechselrichter loglevel 4
attr Wechselrichter room Keller,Alarmanlage
attr Wechselrichter userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Wechselrichter","Global.Radiation",0)*39*0.16;;}


define PowerLog FileLog ./log/powerlog-%Y.log Wechselrichter:(AC.Power:|Daily.Energy:|Total.Energy:|ModeNum:|EnergyExpected:).*
attr PowerLog logtype text
attr PowerLog room Keller


####Plot###################################################
define wl_PowerLog_1 weblink fileplot PowerLog:wl_PowerLog_1:CURRENT
attr wl_PowerLog_1 room Keller
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: hummeruli am 08 Juli 2013, 21:30:45
Danke Dir,

jetzt gerade habe ich gesättigt und frischen Mutes getankt, den Fehler gefunden.

Wenn ich direkt im fhem den Code

attr Wechselrichter GR.Link http://www.proplanta.de/Wetter/DeinORT-Wetter-Heute.html

eingebe, so macht er den Mist.
Wenn ich jedoch die Zeile ins File schreibe, so passt es. Naja bei vielen Sachen geht es, und hier eben nicht.

Ne das mit dem FileLog ohne Filter war die Notlösung auf die Schnelle. Aber so ist der Ansatz da.

Ich schraube noch ein wenig am Code. Mal sehen ob ich die Bude abfackel.


Danke Dir auf jeden Fall.

Bye

Uli
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: hummeruli am 08 Juli 2013, 23:18:21
So habe den Fehler gefunden.


Die nicht in der Config eingegebene Zeile

attr Wechselrichter_Name GR.Link http://www.proplanta.de/Wetter/DeinORT-Wetter-Heute.html

Verhindert das Generieren der erforderlichen Werte in den LogFiles.

Daraufhin Fehlfunktionen des wirklich guten Moduls.


Danke und weiter so.


Gruß


Uli
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 14 Juli 2013, 23:43:38
Ich hab den von Uli gefunden Fehler bereinigt, die aktuelle Version liegt bei.

Wenn nicht zuviele Wolken vorüberziehen klappt die Prognose relativ gut.


(siehe Anhang / see attachement)

Bei Woken hingegen, nicht so gut


(siehe Anhang / see attachement)


Wie sind eure Erfahrungen ?

John
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: matzefisi am 16 Juli 2013, 08:31:33
Moin John,

ja kann ich bestätigen. Bei durchgehender Sonne ist alles gut, sobald es aber diesig oder bewölkt wird, stimmt die Prognose nicht mehr.
Das hatte ich ja schon am anfang dieses Threads befürchtet. Ich werde mal weiter beobachten und gucke mal ob ich evtl. noch eine andere Quelle für eine solche Prognose (mit Wetterdaten) finde.

MfG
Matthias
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 21 Juli 2013, 09:13:32
Hier die Prognosen seht selbst

Der Wert für die pro m² energie, bezieht sich ja auf die Energie die auf einen m² Erde fallen mit dem jeweiligen Einstrahlwinkel.

Was ich damit sagen möchte, meine Anlage ist nach Süden ausgerichtet. Ist es von 8-16 Uhr bewölkt und dann kommt die Sonne raus, kann meine Anlage die eig. anstehende Energie nicht mehr umsetzen.
Nur wenn ich die Anlage der Sonne entgegen ausrichten würde. Leider kann ich das Dach nicht passend drehen ;)
Dem m² Boden ist das aber gleich wo die Sonne steht.

Heute könnte ein vollständiger Sonnentag werden, den kann ich dann auch nochmal Posten. Energy Expected bis jetzt 48,048 kw

Sonnig:

(siehe Anhang / see attachement)


Leicht bewölkt:

(siehe Anhang / see attachement)


Wolkig

(siehe Anhang / see attachement)
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 26 Juli 2013, 08:17:49
SUPER,

Vielen vielen Dank fuer dieses Modul.

Klappt hervorragend, ich bin total begeistert.
Titel: Kostal PIKO Wechselrichter-Monatsanzeige
Beitrag von: John am 27 Juli 2013, 20:01:30
Man kann auch eine Monatsanzeige realisieren:



(siehe Anhang / see attachement)


Die Definition für File_2 sieht wie folgt aus:

define Kostal.File_2 FileLog ./log/Kostal_2-%Y.log Kostal:(Daily.Energy.Last:).*
attr Kostal.File_2 logtype text


define wl_Kostal.File_2 weblink fileplot Kostal.File_2:wl_Kostal.File_2:CURRENT
attr wl_Kostal.File_2 fixedrange month


Die Definition des Charts:

(siehe Anhang / see attachement)


John
Titel: Aw: Kostal PIKO Wechselrichter-Monatsanzeige
Beitrag von: Heiner am 30 Juli 2013, 14:37:23
Hi,
waere es nicht sinnvoller auf ein Zusaetzliches Log zu verzichten und im Monatsreport besser den Letzten Wert der Daily Eergy eines jeden Tages zu verwenden?

Neben dem gesparten Log koennte man dann im Monatsgraph auch den aktuellen Tag mit dem bisher erreichten Stand erkennen. Ich hab nur keine Ahnung wie ich diesen letzten Wert eines Tages abfrage....
Kriegt man darin auch eine agregierte Linie mit der Summe der im Monat erzeugten Energie? Eventuell auch noch im Vergleich der prognostizierten Energie?
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 14 August 2013, 07:22:54
Hi, kann man irgendwie für die X-Achse den Wertebereich vorgeben?

Ich möchte die Tages Einstellung von 5-22 Uhr begrenzen, an den restlichen Stunden passiert eh nix. Eventuell kann man auch das logfile so aufzeichnen lassen das es diese Zeiten ausspart, nur wie geht das?

Dann wäre es noch super wenn man den Graphen in der Höhe vergrößern könnte, wo finde ich den Parameter der das Format vorgibt?

Danke für die Hilfe.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 19 August 2013, 00:05:57
ZitatHi, kann man irgendwie für die X-Achse den Wertebereich vorgeben?
Ich kenne nur die Möglichkeit Zeitbereiche wie Tage, Wochen, Monate vorzugeben.

ZitatIch möchte die Tages Einstellung von 5-22 Uhr begrenzen, an den restlichen Stunden passiert eh nix. Eventuell kann man auch das logfile so aufzeichnen lassen das es diese Zeiten ausspart, nur wie geht das?

Wenn du dir die Logfiles genau ansiehst, wirst du erkennen, dass zu gewünschten "Aussparungen" praktisch keine Daten einlaufen.
Um 23:00 wird der Tageswert geschrieben.

ZitatDann wäre es noch super wenn man den Graphen in der Höhe vergrößern könnte, wo finde ich den Parameter der das Format vorgibt?

Die Y-Achse lässt sich wie
hier (http://forum.fhem.de/index.php?topic=13508.msg87614#msg87614)
gezeigt unter "Range as [min:max] einstellen.

John

Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 19 August 2013, 17:56:15
Hi danke fuer das Feedback.

also keine chance die Zeitachse auf z.B. 5-22 Uhr zu skalieren, ich muss mir die Nulllinie in der Zeit bis 5:00 und ab 22:00 angucken. Schade.


Und bei der y-Achse meinte ich nicht die Skalierung sondern die absolute Hoehe des Graphen, ist aber vermutlich ebenso fest wie die Breite des Graphen, vermute ich mal.

Nochmal Schade
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 26 August 2013, 08:32:08
Hallo, noch ne Frage.

Ich moechte gern von der Sonneneinstrahlung (Wechselrichter.AC-Power) abhaengig einen Aktor (Pumpe) schalten und in einem Plot beide Werte monitoren. ( die Pumpe hat noch wietere Regeln wann sie auch noch schalten soll)

Das schalten krieg ich ja noch hin, aber fuer den Plot brauche ich ein Log das aus zwei Quellen gefuettert wird, naemlich dem Aktor( Pumpe an oder aus) und Wechselrichter (Ac.Power)

Wie mach ich das?
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 26 August 2013, 08:48:11
Hi, obige Frage kann ich mir dann doch einfach selbst beantworten. sorry.

Die Loesung ist ein Log nur fuer die AC.Power zu bauen und dann in dem Log fuer den Aktor ein

Set Absorb logfile2

zu machen, damit gibt es nur noch ein Log in dem beides augezeichnet wird.

Ja ich weiss wer lesen kann ist klar im Vorteil.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 26 August 2013, 11:16:40
....nun aber noch ne richtige Frage.

Wenn ich denn nun in Abhaengigkeit von AC.Power schalten will wie lautet dann die Syntax?

Das hier funktioniert nicht, bringt aber auch keinen Fehler

define Pool2 notify Wechselrichter.AC.Power: >1000 Set Poolpumpe on

und das ergibt einen Fehler da die Klammern keinen Sinn machen:

define Pool2 notify (Wechselrichter AC.Power:) >1000 Set Poolpumpe on
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 26 August 2013, 16:38:31
hi,

...und noch ne Frage....


Ist da irgendeinweg um noch die Steuerkontakte des Wechselrichters abzufragen? Dareueber kann man ja z.B. die Temeperatur der module messen.

Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 26 August 2013, 16:47:58
Probier das mal so

define Pool2 notify Wechselrichter AC.Power: > 1000 set Poolpumpe on

Nur ich weiß nicht ob das so geht wie oben geschrieben.

Wenn nicht dann musst du das so machen:

define Pool2 notify Wechselrichter:.* {\
if (ReadingsVal("Wechselrichter", "AC.Power.Fast", "") > 1000) {\
 fhem ("set Poolpumpe on");;\
 }\
else {\
 fhem ("set Poolpumpe off");;\
 }\
}


Blöd ist nur das er bei jedem Event von dem KOSTALPIKO.pm die Routine abarbeitet.
Kannst noch ein paar Ifs einbauen um unnötige Abschaltbefehle zu vermeiden.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 27 August 2013, 15:24:27
Hi, Danke das einschalten funktioniert. Daneben hab ich noch feste einschaltzeiten....

Nun gehts ans ausschalten das nur zwischen 15-17 Uhr erfolgen darf und ur wenn wenig bis keine sonne scheint.

Das hab ich so versucht zu realisieren:

Wechselrichter:.* {if ($now> 15:00)&&($now< 17:00)&&(ReadingsVal("Wechselrichter", "AC.Power", "") < 2500) { fhem ("set Poolpumpe off")}}

Leider gibt es aber probleme mit dem $now

Was mach ich hier falsch?
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 27 August 2013, 16:51:54
nimm Anstatt $now $hour als Wert dann z.B. 17

{if ($hour > 15)&&($hour < 17)&&(ReadingsVal("Wechselrichter", "AC.Power", "") < 2500) {fhem ("set Poolpumpe off")}}

Hab es nicht getestet. Sollte aber klappen.

Ich weiss nicht wie $now definiert ist.  
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 28 August 2013, 09:05:18
hi, klappt leider noch nicht.

Also der erste Befehl funktioniert, der zweite leider nicht. wie muss ich den zweiten Befehl aendern?

define PoolbeiSonne notify Wechselrichter:.* {if (ReadingsVal("Wechselrichter", "AC.Power", "") > 1500) {if("Poolpumpe" eq "off"){fhem ("set Poolpumpe on")}}}

define PoolkeineSonne notify Wechselrichter:.* {if ((ReadingsVal("Wechselrichter", "AC.Power", "") < 1400)&&($hour> 15)&&($hour< 17)) { fhem ("set Poolpumpe off")}}

Der einzige Unterschied ist eigentlich nur der das ich 3 Bedingungen habe statt nur einer wie im ersten Beispiel. Klingt so simpel und ist doch so schwierig.

die Fehlermeldung lautet:

2013.08.28 09:03:51 3: PoolkeineSonne return value: Unknown command {if, try help
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 28 August 2013, 09:47:52


define PoolkeineSonne notify Wechselrichter:.* {if (ReadingsVal("Wechselrichter", "AC.Power", "") < 1400 && $hour > "15" && $hour < "17") {fhem ("set Poolpumpe off")}}



Probier es mal so. Ich hoffe da sind keine Zeichenfehler mehr drin. Für mich ist das in einer Zeile schreiben unübersichtlich.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 28 August 2013, 15:08:27
Hi klappt leider nicht.

ich hab nun beide Versionen in einer Zeile die nicht funktionieren mal im Vergleich, nehme aber auch gerne die mit Zeielnumbruch

nochmal das geht (eine Bedingung)
define Pool5 notify Wechselrichter:.* {if (ReadingsVal("Wechselrichter", "AC.Power", "") < 1400) { fhem ("set Poolpumpe off")}}

und das mit 3 Bedingungen nicht. (egal ob die 3 in Klammern stehen oder nicht)

define PoolkeineSonne notify Wechselrichter:.* {if ((ReadingsVal("Wechselrichter", "AC.Power", "") < 1400)&& ($hour> 15)&& ($hour< 17)) { fhem ("set Poolpumpe off")}}

define PoolkeineSonne notify Wechselrichter:.* {if (ReadingsVal("Wechselrichter", "AC.Power", "") < 1400 && $hour > "15" && $hour < "17") {fhem ("set Poolpumpe off")}}

Was ich eh nocht nicht in dem code kapiere ist das: Wechselrichter:.*
Was soll das? Ist das der Killer?

Eigentlich ist doch: ReadingsVal("Wechselrichter", "AC.Power", "") < 1400
eine vernuenftige Abfrage. Warum muss dieses "Wechselrichter:.*" noch vor dem IF stehen? Bewege ich mich eventuell nun nur innerhalb des Wechselrichters und somit klappt "$hour" nicht mehr?
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 28 August 2013, 15:25:35
mit Zeielenumbruch solle es dann das sein, richtig?:

define PoolkeineSonne notify Wechselrichter:.* {\
 if (ReadingsVal("Wechselrichter", "AC.Power", "") < 1400)&&\
 ($hour> 15)&&\
 ($hour< 17) {\
 fhem ("set Poolpumpe off");;\
}\
}
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 28 August 2013, 15:38:51
Das Wechselrichter:.* bedeutet soviel wie das jedes Event vom Wechselrichter was gefeuert wird diese Routine abarbeiten lässt.

Mit ReadginsVal liest du aus die Readings aus. Die in deinem definierten Wechselrichter stehen.


Die generierten Events sind nicht eindeutig da der State irgendwas mit W: 1220 MPP einspeisen ist, klick mal auf Eventmonitor und schau was da so kommt.

Deswegen der Weg:

Wechselrichter sendet irgendwas -> notify löst aus -> mit dem IF wird geprüft ob in den Readings AC.Power der Wert X steht wenn true mach das in dem Fall set Poolpumpe off.

Den Code hab ich getestet mal flott. der geht. Weiß ja nicht wie das Wetter bei dir ist, hier ist gerade über 1400 Watt deswegen gt du möchtest ja lt.

define notify_Test notify Wechselrichter:.* {\
if (ReadingsVal("Wechselrichter", "AC.Power", "") gt 1400 && $hour > "15" && $hour < "17")\
 {\
 fhem ("set Poolpumpe off");;\
 }\
Log 3, "True @ $hour";;\
}


Achso was ich vergas, der code zieht natürlich nur zwischen 15 und 17 Uhr bedeutet nur von 16:00 - 16:59Uhr. >= <= wäre dann die Abwandlung ;)



Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 02 September 2013, 11:23:39
hi, funktioniert soweit uasser das ich statt GT doch das Zeichen ">" benutzen muss. keine Ahnung warum....


Um jetzt die Funkbefhele zu minimieren wollte ich in die IF Schleife auch och einfuegen das er nur EIN schaltet wenn der Schalter aud AUS steht, dann braucht er nicht alle paar Minuten zu wiederholen, nur weil die Sonne scheint. Klappt aber auch wieder nicht.

Mein code sieht so aus:
define PoolbeiSonne notify (5min_check|global:INITIALIZED) {\
if ("Poolpumpe" eq "on") &&(ReadingsVal("Wechselrichter", "AC.Power", "") > 2500))\
 {\
 fhem ("set Poolpumpe on");;\
 }\
}

Es gibt keine Fehlermeldung, aber die Pumpe schaltet nicht. Loesche ich hingegen den kursiven Teil, dann klappts. Was mach ich denn nun shcon wieder falsch?
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: betateilchen am 02 September 2013, 12:16:42
Zitatdas ich statt GT doch das Zeichen ">" benutzen muss. keine Ahnung warum

weil 1400 numerisch ist und kein String "1400"

Zitatif ("Poolpumpe" eq "on")

Das Wort Poolpumpe ist nunmal ein völlig anderes Wort als das Wort "on", deshalb kann der Vergleich mit "eq" (und damit Deine gesamte mit logischem UND verknüpfte Bedingung) niemals wahr werden. Der Vergleich an sich ist syntaktisch völlig richtig, wenn auch sinnlos, deshalb gibt es keine Fehlermeldung.

Vermutlich willst Du den WERT von "Poolpumpe" abfragen, also Value("Poolpumpe"), das würde ein bißchen mehr Sinn machen ;)
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: AK-868 am 02 September 2013, 18:51:51
Hallo Betateilchen,

kannst mir das nochmal erklaeren?

Ist gt und lt nicht das gleiche wie > <  ?

Bei mir lief der code mit gt.




Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: betateilchen am 02 September 2013, 19:01:47
Grundsätzlich ist entscheidend, ob Du numerische Werte oder Zeichenketten vergleichen willst.
Dafür gibt es unterschiedliche Vergleichsoperatoren.

14 ist eine Zahl (numerischer Wert), da vergleichst Du mit < > = !=
"14" ist ein Text (Zeichenkette), da vergleichst Du mit lt gt eq ne

Hier findest Du ausführliche Erklärungen:

http://de.selfhtml.org/perl/sprache/operatoren.htm (//de.selfhtml.org/perl/sprache/operatoren.htm)



---
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 03 September 2013, 09:46:22
hi, vielen dank, so  langsam komme ich dahinter.

Ich habe nun die Poolpumpe im Griff. sie schaltet immer ein wenn genug Sonne scheint und wenn der Poolrolladen offen ist sowie zu bestimmten Schaltzeiten.

Nun waere perfekt wenn ich irgendiwe die Zeit messen kann in der die Pumpe laeuft. Dann koennte ich die zeitabhaengige Regelung anpassen da diese eigentlich nur sicherstellen soll das eine gewisse mindestdauer pro Tag eingehalten wird.

Es gibt doch da siche reine moeglichkeit eine Variable zu definieren und irgendwie einen Zaehler mit zu verknuepfen, oder?

Danke fuer die Tipps.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: betateilchen am 03 September 2013, 10:49:19
natürlich. Vom Timestamp des Ausschaltens den Timestamp des Einschaltens abziehen und schon hast Du die Laufzeit. Und die addierst speicherst Du irgendwo, z.B. in einem userreading oder zur Not sogar in einem Attribut.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 03 September 2013, 13:24:55
Hi, klase Idee,

da ich ja an einem Tag unbekannt viele Schaltvorgaengehabe ( immer bei Sonne ein, und bei sonne weg aus) summiere ich dann also alle ausschaltzeiten und ziehe davon die summe aller einschaltzeiten ab und shcon hab ich die Laufzeit, cool. Werd ich mal ausprobieren.



Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: betateilchen am 03 September 2013, 13:51:06
hä?

Du musst die Summe bei jedem Abschalten ermitteln. Alles andere dürfte kompliziert werden.
Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 04 September 2013, 16:51:59
Hi, nun die ganze schalterei der Pumpe wird ziemlich kompliziert, also hab ich mich entschlossen das lieber in die 99_myUtils.pm zu packen. Was ich soweit habe ist das hier:

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
 my ($hash) = @_;
}
##########################################################
# Poolpumpensteuerung
# Aufruf in fhem.cfg mit
#      define Poolpumpenparameter notify (5min_check|global:INITIALIZED) ..
#                       ..{Pool(an1, aus1, an2, aus2, Tagesdauer, minPV)}
# an1 und aus1 ist das erste Zeitschaltpaar zwischen der die Poolpumpe an sein muss
# an2 und aus2 ist das zweite Zeitschaltpaar zwischen der die Poolpumpe an sein muss
# Tagesdauer gibt die maximale Laufzeit pro Tag an, sobald erreicht schaltet Pumpe aus
# die Pumpe geht auch an wenn die PV anlage mindestens x kwh Stom produziert,
# abschalten erfolgt dann bei 10% weniger
# damit alles funktioniert sind folgende Geraete in fhem.cfg
#   define Poolpumpe CUL_HM xxxxx das zu steuernde Geraet
#   define Wechselrichter KOSTALPIKO xxxx  liefert den PV Strom als reading "AC.Power"
#   define Poolog Filelog xxxxx liefert die Laufzeit der Pumpe
##########################################################

sub Pool($$$$$$){
my ($an1, $aus1, $an2, $aus2, $Tagesdauer, $minPV) = @_;

$Laufzeit_Poolpumpe_erreicht = ????

if (((Value("Poolpumpe") eq "off") && $hour == $an1)||
    ((Value("Poolpumpe") eq "off") && $hour == $an2))||
    ((Value("Poolpumpe") eq "off") && (ReadingsVal("Wechselrichter", "AC.Power", "") > $minPV))||{
   fhem("set Poolpumpe on");
  }

if (((Value("Poolpumpe") eq "on") &&
    ($hour <= $an1||($hour >= $aus1 && $hour <= $an2) || $hour >= $aus2) &&
    (ReadingsVal("Wechselrichter", "AC.Power", "") < ($minPV * 0.9) ||
    (Laufzeit_Poolpumpe_erreicht){
   fhem("set Poolpumpe off");
  }

}

1;

Leider ist der code nicht getestet. Gibt es dafuer sowas wie einen debug modus das man schritt fuer schritt durchspielt und sieht wie welche Variable reagiert? waere toll.

Nun aber zurueck zu dem Problem. Ich habe hier noch offen die Laufzeit der Pumpe zu ermitteln. Mein Logfile hat folgende Eintraege:

2013.09.04 15:02:56 2: CUL_HM set Poolpumpe on

Ich habe auch noch ein Poolspezifisches Logfile definiert mit:

define Log_Pool FileLog ./log/Homematic-Pool-%Y.log Pool.*level.*

das liefert diesen eintrag:

2013-08-20_18:05:34 Poolpumpe level: 100 %
2013-08-20_18:05:40 Poolpumpe level: 0 %

Aber wie lese ich die Werte nun aus?

Das hier klappt ja wohl nicht so ganz:

$Logzeit = (ReadingsVal("Log_Pool", "2013-$month-$day_", "")

Ich hab da leider nix imForum gefunden, ich hoffe ich bin einigermassen nah dran, aber ohne tipps komm ich hier leider nicht weiter.

Danke nochmals fuer die Unterstuetzung






Titel: Aw: Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 04 September 2013, 18:10:17
Hallo Heiner,
ich habe für einen Max-Fensterkontakt einen Betriebsstundenzähler programmiert.

Ich messe damit die Einschaltdauer meines Brenners und die Brennerstarts.

Das Reading cntOntimePerDayHours ist der Betriebsstundenzähler über den Tag.
Der Zähler wird bei Tageswechsel automatisch zurückgesetzt.
Man kann statt des Stundenzählers auch den Sekundenzähler cntOntimePerDaySeconds verwenden.

Der Link zum Thema
Link (http://forum.fhem.de/index.php?topic=12216.msg72596#msg72596)

Vielleicht hilft dir das etwas weiter.

Gruß
John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: budda85 am 05 November 2013, 20:13:20
Hallo zusammen,
ich beschäftige mich erst seit kurzem mit FHEM.
Ich habe das Kostal Modul bei mir eingerichtet bekommen, allerdings werden bei mir ALLE Werte geloggt, statt nur den gewolten.
Vielleicht kann mir ja einer sagen was ich falsch gemacht habe.
Danke für das super Modul.

Gruß Jan

Hier mein Code

##################################
#           KOSTAL PICO
##################################

define Kostal KOSTALPIKO 192.****** pvserver pvwr
attr Kostal GR.Link http://www.proplanta.de/Wetter/************-Wetter-Heute.html
attr Kostal delay 300
attr Kostal loglevel 4
attr Kostal room 80_Steuerung
attr Kostal userReadings EnergyExpected:Global.Radiation { return ReadingsVal("Kostal","Global.Radiation",0)*66*0.10;;}

# log-files definieren
define Kostal.File FileLog ./log/Kostal-%Y.log Kostal
attr Kostal.File logtype Kostal:AC.Power|Daily.Energy|Total.Energy|ModeNum|EnergyExpected,text
attr Kostal.File room 90_Log_Files

define SVG_Kostal.File_1 weblink fileplot Kostal.File:SVG_Kostal.File_1:CURRENT
attr SVG_Kostal.File_1 room 20_PV_Anlage

define Kostal.File_2 FileLog ./log/Kostal_2-%Y.log Kostal
attr Kostal.File_2 logtype Kostal:Daily.Energy.Last,text
attr Kostal.File_2 room 90_Log_Files

define SVG_Kostal.File_2 weblink fileplot Kostal.File_2:SVG_Kostal.File_2:CURRENT
attr SVG_Kostal.File_2 fixedrange month
attr SVG_Kostal.File_2 room 20_PV_Anlage
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 06 November 2013, 11:50:48
Hallo Jan

verssuchs mal damit:


define Kostal.File FileLog ./log/Kostal-%Y.log Kostal:(AC.Power:|Daily.Energy:|Daily.Energy.Last:|Total.Energy:|ModeNum:|EnergyExpected:).*
attr Kostal.File logtype text
attr Kostal.File room 90_Log_Files


John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: budda85 am 07 November 2013, 13:02:08
Hi John,
scheint zu klappen, DANKE!

Vielleicht nochmal für mein Verständnis:
define Kostal.File FileLog ./log/Kostal-%Y.log Kostal:(AC.Power:|Daily.Energy:|Daily.Energy.Last:|Total.Energy:|ModeNum:|EnergyExpected:).*

Ich definiere ein FileLog mit dem Namen Kostal.File, was in den Ordner log unter Kostal-2013.log gespeichert wird. Nun will ich aus meinem Kostal (der vorher als KOSTALPIKO) definiert wird, nur die Werte in der Klammer haben.
Was aber bedeutet das .* ?

Regexp.png:
Da sehe ich jetzt meine gefilterten Werte richtig?
Nur sehen für mich der erste und letzte Wert nicht richtig aus mit den Klammern  :o :D


Was bedeutet der Blog im Anhang: Logfile Übersicht.png?

Sorry für ganzen Fragen, aber ich persönlich lerne die solche Sachen schneller durchs machen und ausprobieren, statt durchs lesen  :P ;)
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 07 November 2013, 13:44:20
Hallo Jan,
viele Definitionen unter FHEM kann man mit RegularExpressions vornehmen.
Perl unterstützt diese sehr gut.
Also empfehle ich dir, dich damit auseinanderzusetzen.

Ich teile dein Unverständnis zu Regexp.png.

zum Thema:
im Comandref zu Filelog findet man
ZitatThe regexp will be checked against the device name devicename:event

<devicename> : hier ist das Device einzutragen, von dem wir die Events speichern wollen, also Kostal; könnte wohl auch
                        ein regexp sein, wenn wir mehrere Kostals hätten
":"                     der Separator für die Beschreibung der Events, die wir haben wollen
<event>          : das ist die Beschreibung für die Events, die wir haben wollen als REGEXP

<event> betrachten wir näher:
Zitat(AC.Power:|Daily.Energy:|Daily.Energy.Last:|Total.Energy:|ModeNum:|EnergyExpected:).*

()   bedeutet, dass nun mehrere Varianten an dieser Textstelle möglich sind , um einen Treffer zu landen
|    ist eine logische Oderung der einzelnen Ausdrücke

.    steht für ein belieges Zeichen
*  das 0-n-mal auftreten kann  (es ist also egal was hinterher noch an Zeichen kommt)

Als Hilfe nehmen wir einen Auszug aus dem Event-Monitor:


2013-11-07 13:37:39 KOSTALPIKO Kostal AC.Power: 3952
2013-11-07 13:37:39 KOSTALPIKO Kostal AC.Power.Fast: 3952
2013-11-07 13:37:39 KOSTALPIKO Kostal W: 3952 - Einspeisen MPP


Wir betrachten die erste Zeile: KOSTALPIKO ist das device.
es geht also um folgenden Ausdruck:  "AC.Power: 3952"

"AC.Power:"    Ist eine Variante in unserem Ausdruck (AC.Power:|Daily.Energy:|Daily.Energy.Last:|Total.Energy:|ModeNum:|EnergyExpected:)
" 3952"           mit .* akzeptieren wir alles was danach kommt.

Ergebnis: die Zeile ist ein Treffer für unseren Filter.

John

Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: budda85 am 07 November 2013, 18:41:28
Ahhaaaa!
Na das hab ich jetzt verstanden. ;D
Großen Dank an dich für die super Beschreibung.

Die RegularExpressions sehe ich mir dann nochmal genauer an.
Danke nochmals.
Titel: readingwerte multiplizieren- Kostal PIKO Wechselrichter
Beitrag von: Heiner am 23 April 2014, 08:30:12
Hallo,
ich hab auch den Kostal Piko im einsatz. Um die Leistung pro String zu plotten muesste ich die gegebenen Readings Spannung String 1 Strom String 1 usw. mit einander multiplizieren. Wie geht das?

Geht das nur in der Kostal.pm oder auch innerhalb der fhem.cfg mit einem Dummy oder so oder sogar innerhalb des SVG Plot?

Vielen Dank fuer die Hilfe.
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 23 April 2014, 18:34:11
Hallo Heiner,
da solltest du dir die UserReadings in der Commandref genauer ansehen.

Hier kann man eigene Readings von bestehenden ableiten.

John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 03 Mai 2014, 11:33:33
hi ich versuchs aber schaffe es leider nicht.

mein
attr Wechselrichter userreadings Generator.1.power:generator.1.current { return ReadingsVal("Wechselrichter","generator.1.current",0) * return ReadingsVal("Wechselrichter","generator.1.voltage",0)}

erzeugt noch  nicht einmal das neue Reading Generator.1.power
geschweige denn das es die Berechnung ausführen würde.

Danke für die Hilfe
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 04 Mai 2014, 13:23:36
Hallo Heiner,

ich hab das mal selbst probiert und es gibt das tatsächlich einige Hürden.

Folgendes funktioniert: (immer alles in einer Zeile)
attr Kostal userReadings generator_3_power {return ReadingsVal("Kostal","generator.3.current",0)*ReadingsVal("Kostal","generator.3.voltage",0);;}

Das geht nicht: (scheinbar darf der Name für das neue Reading keine Punkte enthalten)
attr Kostal userReadings generator.3.power {return ReadingsVal("Kostal","generator.3.current",0)*ReadingsVal("Kostal","generator.3.voltage",0);;}

Wenn wir die Triggerbedingung noch sinnvoll einschränken siehts so aus:
attr Kostal userReadings generator_3_power:generator.3.* {return ReadingsVal("Kostal","generator.3.current",0)*ReadingsVal("Kostal","generator.3.voltage",0);;}

Wenn das ganze zusammen mit EnergyExpected funktionieren soll: (alles in einer Zeile)
attr Kostal userReadings EnergyExpected:Global.Radiation {return ReadingsVal("Kostal","Global.Radiation",0)*37*0.10;;},generator_3_power:generator.3.* {return ReadingsVal("Kostal","generator.3.current",0)*ReadingsVal("Kostal","generator.3.voltage",0);;}

Ich hoffe das hilft weiter.

John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 17 Mai 2014, 17:50:52
Hallo, nochmal was ganz anderes. Ich hab einen HMLAN im Einsatz und meinen Kostalwechelrichter. DER HMLAN erzeugt immer wieder disconnects weil ein KeepAlive Signal um mehr als 5 Sekunden verzoegert wird.

Nach einigen Analysen  mit den Experten in Homemmatic stellten wir fest das die Ursache beim Kostalmodul zu liegen scheint, Hier sagt
apptime maxDly
                         name                function                max   count    total     average    maxDly
tmr-KOSTALPIKO_GetStatus       HASH(0xd14da8)   6194   1233   752921   610.64    674 HASH(0xd14da8)

das bedeutet das die Abfrage bis zu 6.2 Sekunden dauert.

Kann man daran was aendern?

Im Moment habe ich den delay auf 60, und den delaycounter auf 5, ich wird das mal auf 300 und 1 aendern auch wenn ich dann die Fastabfrage verliere.( Soolte aber nichts ändern oder?)

Kann man sonst noch was machen?

Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: Joachim am 17 Mai 2014, 19:16:33
Moin Heiner,
ich habe zwar keinen Kostalwechelrichter, aber eine Lösung wäre, den Wechselrichter in eine eigene FHEM-Instanz auszulagern, und die Daten dann mit FHEM2FHEM und cloneDummy an die Hauptinstanz zu übergeben.
Passende Links, auch wenn es nicht um einen Kostalwechselrichter geht:

http://forum.fhem.de/index.php/topic,21654.0.html
http://forum.fhem.de/index.php/topic,23638.0.html
http://forum.fhem.de/index.php/topic,22469.0.html

Gruß Joachim
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 18 Mai 2014, 12:06:04
Hallo Heiner,
ich vermute, das Problem liegt bei der Erfassung der Globalstrahlung.

Damit wir die Ursache finden, solltest du ab Zeile 498 folgende Zeilen auskommentieren

   # stündlich Globalstrahlung aktualisieren
  # if ( $hour != $hash->{"GR.Hour"} || !defined($hash->{READINGS}{"Global.Radiation"}{VAL})) {
  #   KOSTAL_GetGlobalRadiation($hash);
  #   $hash->{"GR.Hour"} =$hour;
  # }


Wenn das beschriebene Problem danach verschwunden ist, kennen wir den Grund und können weiter sehen.

John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 26 Mai 2014, 13:37:35
Hi,

ich habs auskomentiert und das Ergebnis lautet:

tmr-KOSTALPIKO_GetStatus       HASH(0xd24098)    579      1      579   579.00      4 HASH(0xd24098)

etwas schneller aber immer noch sehr langsam.
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 26 Mai 2014, 19:36:12
Hi Heiner,
wenn du die WEB-Seite http://<ip-kostal>/index.fhtml
aufrufst, wie lange dauert das ?

Schick mal bitte ein
list <dein-Kostal>

John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 27 Mai 2014, 18:00:57
Hi, der Aufruf geht wie der Blitz, dann Name und Passwort eingeben und nochmal ca. 1/4 sekunde und schon seh ich die Seite.
Ich nutze FHEM auf der Fritzbox 7390 und an einem LAN-Port ist der Wechselrichter.

und hier der List:
ZitatInternals:
   DEF        192.xxx.xxx.xxx xxxx xxx
   GR.Hour    25
   Host       192.xxx.xxx.xx
   NAME       Wechselrichter
   NR         83
   Pass       pvwr
   STATE      W: 748 - Einspeisen MPP
   TYPE       KOSTALPIKO
   User       pvserver
   delayCounter 1
   Readings:
     2014-05-27 17:54:50   AC.Power        748
     2014-05-27 17:54:50   AC.Power.Fast   748
     2014-05-27 17:54:50   Daily.Energy    14.25
     2014-05-26 23:04:47   Daily.Energy.Last 19.05
     2014-05-24 14:01:03   EnergyExpected  34.2528
     2014-05-24 14:01:03   Global.Radiation 6.4
     2014-05-27 05:54:48   Mode            Einspeisen MPP
     2014-05-27 05:54:48   ModeNum         2
     2014-05-27 17:09:50   Total.Energy    9346
     2014-05-27 17:54:50   generator.1.current 1.05
     2014-05-27 17:54:50   generator.1.voltage 533
     2014-05-27 05:39:48   generator.2.current 0.00
     2014-03-15 17:43:18   generator.2.voltage 0
     2014-05-27 17:54:50   generator.3.current 1.02
     2014-05-27 17:54:50   generator.3.voltage 234
     2014-05-27 17:54:50   generator1power 559.65
     2014-05-27 17:54:50   generator3power 238.68
     2014-05-27 17:54:50   output.1.power  253
     2014-05-27 17:54:50   output.1.voltage 230
     2014-05-27 17:54:50   output.2.power  249
     2014-05-27 17:49:50   output.2.voltage 229
     2014-05-27 17:54:50   output.3.power  246
     2014-05-27 17:39:50   output.3.voltage 229
     2014-05-27 17:54:50   state           W: 748 - Einspeisen MPP
Attributes:
   GR.Link    http://www.proplanta.de/Wetter/Mainz-Wetter.html
   alias      Wechselrichter
   delay      300
   delayCounter 1
   group      KOSTALPIKO
   loglevel   4
   room       Photovoltaik
   userReadings generator1power:generator.1.* {return ReadingsVal("Wechselrichter","generator.1.current",0)*ReadingsVal("Wechselrichter","generator.1.voltage",0);},generator3power:generator.3.* {return ReadingsVal("Wechselrichter","generator.3.current",0)*ReadingsVal("Wechselrichter","generator.3.voltage",0);},EnergyExpected:Global.Radiation { return ReadingsVal("Wechselrichter","Global.Radiation",0)*44.6*0.12;}


Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 01 Juni 2014, 22:58:33
Hallo Heiner,

ich habe das Problem erkannt.

Das Parsen der HTML-Seite dauert auf meinem Raspi ca. 3 Sekunden. Die Fritzbox wird deutlich  langsamer sein.
Das Problem liegt also vermutlich nicht bei der Erfassung der Web-Seiten, sondern bei deren Auswertung.

Ich denke über eine Lösung nach.

John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: John am 09 Juni 2014, 00:41:06
Ich habe nun die Version 2.0 von KostalPiko aufgelegt und damit ein neues Thema begonnen.

Informationen hierzu unter
http://forum.fhem.de/index.php/topic,24409.0.html (http://forum.fhem.de/index.php/topic,24409.0.html)

Alle weiteren Fragen und Änderungen werden von nun an dort behandelt.

@Heiner
ich hoffe damit sind nun die von dir geschilderten Probleme erledigt.

Über Rückmeldungen freue ich mich.

John
Titel: Antw:Modul für den Kostal PIKO Wechselrichter
Beitrag von: Heiner am 16 Juni 2014, 09:48:02
Hallo,

sorry hat ein wenig gedauert aber ja alle Probleme sind erledigt, passt jetzt. super Vielen lieben Dank.