FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: ma7ja5 am 30 Juni 2013, 19:38:38

Titel: Solarlog 200
Beitrag von: ma7ja5 am 30 Juni 2013, 19:38:38
Hallo,

anbei ein Modul für den Solarlog 200.
Je nach Wechselrichterkonfiguration muss die REGEXP angepasst werden.
Das Modul fragt die Javascript-Konstanten mittels http get ab und wertet sie aus.

Gruß
Manfred
Titel: Aw: Solarlog 200
Beitrag von: Tobias am 12 Juli 2013, 07:35:17
sollte zumindest ins fhem Repository ins Contrib Verzeichnis
Titel: Aw: Solarlog 200
Beitrag von: Olga123 am 10 September 2013, 16:26:48
Hallo Manfred,

aber wie sieht der "define" aus bzw. hast du ein kleines Bsp. mit Plot für mich?

Gruss

FHEM anfänger!
Titel: Aw: Solarlog 200
Beitrag von: ma7ja5 am 10 September 2013, 19:19:34
Hallo,
siehe unten das Define und im Anhang der Plot.
-----------------------------------------------------------------
define PV Solarlog 192.168.xxx.yyy 300
attr PV delay 300
attr PV room Photovoltaik

define FileLog_PV FileLog ./log/PV-%Y.log PV:*
attr FileLog_PV room Unsorted

define wl_FileLog_PV_1 weblink fileplot FileLog_PV:wl_FileLog_PV_1:CURRENT
attr wl_FileLog_PV_1 room Photovoltaik
-------------------------------------------------------------------
Titel: Aw: Solarlog 200
Beitrag von: Olga123 am 10 September 2013, 20:48:20
Super Danke,

kannst du noch schnell die Plot Datei "wl_FileLog_PV_1" anhängen?

Gruss und Danke

Mark
Titel: Aw: Solarlog 200
Beitrag von: ma7ja5 am 11 September 2013, 07:56:49
# Created by FHEMWEB, 2013-07-10 20:08:13
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Photovoltaik'
set ytics
set y2tics
set grid ytics
set ylabel "Leistung"
set y2label "Ertrag "
set yrange [0:10000]
set y2range [0:75000]

#FileLog 7:PV.Pac\x3a::
#FileLog 4:PV.Pac\x3a::

plot "<IN>" using 1:2 axes x1y2 title 'Ertrag (Wh)' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Leistung (W)' ls l0 lw 1 with lines
Titel: Aw: Solarlog 200
Beitrag von: MacReiner am 12 September 2013, 11:18:28
Hallo zusammen,

ich habe mir erlaubt, deinen Code bei mir einzubauen. Meine Hardware sieht allerdings etwas anders aus: Statt Kako habe ich Fronius IG60 und IG40 mit einer RS485 Schnittstelle im Einsatz.
Mein SolarLog ist der 400.
Die aktuelle Anzeige in FHEM klappt gut (momentaner Ertrag und Tagesertrag)
Das Diagramm wird auch dargestellt, es kommen aber keine Einträge (Ertragslinien).

Dummerweise werden die vergangenen Tage im SolarLog gelöscht bzw. werden unsinnige Werte angezeigt.

