Modul für den Kostal PIKO Wechselrichter V2.0

Begonnen von John, 09 Juni 2014, 00:36:52

Vorheriges Thema - Nächstes Thema

horsepower


John

Hallo jannik,

prima Arbeit.

Ich habe einige Stellen noch angepasst.

Attribut BAEnable auf 1 stellen, dann wird die Seite erfasst.

Bitte testen und Feedback. Danach checke ich die neue Version ein.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

horsepower

Hallo John,

mir ist aufgefallen, dass sich die Werte in deiner Version nicht mehr automatisch aktualisieren. :o

Betroffen sind die Werte Power.Net usw.

Bitte mal Prüfen.

John

ZitatAttribut BAEnable auf 1 stellen
hast du das gemacht ?

Wenn ja, bitte verbose auf 5 und Log-file reinstellen und ein list<deinPiko> .

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

jannik_78

Hallo John,

mit meinem KostalPiko BA geht es! Danke noch für die Anpassung!
Gruß Jannik



horsepower

Hallo John,

ja geht jetzt. Schande über mein Haupt. :-\

Danke  ;D

John

Kein Problem.

Ich freue mich auf die das aktualisierte WIKI.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

erwin

Hi John,
erstmal vielen Dank für das Modul, ich habe vorigen Freitag meinen KOSTAL Piko 7.0 installiert bekommen, das LAN angesteckt und ? Läuft!

eine Kleinigkeit ist mir aufgefallen:
bei mir gibts ein reading  generator.3.voltage - dafür fehlt das reading output.3.voltage..

....
generator.2.voltage 625
generator.3.voltage 231  #### das sollte output.3.voltage heissen....? Environment: 2 DC-Strings - 3 Phasen AC - da liegt wohl das Problem
output.1.power 443
output.1.voltage 235
output.2.power 414
output.2.voltage 232
output.3.power 357
sensor.1 0.00
....

ein kurzer Blick in den code hat mir gezeigt, dass das Problem an der Variable $index (zeile 716ff) liegt. (Bzw. an der Art wie die KOSTAL Web-Seite designed ist....)
Ich hab's für mich jetzt mal so gefixed:

#line 716ff:
#          $rdName = "generator.$strang.voltage" if ( $tag eq "Spannung" && $index == 1 );
#          $rdName = "output.$strang.voltage"    if ( $tag eq "Spannung" && $index == 2 );
          $rdName = "generator.$strang.voltage" if ( $tag eq "Spannung" && $index == 1 && $strang < 3);
          $rdName = "output.$strang.voltage"    if ( $tag eq "Spannung" && ($index == 2 || $strang == 3));

.. wobei das sicher kein allgemein gültiger Ansatz ist.
Brauchst du einen screenshot oder HTML-datei?

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

John

Hallo Erwin,
die HTML-Datei wäre hilfreich.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

erwin

FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

satdast

Erstmal Hallo Zusammen,

dies scheint am Piko 7.0 zu liegen, das dieser nur zwei DC Eingänge besitzt.
Ich bin zwar nicht der Profi im Code schreiben, aber der Workaround von Erwin hat mir weitergeholfen, Dafür Vielen Dank. :D

Es wäre wahrscheinlich nicht schlecht, vielleicht die Type auslesen oder die Anzahl der DC-Eingänge als Attribut mit einzubinden?
Leider weiß ich nicht wie das in Perl gemacht wird.

Aber vielleicht hilft hier ein Denkansatz als mögliche Idee. ;)

schöne Grüße Stefan



jannik_78

Hallo John,
ich hab noch ein Problem, auf einem langsamen Rechner (Olinuxino) bekomme ich das Modul KostalPiko nicht zu Laufen.
beim Abfragen bekomme ich den Fehler :" Timeout for KOSTALPIKO_StatusRun reached, terminated process 686"

wo kann ich das Timeout im Modul festlegen?
Alle anderen Module von mir benötigten von FHEM laufen somit liegt es nicht an der Netzwerkanbindung.
Gib mir mal ein Tipp wo ich suchen soll, dann probiere ich das mal aus.

Gruß Jannik

John

Hallo Jannik,
schick bitte ein
list <dein KostalPiko>

Ergebnis von
ping www.proplanta.de

Ergebnis von
ping <ip-adresse deines KostalPikos>


Welchen Olinuxino hast du genau ?


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

jannik_78

Hallo John,

es ist ein A20 Olinuxino board.
Gruß Jannik


list Kostal:
Internals:
   DEF        192.168.2.26 [user] [password]
   NAME       Kostal
   NR         529
   STATE      W: 237 - Einspeisen MPP
   TYPE       KOSTALPIKO
   VERSION    2.05
   Readings:
     2014-12-07 11:23:14   0               0
     2015-01-11 11:17:33   AC.Power        237
     2015-01-11 11:17:33   AC.Power.Fast   237
     2014-12-06 15:36:03   Battery.ChargeCurrent 0.00
     2014-12-07 13:38:21   Battery.CycleCount 0
     2014-12-06 15:36:03   Battery.Cycles  0
     2014-12-06 15:36:03   Battery.StateOfCharge 0.0
     2014-12-06 19:30:44   Battery.Temperature 0.0
     2014-12-06 15:36:03   Battery.Voltage 0
     2015-01-11 11:15:33   Daily.Energy    0.20
     2015-01-02 23:00:11   Daily.Energy.Last 2.82
     2015-01-11 10:30:43   EnergyExpected  3.3
     2015-01-11 10:30:43   Global.Radiation 1.1
     2015-01-11 10:44:33   Mode            Einspeisen MPP
     2015-01-11 10:44:33   ModeNum         2
     2015-01-11 10:42:32   Power.Battery   0.0
     2015-01-11 11:17:33   Power.Net       3678.4
     2015-01-11 11:17:33   Power.Phase1    492.5
     2015-01-11 11:17:33   Power.Phase2    224.0
     2015-01-11 11:17:33   Power.Phase3    3198.9
     2015-01-11 11:17:33   Power.Solar     237.1
     2015-01-10 15:52:03   Total.Energy    260
     2015-01-11 10:30:43   UV.Index        2
     2015-01-11 11:16:33   generator.1.current 0.43
     2015-01-11 11:17:33   generator.1.voltage 380
     2015-01-11 11:17:33   generator.2.current 0.41
     2015-01-11 11:16:33   generator.2.voltage 419
     2015-01-11 11:16:33   generator.3.voltage 239
     2015-01-11 11:17:33   output.1.power  79
     2015-01-11 11:08:33   output.1.voltage 238
     2015-01-11 11:17:33   output.2.power  78
     2015-01-11 11:16:33   output.2.voltage 237
     2015-01-11 11:17:33   output.3.power  79
     2015-01-11 11:16:33   sensor.1        0.00
     2015-01-11 11:16:33   sensor.2        0.00
     2015-01-11 11:00:32   sensor.3        0.00
     2015-01-11 11:03:33   sensor.4        0.00
     2015-01-11 11:17:33   state           W: 237 - Einspeisen MPP
     2015-01-11 10:30:43   sunshine.duration 30
   Helper:
     GRHour     25
     Host       192.168.2.26
     Pass       pvwr
     TimerGR    Kostal.GR
     TimerGRInterval 3600
     TimerInterval 60
     TimerStatus Kostal.STATUS
     User       pvserver
     delayCounter 0
     Running_gr:
       abortFn    KOSTALPIKO_GrAborted
       finishFn   KOSTALPIKO_GrDone
       fn         KOSTALPIKO_GrRun
       pid        10593
       Abortarg:
     Running_status:
       abortFn    KOSTALPIKO_StatusAborted
       finishFn   KOSTALPIKO_StatusDone
       fn         KOSTALPIKO_StatusRun
       pid        10533
       Abortarg:
Attributes:
   BAEnable   1
   GR.Interval 3600
   GR.Link    http://www.proplanta.de/Wetter/Tuttlingen-Wetter-Heute.html
   delay      60
   disable    0
   room       Solar
   userReadings EnergyExpected:Global.Radiation {return ReadingsVal ("Kostal","Global.Radiation",0)*30*0.10;}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PING www.proplanta.de (212.40.176.162) 56(84) bytes of data.
64 bytes from www.proplanta.de (212.40.176.162): icmp_req=1 ttl=56 time=690 ms
64 bytes from www.proplanta.de (212.40.176.162): icmp_req=2 ttl=56 time=544 ms
64 bytes from www.proplanta.de (212.40.176.162): icmp_req=3 ttl=56 time=521 ms

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PING 192.168.2.26 (192.168.2.26) 56(84) bytes of data.
64 bytes from 192.168.2.26: icmp_req=1 ttl=64 time=0.711 ms
64 bytes from 192.168.2.26: icmp_req=2 ttl=64 time=0.627 ms
64 bytes from 192.168.2.26: icmp_req=3 ttl=64 time=0.784 ms

----------------------------------------------------------------------------------------------------------------------------

jannik_78

Hallo John,

mit den kleinen Perlscript kann ich die Seite auslesen. Es liegt also nicht am Auslesen selbst.  Du hast doch da was mit dem blocking und timeout gebaut.....das verstehe ich noch nicht ganz.


#!/usr/bin/perl

use LWP::UserAgent;

my $ua = new LWP::UserAgent;
my $response = $ua->get('http://xxxx:yyyy@192.168.2.26/Info.fhtml');
unless ($response->is_success) {
        die $response->status_line;
}
my $content = $response->decoded_content();
if (utf8::is_utf8($content)) {
        binmode STDOUT,':utf8';
} else {
        binmode STDOUT,':raw';
}
print $content;

Gruß Jannik