Auf www.macreiner.de (//www.macreiner.de) könnt ihr das bewundern ;-)

Leider habe ich nicht so viel Wissen, um das Ganze auf meine Konstellation anpassen zu können.

Vielleicht kann sich ein Wissender mal äussern, ob das zu lösen ist...

Danke
Reiner
Titel: Antw:Solarlog 200
Beitrag von: Reinemann67 am 18 Oktober 2013, 08:08:41
Super - nun habe ich es auch geschafft, das Script auf meine zwei Wechselrichter anzupassen. Die Daten kommen von einem Solarlog 1000.  Die Peak Werte waren schon mit dem vorhandenem Script ok, aber der Tagesertrag passte nicht.

Die Lösung war möglich, nachdem ich einfach mal http://192.168.xy.120/pc.js?min0 in meinen Browser eingab und in der letzten Zeile
da[dx++]="18.10.13|0;0|0;4"   (Werte von heute früh 8:05)
die Erträge beider Wechselrichter identifizieren konnte. Das Script liest diese sogar schon ein, nur die Addition und Übergabe an die Log-Datei musste angepasst werden. Das konnte ich dann mit meinen bescheidenen Perl-Kenntnissen dann auch schaffen.

Vielen Dank für die Vorarbeit.
Titel: Antw:Solarlog 200
Beitrag von: extraem am 28 Dezember 2013, 18:05:56
Hallo

ich habe das Modul gerade inst. und nach der Anleitung eingerichtet bekomme aber keinen Ertrag ob die PAC richtig ausgelesen wird weiß ich nicht da es dazu jetzt schon zu spät ist

Im Filelog steht 2013-12-28_17:56:29 PV Pac: 0 W, Ertrag: 0 Wh

Und im fhem Log mid verbose 5 das

2013.12.28 17:58:30 5: Solarlog_GetStatus
2013.12.28 17:58:30 5: PV: Data request
StatusCodes[0] = "Sending Parameters,Wait Sun/Grid,Checking Grid,Measuring Riso,DcDc Start,Inverter Start,Run,Recovery,Pause,Ground Fault,OTH Fault,Address Setting,Self Test,Self Test Fail,Sensor Test + Meas.Riso,Leak Fault,Waiting for manual reset,Internal Error E026,Internal Error E027,Internal Error E028,Internal Error E029,Internal Error E030,Sending Wind Table,Failed Sending table,UTH Fault,Remote OFF,Interlock Fail,Executing Autotest, , ,Waiting Sun,Temperature Fault,Fan Staucked,Int. Com. Fault,Slave Insertion,DC Switch Open,TRAS Switch Open,MASTER Exclusion,Auto Exclusion, , , ,Waiting, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Erasing Internal EEprom,Erasing External EEprom,Counting EEprom,Freeze,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,  FehlerCodes[0] = " ,Sun Low W001,Input OC E001,Input UV W002,Input OV E002,Sun Low W001,No Parameters E003,Bulk OV E004,Comm.Error E005,Output OC E006,IGBT Sat E007,Bulk UV W011,Internal error E009,Grid Fail W003,Bulk Low E010,Ramp Fail E011,Dc/Dc Fail E012,Wrong Mode E013,Ground Fault ---,Over Temp. E014,Bulk Cap Fail E015,Inverter Fail E016,Start Timeout E017,Ground Fault E018,Degauss error ---,Ileak sens.fail E019,DcDc Fail E012,Self Test Error 1 E020,Self Test Error 2 E021,Self Test Error 3 E019,Self Test Error 4 E022,DC inj error E023,Grid OV W004,Grid UV W005,Grid OF W006,Grid UF W007,Z grid Hi W008,Internal error E024,Riso Low E025,Vref Error E026,Error Meas V E027,Error Meas F E028,Error Meas Z E029,Error Meas Ileak E030,Error Read V E031,Error Read I E032,Table fail W009,Fan Fail W010,UTH E033,Interlock fail E034,Remote Off E035,Vout Avg errror E036,Battery low W012,Clk fail W013,Input UC E037,Zero Power W014,Fan Stucked E038,DC Switch Open E039,Tras Switch Open E040,AC Switch Open E041,Bulk UV E042,Autoexclusion E043,Grid df/dt W015,Den switch Open W016,Jbox fail W017,DC Door Open E044,AC Door Open E045,Module Door Open E047,Fuse DC Fail W020,Liquid Cooler Fail E048,SPD AC protection open W018, da[dx++]="28.12.13|10568;6612"5;9;23;368;370;2"""";6""""""
2013.12.28 17:58:34 5: PV Pac: 0 W, Ertrag: 0 Wh


kann mir jemand sagen wo ich was ändern muss

Danke
Titel: Antw:Solarlog 200
Beitrag von: Reinemann67 am 02 Januar 2014, 06:50:51
Versuche doch mal deine Werte durch Aufruf des Links (Posting vom 18.10.) abzurufen. In dem Ergebnis sollten Pac und Ertrag korrekt enthalten sein.  Da es unterschiedliche Solarlog Module gibt, sieht das Ergebnis auch untersciedlich aus.

Sind deine Werte da  korrekt ?
Titel: Antw:Solarlog 200
Beitrag von: extraem am 02 Januar 2014, 20:33:00
Hallo

wenn ich den Link aufrufe gibt es nur einen Eintrag mit PAC aber keinen mit Ertrag siehe Auszug aus der Ausgabe
Ich habe einen SolarLog 200 mit var Firmware = "2.8.2 Build 52"

var Pac=0
var aPdc=new Array(0,0,0)
var curStatusCode = new Array(1)
curStatusCode[0]=255
var curFehlerCode = new Array(1)
curFehlerCode[0]=0
var PacArr= [[0]];
var PdcArr= [[0,0,0]];
var sStrWIFI = 0
var sStrGPRS = 0
var tBsent = 1605493491
var tBrecv = 130455447
m[mi++]="02.01.14 16:50:00|0;0;0;6168;251;251;11"
m[mi++]="02.01.14 16:45:00|1;0;1;6168;251;251;11"
m[mi++]="02.01.14 16:40:00|2;1;2;6168;253;258;11"
m[mi++]="02.01.14 16:35:00|8;4;5;6168;300;331;11"
m[mi++]="02.01.14 16:30:00|15;8;8;6168;326;357;11"
m[mi++]="02.01.14 16:25:00|51;27;28;6163;356;381;11"
m[mi++]="02.01.14 16:20:00|86;45;47;6154;365;398;10"
m[mi++]="02.01.14 16:15:00|102;56;54;6142;371;402;10"
m[mi++]="02.01.14 16:10:00|134;70;74;6127;380;409;10"
m[mi++]="02.01.14 16:05:00|205;105;114;6110;390;420;10"
m[mi++]="02.01.14 16:00:00|249;128;137;6087;394;423;10"
m[mi++]="02.01.14 15:55:00|216;110;119;6061;390;420;10"
m[mi++]="02.01.14 15:50:00|225;115;124;6037;391;421;10"
m[mi++]="02.01.14 15:45:00|265;135;147;6013;395;425;10"
m[mi++]="02.01.14 15:40:00|367;187;201;5984;402;432;10"
m[mi++]="02.01.14 15:35:00|416;212;229;5947;404;435;10"
m[mi++]="02.01.14 15:30:00|417;214;228;5906;404;435;10"
m[mi++]="02.01.14 15:25:00|385;197;210;5864;402;433;10"
m[mi++]="02.01.14 15:20:00|320;164;175;5826;398;428;10"
m[mi++]="02.01.14 15:15:00|326;166;178;5795;398;428;10"
m[mi++]="02.01.14 15:10:00|330;168;182;5760;398;428;10"
m[mi++]="02.01.14 15:05:00|329;168;180;5728;398;428;10"
m[mi++]="02.01.14 15:00:00|326;167;178;5695;398;428;10"
m[mi++]="02.01.14 14:55:00|306;157;167;5661;397;427;10"
m[mi++]="02.01.14 14:50:00|263;135;145;5629;393;423;10"
m[mi++]="02.01.14 14:45:00|239;121;133;5602;391;421;10"
m[mi++]="02.01.14 14:40:00|262;134;145;5576;393;422;10"
m[mi++]="02.01.14 14:35:00|268;135;149;5548;390;419;10"
m[mi++]="02.01.14 14:30:00|260;134;143;5518;392;422;10"
m[mi++]="02.01.14 14:25:00|340;174;187;5490;397;428;10"
m[mi++]="02.01.14 14:20:00|401;204;220;5455;401;431;10"
m[mi++]="02.01.14 14:15:00|516;264;283;5415;405;436;11"
m[mi++]="02.01.14 14:10:00|523;269;285;5364;405;435;11"
m[mi++]="02.01.14 14:05:00|924;472;507;5313;415;446;11"
m[mi++]="02.01.14 14:00:00|1286;659;702;5225;421;453;11"
m[mi++]="02.01.14 13:55:00|1275;653;696;5107;422;453;11"
m[mi++]="02.01.14 13:50:00|1218;623;666;4990;421;453;11"
m[mi++]="02.01.14 13:45:00|1188;608;649;4880;421;453;11"
m[mi++]="02.01.14 13:40:00|1126;578;614;4773;421;452;11"
m[mi++]="02.01.14 13:35:00|1052;537;574;4670;419;451;11"
m[mi++]="02.01.14 13:30:00|906;464;494;4574;417;448;11"
m[mi++]="02.01.14 13:25:00|997;510;545;4490;419;450;11"
m[mi++]="02.01.14 13:20:00|1143;584;625;4399;421;453;11"
m[mi++]="02.01.14 13:15:00|1122;575;612;4294;421;453;11"
m[mi++]="02.01.14 13:10:00|1052;540;573;4192;421;452;11"
m[mi++]="02.01.14 13:05:00|1076;552;587;4096;421;453;11"
m[mi++]="02.01.14 13:00:00|1028;528;561;3997;421;452;10"
m[mi++]="02.01.14 12:55:00|913;467;499;3904;419;450;10"
m[mi++]="02.01.14 12:50:00|830;426;453;3820;419;449;10"
m[mi++]="02.01.14 12:45:00|943;483;515;3739;419;450;10"
m[mi++]="02.01.14 12:40:00|1045;535;571;3651;421;452;10"
m[mi++]="02.01.14 12:35:00|1060;542;579;3555;421;453;10"
m[mi++]="02.01.14 12:30:00|1087;557;594;3456;421;453;10"
m[mi++]="02.01.14 12:25:00|1042;533;570;3356;421;453;10"
m[mi++]="02.01.14 12:20:00|1040;532;568;3260;421;453;10"
m[mi++]="02.01.14 12:15:00|1015;519;555;3165;421;452;10"
m[mi++]="02.01.14 12:10:00|873;446;478;3072;418;449;10"
m[mi++]="02.01.14 12:05:00|837;431;456;2992;417;449;10"
m[mi++]="02.01.14 12:00:00|858;440;468;2914;417;449;10"
m[mi++]="02.01.14 11:55:00|904;461;496;2835;418;449;10"
m[mi++]="02.01.14 11:50:00|1002;511;547;2751;419;451;10"
m[mi++]="02.01.14 11:45:00|1191;609;651;2659;422;453;10"
m[mi++]="02.01.14 11:40:00|1403;718;766;2550;425;456;10"
m[mi++]="02.01.14 11:35:00|1535;784;840;2423;426;458;10"
m[mi++]="02.01.14 11:30:00|1590;812;871;2284;427;459;10"
m[mi++]="02.01.14 11:25:00|1204;615;659;2140;422;454;10"
m[mi++]="02.01.14 11:20:00|1455;745;795;2032;424;456;10"
m[mi++]="02.01.14 11:15:00|2255;1170;1209;1897;432;465;10"
m[mi++]="02.01.14 11:10:00|1611;832;873;1697;428;460;9"
m[mi++]="02.01.14 11:05:00|1648;850;899;1554;431;463;9"
m[mi++]="02.01.14 11:00:00|1821;936;991;1405;432;464;9"
m[mi++]="02.01.14 10:55:00|1596;820;869;1241;431;464;8"
m[mi++]="02.01.14 10:50:00|1162;596;633;1099;428;460;8"
m[mi++]="02.01.14 10:45:00|918;470;501;994;424;456;8"
m[mi++]="02.01.14 10:40:00|775;396;424;909;421;452;7"
m[mi++]="02.01.14 10:35:00|494;254;270;838;412;443;7"
m[mi++]="02.01.14 10:30:00|546;279;299;790;414;445;7"
m[mi++]="02.01.14 10:25:00|503;257;275;738;413;443;7"
m[mi++]="02.01.14 10:20:00|512;264;280;689;409;438;7"
m[mi++]="02.01.14 10:15:00|326;168;178;640;403;432;7"
m[mi++]="02.01.14 10:10:00|209;108;115;608;393;422;6"
m[mi++]="02.01.14 10:05:00|237;121;131;585;397;426;6"
m[mi++]="02.01.14 10:00:00|389;199;213;560;408;438;6"
m[mi++]="02.01.14 09:55:00|569;291;311;520;417;447;6"
m[mi++]="02.01.14 09:50:00|404;208;220;466;409;439;6"
m[mi++]="02.01.14 09:45:00|269;138;148;428;401;430;6"
m[mi++]="02.01.14 09:40:00|312;160;171;399;403;433;6"
m[mi++]="02.01.14 09:35:00|253;129;140;368;399;429;5"
m[mi++]="02.01.14 09:30:00|223;114;123;342;396;426;5"
m[mi++]="02.01.14 09:25:00|221;113;122;318;396;426;5"
m[mi++]="02.01.14 09:20:00|244;125;134;295;400;430;5"
m[mi++]="02.01.14 09:15:00|305;155;168;269;405;434;5"
m[mi++]="02.01.14 09:10:00|408;208;224;238;412;442;4"
m[mi++]="02.01.14 09:05:00|411;210;226;198;412;442;4"
m[mi++]="02.01.14 09:00:00|291;149;159;158;404;433;4"
m[mi++]="02.01.14 08:55:00|224;115;123;129;399;428;4"
m[mi++]="02.01.14 08:50:00|183;94;102;105;393;423;3"
m[mi++]="02.01.14 08:45:00|133;69;74;85;385;414;3"
m[mi++]="02.01.14 08:40:00|85;44;49;70;374;403;3"
m[mi++]="02.01.14 08:35:00|68;35;38;58;362;390;2"
m[mi++]="02.01.14 08:30:00|45;24;25;48;351;377;2"
m[mi++]="02.01.14 08:25:00|29;15;17;40;317;327;2"
m[mi++]="02.01.14 08:20:00|17;7;12;33;347;350;1"
m[mi++]="02.01.14 08:15:00|14;5;11;0;391;396;1"
m[mi++]="02.01.14 08:10:00|12;6;7;31;320;323;0"
da[dx++]="02.01.14|6168;2255"


Wo finde ich den Ertrag und wo muss ich dann was Eintragen
Ich habe leider keine Ahnung von Perl und RegExP

Danke
Titel: Antw:Solarlog 200
Beitrag von: ph1959de am 02 Januar 2014, 23:48:58
@extraem: Deine Ertragszeile sieht so ähnlich aus, wie bei mir. Leider ist (meine Meinung) das Modul noch etwas "speziell". Ich hab's auf die Schnelle für mich angepasst (ich hoffe ich bekomm's hier komplett hin; alle Änderungen im sub Solarlog_GetStatus):

Die RegExp:
my ($Pac2,$Pdc1,$Pdc2,$Earn,$Udc1,$Udc2,$Temp)=( $allines =~ /.+?m\[mi\+\+\]=.+?\|(.+?);(.+?);(.+?);(.+?);(.+?);(.+?);(.+?)\"/ );

Dementsprechend dann später:
$text= "Pac: $Pac2 W, Ertrag: $Earn Wh";

und zu guterletzt:
  if (!$hash->{LOCAL}){
            $hash->{CHANGED}[0] = $text;
            $hash->{STATE} = $text;
            $hash->{READINGS}{Pac}{TIME} = TimeNow();
            $hash->{READINGS}{Pac}{VAL} = $Pac2;
            $hash->{READINGS}{Ertrag}{TIME} = TimeNow();
            $hash->{READINGS}{Ertrag}{VAL} = $Earn;
            DoTrigger($name, undef) if($init_done);   
  }


Alles im Modul 88_Solarlog.pm zu ändern.

Vielleicht finde ich mal Zeit (und einen Weg) das zu generalisieren.

Gruß, Peter
Titel: Antw:Solarlog 200
Beitrag von: extraem am 03 Januar 2014, 11:40:35
Hallo ph1959de

danke für die Hilfe

ich habe jetzt noch diesen Teil auskommentiert und damit geht es jetzt anscheinend

# if ($Ertrag).
#  { }
# else
# { $Pac = 0;
#    $Ertrag = 0;
# }.


wenn ich die Daten mit dem Browser hole steht das im File
m[mi++]="03.01.14 11:30:00|2153;1184;1095;3303;449;480;11"

und das im Log vom fhem
2014-01-03_11:30:58 PV Pac: 2153 W, Ertrag: 3303 Wh

Weist du für was die anderen Daten in der Zeil sind

Danke
Titel: Antw:Solarlog 200
Beitrag von: ph1959de am 03 Januar 2014, 12:34:07
Wenn Du den Solarlog auch .csv erzeugen lässt, könntest Du da nachschauen.

Ich finde z.B. bei mir in der

min140102.csv
#Datum;Uhrzeit;WR;Pac;DaySum;Status;Error;Pdc1;Pdc2;Udc1;Udc2;Temp;Uac
...
02.01.14;12:00:00;1;350;570;1;0;194;170;301;196;21;236

passend dazu in min140102.js
...
m[mi++]="02.01.14 12:00:00|350;194;170;570;301;196;21"


Für Deine Situation auseinanderfieseln musste jetzt aber selbst.

Gruß, Peter


Titel: Antw:Solarlog 200
Beitrag von: Deinjo am 19 Januar 2014, 23:32:31
Hallo zusammen,

erstmal vielen Dank an Manfred für das gute script zum auswerten des Solarlog.

Ich wollte das script nun für mich anpassen und haben dabei ein Problem mit der Änderung der Regexp.
An meinem Solarlog ist auch ein S0-Zähler angeschlossen. Von diesem möchte ich jetzt nicht den über 5min gemittelten Wert sondern einen aktuelln Wert.

In dem File vom Solarlog ist folgende Zeilen enthalten:
var PacArr= [[858], [1]];

Die "858" ist der aktuelle Verbrauchswert und "1" die aktuelle Solarleistung (gleiche wie in var Pac=1).

Beim auslesen der Zeile habe ich aber nun ein Problem (muss sagen, Perl ist neu für mich). Ich habe es mit folgender Zeile probiert:
my ($Verbrauch,$SolarPac) =( $allines =~ /.+?var PacArr= \[\[(.+?)\],\[(.+?)\]\]/ );

Leider sind immer beide Variablen leer.

Jemand eine Idee?

Danke und Gruß
Deinjo
Titel: Antw:Solarlog 200
Beitrag von: majorshark am 06 Februar 2014, 14:01:53
Hallo Deinjo.

Das interessiert mich auch.
Hast Du für das Problem (var PacArr= [[858], [1]]; ) schon eine Lösung gefunden?

Grüße

Lösung:
my ($Pver,$Pac) = ( $allines =~ /.+?var PacArr=\ \[\[(\d*)\],\ \[(\d*)\]\]/ );
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 09 März 2014, 15:24:12
Hallo zusammen,

da ich auch eine PV Anlage mit einem Solarlog 200 habe, wollte ich das ganze auch mal integrieren.
Pac wird bei mir im Plot auch angezeigt, aber irgendwie komme ich mit dem Ertrag nicht weiter.

Logverbose habe ich mal auf 5 gesetzt und bekomme von meinem Solarlog eintrag das hier:

2014.03.09 15:16:12 5: ##########################################
2014.03.09 15:16:12 5: Solarlog_GetStatus
2014.03.09 15:16:12 5: myPV: Data request
2014.03.09 15:16:12 5: host: 192.168.178.22
2014.03.09 15:16:14 5: name: myPV
2014.03.09 15:16:14 5: ###########################
2014.03.09 15:16:14 5: Data received:
FehlerCodes[1] = "-------,Kommunikation gest?rt,DC ?berstrom,Startbed. nicht erreicht,
2014.03.09 15:16:14 5: myPV Pac: 2223 W, Ertrag: 13165 Wh
2014.03.09 15:16:14 5: Triggering myPV (1 changes)
2014.03.09 15:16:14 5: Notify loop for myPV Pac: 2223 W, Ertrag: 13165 Wh
2014.03.09 15:16:14 4: eventTypes: Solarlog myPV Pac: 2223 W, Ertrag: 13165 Wh -> Pac: .* W, Ertrag: .* Wh
2014.03.09 15:16:14 5: DbLog: logging of Device: myPV , Type: SOLARLOG , Event: Pac: 2223 W, Ertrag: 13165 Wh , Reading: Pac , Value: 2223 W, Ertrag: 13165 Wh , Unit:


Der Eintrag

2014.03.09 15:16:14 5: myPV Pac: 2223 W, Ertrag: 13165 Wh

sieht doch soweit ganz gut aus. Ich frage mich nur, warum der im Plot nicht angezeigt wird?

Meine gplot Datei sieht so aus:

# Created by FHEM/98_SVG.pm, 2014-03-09 15:19:14
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Photovoltaik'
set ytics
set y2tics
set grid ytics
set ylabel "Leistung"
set y2label "Ertrag "
set yrange [0:3240]
set y2range [0:20000]

#DbLog myPV:Ertrag::
#DbLog myPV:Pac::

plot "<IN>" using 1:2 axes x1y2 title 'Ertrag (Wh)' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Leistung (W)' ls l0 lw 1 with lines

     
Irgendwie scheine ich den Zusammenhang zwischen dem Modul, den Einträgen im DB Log und der gplot Datei nicht verstanden zu haben.

Wäre cool, wenn mir dazu jemand den Schubs in die richtige Richtung geben könnte.
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 09 März 2014, 17:05:46
Also das Problem dürfte mal folgender Eintrag im DB Log sein:

Da steht im Reading Pac alle Werte. So kann das Plot das auch nicht auswerten.

Nur wie stelle ich mich nun an um einzelne Readings gesetzt zu bekommen?
Irgendwie werde ich den Eindruck nicht los, als wenn in dem Modul das mit dem $hash gar keine Auswirkungen hat.
Naja, vielleicht schaut ich im FHEM Wiki mal im Development Bereich vorbei...

# Abrage in dieser Art funktioniert nur mit meiner speziellen Konfiguration: S0-Aktiv und KAKO WR
# Es gibt in dem JavaScript noch andere Stellen um an die Daten zu kommen. Aber leider keine "Einzeiler".
  #my ($Pac) =( $allines =~ /.+?var Pac=(\d*)/ ) ; #Pac Variable suchen
#  my ($Pac2,$Pdc1,$Pdc2,$Ertrag,$Udc1,$Udc2,$Temp)=( $allines =~ /.+?m\[mi\+\+\]=.+?\|.+?\|(.+?);(.+?);(.+?);(.+?);(.+?);(.+?);(.+?$

  my ($Pver,$Pac) = ( $allines =~ /.+?var PacArr=\ \[\[(\d*)\],\ \[(\d*)\]\]/ );
  my ($Ertrag1,$Ertrag,$Temp) =( $allines =~ /.+?da\[dx\+\+\]=.+?\|(.+?);.+?\|(.+?);(.+?)/ );

  if ($Ertrag)
   { }
  else
  { $Pac = 0;
    $Ertrag = 0;
  }
  $text= "Pac: $Pac W, Ertrag: $Ertrag Wh, Pver: $Pver";
  $text= "Pac: $Pac W, Ertrag: $Ertrag Wh $Temp $Ertrag1";

  Log 5,"$name $text";
  if (!$hash->{LOCAL}){
            $hash->{CHANGED}[0] = $text;
            $hash->{STATE} = $text;;
            $hash->{READINGS}{Pac}{TIME} = TimeNow();
            $hash->{READINGS}{Pac}{VAL} = $Pac;
            $hash->{READINGS}{Ertrag}{TIME} = TimeNow();
            $hash->{READINGS}{Ertrag}{VAL} = $Ertrag;
            DoTrigger($name, undef) if($init_done);
  }
  $alldata="$text\n";
  return $alldata;
}
Titel: Antw:Solarlog 200
Beitrag von: majorshark am 21 März 2014, 09:55:55
Dieses Problem habe ich auch noch.

Beim Öffnen der Seite PV werden alle Readings korrekt angezeigt.
Bei der nächsten Aktualisierung stehen alle Werte dann in der Zeile 'Pac'.

Scheinbar wird dann nur noch $text zurückgegeben. Was auch logisch erscheint, da ja return $alldata auch nur den $text zurück gibt.

Aber warum ist das nicht so beim ersten Aufruf und wie bekommt man es hin, das die Readings fortlaufend einzeln aktualisiert werden.


$text= "Pac: $Pac W, Ertrag: $Ertrag Wh, Verbrauch: $Pver W, Einspeisung: $Pein W";
Log 5,"$name $text";

if (!$hash->{LOCAL}){
            $hash->{CHANGED}[0] = $text;
            $hash->{STATE} = $text;
            $hash->{READINGS}{Pac}{TIME} = TimeNow();
            $hash->{READINGS}{Pac}{VAL} = $Pac;
            $hash->{READINGS}{Ertrag}{TIME} = TimeNow();
            $hash->{READINGS}{Ertrag}{VAL} = $Ertrag;
            $hash->{READINGS}{Verbrauch}{TIME} = TimeNow();
            $hash->{READINGS}{Verbrauch}{VAL} = $Pver;
            $hash->{READINGS}{Einspeisung}{TIME} = TimeNow();
            $hash->{READINGS}{Einspeisung}{VAL} = $Pein;
            DoTrigger($name, undef) if($init_done);
  }
  $alldata="$text\n";
  return $alldata;


(//)
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 21 März 2014, 18:04:18
Zwischenzeitlich habe ich mal ein wenig rumgespielt.
Ich gebe zu mit den Regexp bin ich nach nicht wirklich warm geworden, aber vielleicht wird das ja noch mal.
Manch einer würde das bestimmt eleganter lösen, aber der Zweck heiligt die Mittel. ;)

Im Anhang mal meine aktuelle 99_Solarlog.pm. Die basiert auf dem ersten Modul hier in dem Post.
Da mal einen Dank an Manfred für die Vorarbeit.

Aus der von meinem Solarlog 200 mit einem Wechselrichter zurückgelieferten Antwort habe ich mal diese Zeilen auseinander genommen:

var PacArr= [[293], [128]];
var PdcArr= [[0,0,0], [176,0,0]];


und die letzte Zeile

da[dx++]="21.03.14|8739;2910|5131;1728"

Daraus konnte ich dann alle Werte ermitteln.

Sollten die Zeilen bei Euch anders aussehen, müssten die Regex angepasst werden.
Oder hier mal posten, dann versuche ich mal mein Glück.  8)
Titel: Antw:Solarlog 200
Beitrag von: majorshark am 27 März 2014, 10:59:29
... läuft einwandfrei! Habe noch ein Reading für die Einspeiseleistung hinzugefügt.

Danke. :)
Titel: Antw:Solarlog 200
Beitrag von: cocojambo am 28 März 2014, 14:43:24
Hallo,
ich habe einen Solarlog 1000 bei mir im Einsatz mit zwei Wechselrichtern von Fronius. Ich habe mir schon alle Posts über die Auswertung und Darstellung des Solarlogs mit Fhem durchgelesen. Aber so richtig steht nirgendwo im Zusammenhang was wo an Dateien einzuspielen und welche Änderung zu machen sind. Wäre es mal möglich hier die einzelnen Dateien zu posten und vielleicht mal eine kurze Anleitung zu machen ist um den solarlog als Plot darzustellen und auszuwerten? Können bestimmt Andere auch noch gebrauchen. Fänd ich ganz gut.
Gruß aus Köln
Norbert
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 28 März 2014, 15:02:34
Hi,

gib mal in Deinem Browser das hier ein:

http://solarlog-ip/pc.js?min0

Also die IP Deines Solarlogs mit dem /pc.js?min0

Das was da raus kommst, kannst Du gerne posten oder mir zumailen.
Dann schaue ich mal, ob ich da draus schlau werde.

Ach so. Hast Du auch einen S0 Zähler, der den Eigenverbrauch an den Solarlog weitergibt?
Titel: Antw:Solarlog 200
Beitrag von: cocojambo am 30 März 2014, 15:08:20
@ maxritti

Hab ich gemacht und dir per PM vorgestern zugeschickt. kannst du damit was anfangen und wirst schlau daraus? oder brauchst du noch weitere angaben.
gruß aus köln
norbert
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 30 März 2014, 18:28:50
Hi Norbert,

ich bin dran.
Allerdings bei dem schönen Wetter bieten sich auch andere Aktivitäten an, als am PC zu sitzen  ;)

Melde mich, wenn es weitergegangen ist.
Titel: Antw:Solarlog 200
Beitrag von: besitzer am 22 Mai 2014, 16:02:22
Hallo zusammen,

ich habe einen SolarLog 300 und einen SMA Wechselrichter.
Ich habe die ersten Schritte mit der Einrichtung der Anzeige etc erfolgreich durchgeführt. Allerdings bekomme ich bei den Werten für PAC und Ertrag sowie in der Skala nichts angezeigt.
Mein Wechselrichter bzw. Solarlog werden soweit ich weiß auch per S0 Schnittstelle ausgelesen.

Wenn ich http://192.168.xy.47/pc.js?min0 in den Broswer eingeben wird mir allerdings gar nichts angezeigt. Das Brwoserfenster bleibt weiß und ich bekomme keinen Fehler
Leider kenne ich mich mit Dingen wie REGEXP etc. gar nciht aus. Wo und wie stelle ich sowas ein?

Könnt Ihr mir helfen?

Danke. Gruß Sven
Titel: Antw:Solarlog 200
Beitrag von: besitzer am 22 Mai 2014, 16:18:48
Ich habe mir gerade nochmal die Konfiguration meines SolarLog angesehen und unter dem Punkt Geräte gesehen, wie die Anbindung zum Wechselrichter ist. Laut dem Bild über RS485, der Verbrauchszähler bei mir im Schaltschrank aber wohl über S0. Hilft das bei der Fehleranalyse?

Siehe Anhang

Gruß Sven
Titel: Antw:Solarlog 200
Beitrag von: besitzer am 22 Mai 2014, 17:29:21
Ich habe nun einen anderen Browser (Internet Explorer) zum Abfragen und bekomme die Meldung, dass die Webseite nicht gefunden werden konnte.
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 22 Mai 2014, 19:39:06
Zitat von: besitzer am 22 Mai 2014, 16:02:22
Wenn ich http://192.168.xy.47/pc.js?min0 in den Broswer eingeben wird mir allerdings gar nichts angezeigt. Das Brwoserfenster bleibt weiß und ich bekomme keinen Fehler
Leider kenne ich mich mit Dingen wie REGEXP etc. gar nciht aus. Wo und wie stelle ich sowas ein?

Könnt Ihr mir helfen?

Danke. Gruß Sven

Hm.
Über http://192.168.xy.47 kommst Du an das Webinterface von Deinem Solarlog und wenn Du da /pc.js?min0 anhängst, dann kommt nichts?
Merkwürdig.
Selbst bei einem Solarlog 1000 geht das. Das der Solarlog 300 sich so von den beiden Modellen unterscheidet, kann ich mir nicht wirklich vorstellen.
Aber nichts ist unmöglich.

Mail doch direkt mal den Solarlog-Support an, ob das pc.js?min0 mit dem Solarlog 300 nicht funktioniert.
Die geben recht fix Antwort.

Aber dann wissen wir wenigstens, ob es hier mit dem Modul weitergehen kann.
Titel: Antw:Solarlog 200
Beitrag von: cocojambo am 23 Mai 2014, 12:03:18
Bei mir wurde gestern bei meinem Solalog 1000 automatisch ein Firmware update gestartet. Dadurch ist auch bei mir nicht mehr möglich über das "pc.js?min0" an den Solarlog zu kommen. Hängt wohl eindeutig mit der neuen Software zusammen, die ja laut Solarlog demnächst für alle Solarlogs gilt, so auf der Firmwareseite zu lesen:
Auszug von den neuen Release Notes:

(Solar-Log™ 3.1.2 Build 67, 21.05.2014)
für Solar-Log 200/500/1000 und Solar-Log 300, 1200 und 2000

Wenn einer was weiß wäre es nett, das hier zu posten. ich werde parallel auch mal eine Anfrage an den Support stellen.

Gruß aus Köln
Norbert

@maxritti : dein Solarlog 200 ist auch dabei
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 23 Mai 2014, 12:21:14
Hast recht. Da bin ich aber froh, dass kein automatisches Update bei mir gelaufen ist :)

Ich werde mir est mal in Ruhe die 10 Seiten beim Photovoltaikforum von der 3.1.1 durchlesen und dann das von 3.1.2
Auf den ersten Seiten wird ja mal häufig von Datenverlust gesprochen.

http://www.photovoltaikforum.com/sds-allgemein-ueber-solar-log-f38/solarlog-firmware-3-1-1-build-66-t99466.html
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 23 Mai 2014, 14:38:28
Nun denn.
Unter denn "Allgemeinen Hinweise" steht, dass die neue FW kein JavaScript mehr nutzt.
Damit hat kann man das Modul dann mit der neuen FW nicht mehr nutzen.

http://www.solar-log.com/fileadmin/BENUTZERDATEN/Downloads/Firmware/ReleaseNotes_3.1.2-68-20140523-DE.pdf

Bleibt dann wohl nur die Nutzung einer anderen Anwendung:

http://www.fhemwiki.de/wiki/SolarView

Ich weiss nur nicht, ob das so der richtige Weg ist. Denn damit werden ja direkt die Wechselrichter ausgelesen.
Was damit verloren geht ist der Eigenverbrauch mit einem S0 Zähler.

Na mal schauen....
Titel: Antw:Solarlog 200
Beitrag von: besitzer am 23 Mai 2014, 15:01:38
Hallo zusammen,

ich habe meine Anfrage an den Support von Solar Log heute Morgen gestartet. Melde mich mit der Antwort.

Gruß Sven
Titel: Antw:Solarlog 200
Beitrag von: oniT am 23 Mai 2014, 21:11:45
Hallo,

ich möchte ja nicht die Diskussion unterbrechen, aber es gibt bereits eine Möglichkeit mit Modbus TCP die Daten auszulesen. So lese ich meinen SolarLog schon über ein Jahr aus. Ich finde nur auf die Schnelle über die Suche nicht den richtigen Thread.

Wenn diesen niemand findet, stelle ich die Dateien und Codeschnippsel dann hier zur Verfügung.

Gruß,
Tino

Titel: Antw:Solarlog 200
Beitrag von: maxritti am 23 Mai 2014, 21:20:16
Hi,

aus meiner Sicht kein Problem. Denn Solarlog schreibt ja eindeutig, dass das mit dem JavaScript nicht mehr geht.

Kannst Du denn mittels Modus TCP auch werte von einzelnen Wechselrichter auslesen?
Laut der Doku meine ich zu lesen, dass nur die Gesamtwerte auslesbar sind.
Ich habe zwar nur einen WR, aber es gibt ja auch PVler, die mehrere WR an dem Solarlog haben.

Vermutlich meinst Du das Posting hier:

http://forum.fhem.de/index.php/topic,13128.0.html

Das werde ich mir mal zu Gemüte führen.
Titel: Antw:Solarlog 200
Beitrag von: oniT am 23 Mai 2014, 21:50:34
Hallo,

ah ja richtig diesen meinte ich. Das könnte natürlich sein, dass dies nur mit einem Wechselrichter funktioniert. Schau mal in den ersten Post, da stehen die PDF Dateien von SolarLog.

Grüße,
Tino
Titel: Antw:Solarlog 200
Beitrag von: maxritti am 23 Mai 2014, 21:59:53
Okay, das PDF kannte ich noch nicht, bzw hatte es noch nicht geöffnet.

Die kostenlose Basic Variante von Modbus summiert alles auf und die Advanced Variante kostet, kann dafür aber wohl bis zu 3 WR.
Nur wieviel wird auch nirgends verraten.
Eventuell schreibe ich die mal an.
Titel: Antw:Solarlog 200
Beitrag von: besitzer am 24 Mai 2014, 00:52:42
Hallo zusammen,

wie versprochen, aber bereits vorher auch schon festgestellt, die Antwort vom SolarLog Support:

...der von Ihnen angegebene Link gab es bis zur Einführung der Firmware 3.x

Es gibt aber eine freie Modbusschnittstelle im Solar-Log™ die Beschreibung des Protokolls finden Sie im Installationshandbuch des Solar-Log™.

Hoffe wir finden so einen Weg an alle Daten zu kommen.

Gruß Sven
Titel: Antw:Solarlog 200
Beitrag von: oniT am 24 Mai 2014, 07:56:13
Hallo,

so wie ich das sehe, hat sich an den abfragbaren Daten über Modbus nichts geändert. Es wird immer die Summe aller Wechselrichter zur Verfügung gestellt.

Gruß,
Tino

Titel: Antw:Solarlog 200
Beitrag von: besitzer am 27 Mai 2014, 12:02:21
Hallo zusammen,

hat jemand eine Lösung gefunden bzw. kann mir bei meinem Problem weiterhelfen?

Ich habe jetzt laut der Anleitung in diesem Thread http://www.ip-symcon.de/forum/threads/21088-Raspberry-PI-Modbus-TCP-IP-Server?highlight=modbus   Modbus installiert. Ich kann Modbus auch starten aber bekomme keine Verbindung zum SolarLog. Ich weiß auch leider so gar nicht, was ich einstellen müsste um auf den Solarlog zuzugreifen außer die IP Adresse und den Port?!

Wie und wo habt ihr Euer Modbus installiert. Ich habs jetzt auf einem Raspberry installiert.
Habt ihr eine andere Anleitung? Ich stehe echt im Wald, wie man so schön sagt.

Tino, könntest Du mir Deine Codeschnipsel zur Verfügung stellen bzw. posten? Vielleicht kannst Du mir auch kurz erklären, was ich machen muss.
Das wäre echt super. Danke.

Gruß Sven
Titel: Antw:Solarlog 200
Beitrag von: besitzer am 28 Mai 2014, 14:21:10
Hallo,

es funktioniert nun. Habe mich an die Anleitung von Tino in diesem Thread http://forum.fhem.de/index.php/topic,13128.30.html gehalten, nachdem Modbus endlich lief.
Danke an alle und besonders Tino.

Jetzt muss ich nur noch versuchen mal eine Plot Datei dafür zu basteln.

Gruß Sven
Titel: Antw:Solarlog 200
Beitrag von: Harald am 05 August 2014, 23:26:18
Hallo MacReiner, vielleicht liest Du hier ja noch mit.

Ich habe gelesen, dass Du auch Fronius-Wechelrichter mit serieller Schnittstelle hast. Mich würde interessieren, wie Du die seriellen Daten ausliest und an FHEM übergibst.

Ich habe einen Fronius midi plus und einen Datenlogger mit RS232-Schnittstelle. Diese möchte ich an die im Raspi implementierte RS232 anschliesen und die Daten dann in FHEM verarbeiten.
Die Beschreibung des Datenprotokolls liegt mir vor.

Wäre toll, wenn Du mir ein paar Infos zukommen lassen könntest. Leider habe ich noch nichts gefunden, was ich für meine Hardware anpassen könnte.

Vielen Dank im Voraus und viele Grüße

Harald

Titel: Antw:Solarlog 200
Beitrag von: MacReiner am 04 November 2014, 15:30:11
Hallo Harald,

ich habe mich wieder etwas eingelesen ;-)
und bisher nicht gekümmert. Aber im Moment finde ich das Thema wieder interessant. Der Winter ist lang und vielleicht bekommen wir ja doch noch ein Ergebnis.
http://solarlog-ip/pc.js?min0 funktioniert bei mir noch.
Ich ziehe demnächst mit dem Fhem Server auf einen Einplatinenrechner um. Vielleicht ein Banana Pi oder ein Cubieboard 3, hab mich noch nicht entschieden..
Dann werde ich den Solarlog auch in Angriff nehmen...

Titel: Antw:Solarlog 200
Beitrag von: Harald am 05 November 2014, 10:15:17
Hallo MacReiner,

vielen Dank, dass Du Dich gemeldet hast. Ich habe das Projekt erstmal auf Eis gelegt. Zwischenzeitlich habe ich von Fronius die Protokollbeschreibung erhalten. Der WR sendet mit 3200 Bd, was der RasPi an der RS 232-Schnittstelle nicht ohne weiteres kann. Schliese ich aber ein USB/RS232-Wandler an, kann diese Konstruktion die Daten einlesen - auch mit 3200Bd.

Leider sind meine Perlkenntnisse und -fähigkeiten nicht ausreichend, ein eigenes Modul für diese Anwendung zu schreiben. Mit anderen, vorhandenen Modulen habe ich ohne Erfolg probiert. Naja, vielleicht findet sich ja noch eine Möglichkeit. Ich habe auch schon nach einem LAN/RS232-Wandler gesucht. Was ich bisher gefunden habe, war mir zu teuer oder die Produkbeschreibung war nicht ausfühlich genug. Module, die mittels LAN die WR auslesen gibt es ja. Da könnte man vllt. etwas anpassen, damit es mit meinem Fronius-WR klappt. Evtl. ginge es dann auch über SolarLog.

Viele Grüße

Harald
Titel: Antw:Solarlog 200
Beitrag von: paddyr2 am 20 November 2014, 08:24:16
Guten Morgen,

ich versuche mich auch gerade an dem guten Stück.

Modul läuft
Webseite wird angezeigt
Logfile zeig dauerhaft 0W an

S0 Zähler auch vorhanden

und die neueste Firmware 3. irgendwas.

Wo ist mein Fehler.

Titel: Antw:Solarlog 200
Beitrag von: MacReiner am 29 November 2014, 10:05:15
Soooo, ich habe mich für den Cubietruck entschieden. Gute Entscheidung.
Es läuft jetzt alles erwartungsgemäß. Auch die Plots werden richtig und schnell dargestellt.

Nun kann ich mal versuchen, aus dem Umrichter bzw. meinem Solaog400e Informationen herauszukitzeln.

@paddyr2: Niemand kann dir helfen, wenn du nichts verrätst. Wie wäre es mit etwas Code, Auszug aus dem Logfile,...