Autor Thema: [98_Fronius.pm] Fronius API Modul  (Gelesen 13856 mal)

Offline carlos

  • Developer
  • Full Member
  • ****
  • Beiträge: 425
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #75 am: 07 Oktober 2021, 17:20:47 »
Hallo Michael,
Zur Info, in der sub fronius_Notify ist auch noch ein falscher log3 Eintrag:
sub fronius_Notify($$) {
my ($hash,$dev) = @_;
my $name = $hash->{NAME};
return if($dev->{NAME} ne "global");
return if(!grep(m/^INITIALIZED|REREADCFG$/, @{$dev->{CHANGED}}));

Log3 "echodevice", 4, "[$name] [echodevice_Notify] echodevice: notify reload";

return undef;
}

Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Offline geoker

  • New Member
  • *
  • Beiträge: 5
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #76 am: 13 Oktober 2021, 14:23:48 »
Tolles Modul. Vielen herzlichen Dank dafür!

Verbesserungsidee:
Ich habe in der Verteilung umgebaut. FHEM war vor WR am Netz bzw. mit IP versorgt. Er stand auf Disconnected und die Verbindung wurde erst mit einem "shutdown restart" im FHEM wieder hergestellt.
Es wäre schön einen Verbindungsaufbau / Refresh über ein Kommando direkt triggern zu können. Auch zu Testzwecken.



Offline knopf_piano

  • Full Member
  • ***
  • Beiträge: 440
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #77 am: 17 Oktober 2021, 20:21:32 »
Servus,
Top Modul, danke.
die Kiste über json2reading abzubilden, war mein erster Gedanke - doch Such im Forum in halt Gold wert.
Ein paar Auffälligkeiten, die ich mit reingenommen hab - bei mir funzt das jetzt top - auch in Verbindung mit mit der statistic.
  • Korrektur des Comulativ - Cumulative
  • Einbau des erwähnten at-devices, da nicht alle Werte erfasst werden, das modify tut den Zweck, danke!
  • Korrektur der api-calls

Bei call von
erhält man mit Einsetzen der DeviceID bei diesen calls (ip-adresse ersetzt, muss mit DeviceID=1 aufgerufen werden
http://<ip>/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CumulationInverterData
http://<ip>/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData
http://<ip>/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=3PInverterData
Wenn man seine DeviceID z.B. 12345678 einsetzt erhält man
Invalid parameter '12345678' for attribute 'DeviceId' (has to be '1')."

Korrektur der Funktion anbei:

#########################
sub fronius_SendCommand($$$) {
    my ( $hash, $type, $SendData ) = @_;
my $name = $hash->{NAME};

Log3 $name, 4, "[$name] [fronius_SendCommand] [$type] START";

# JSON Auswertung
if ($type eq "GetAPIVersionInfo") {
        $SendUrl   = "http://" . $FroniusIP . "/solar_api/GetAPIVersion.cgi";
}
elsif ($type eq "GetPowerFlowRealtimeData") {
        $SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetPowerFlowRealtimeData.fcgi";
}
elsif ($type eq "GetStorageRealtimeData") {
$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetStorageRealtimeData.cgi?Scope=System&DeviceId=$SendData";
}
elsif ($type eq "GetMeterRealtimeData") {
$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetMeterRealtimeData.cgi?Scope=System&DeviceId=$SendData";
}
elsif ($type eq "GetActiveDeviceInfo") {
$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetActiveDeviceInfo.cgi?DeviceClass=System";
}
elsif ($type eq "GetInverterRealtimeData_System") {
$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetInverterRealtimeData.cgi?Scope=System";
}
elsif ($type eq "GetInverterRealtimeData_Cumulation") {
#$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetInverterRealtimeData.cgi?Scope=Device&DeviceId=$SendData&DataCollection=CumulationInverterData";
$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CumulationInverterData";
}
elsif ($type eq "GetInverterRealtimeData_Common") {
#$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetInverterRealtimeData.cgi?Scope=Device&DeviceId=$SendData&DataCollection=CommonInverterData";
$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData";
}
elsif ($type eq "GetInverterRealtimeData_3P") {
#$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetInverterRealtimeData.cgi?Scope=Device&DeviceId=$SendData&DataCollection=3PInverterData";
$SendUrl   = "http://" . $FroniusIP . $FroniusBaseURL . "GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=3PInverterData";
}
else {
Log3 $name, 3, "[$name] [fronius_SendCommand] [$type] ERROR=Type is unkown!!";
return;
}

#2018.01.14 - PushToCmdQueue
if ($FroniusBaseURL eq "nA" && $type ne "GetAPIVersionInfo") {
Log3 $name, 4, "[$name] [fronius_SendCommand] [$type] NOT PushToCmdQueue ERROR=Fronus API Base URL not set!";
}
else {

#2018.01.14 - Übergabe SendCommandQuery
$SendParam = {
url             => $SendUrl,
hash            => $hash,
#data            => $SendData,
#method          => $SendMetode,
CL              => $hash->{CL},
httpversion     => "1.1",
type            => $type
};

Log3 $name, 4, "[$name] [fronius_SendCommand] [$type] PushToCmdQueue SendURL =" . $SendUrl;
push @{$hash->{helper}{CMD_QUEUE}}, $SendParam; 
fronius_HandleCmdQueue($hash);
}

return;
}

« Letzte Änderung: 17 Oktober 2021, 20:33:15 von knopf_piano »
zotac nano mit proxmox und ganz viel zeug drauf

Offline carlos

  • Developer
  • Full Member
  • ****
  • Beiträge: 425
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #78 am: 17 Oktober 2021, 22:54:07 »
Verstehe ich nicht ganz, muss dass die 1 sein.
Es gibt doch ein Attribute DeviceId das benutzt werden kann.
Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Online michael.winkler

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1793
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #79 am: 19 Oktober 2021, 17:34:52 »
Auf Seite 1 gibt es eine neue Version

##############################################
#
# 2021.10.19 v0.0.5
# - BUG:     https://forum.fhem.de/index.php/topic,113850.msg1156141.html#msg1156141 (Danke carlos)
#
# 2021.04.13 v0.0.4
# - CHANGE:  Meldung [name] [fronius_setState] to connected entfernt
#
# 2020.08.28 v0.0.3
# - BUG:     Write Boolean Data from JSON
# - CHANGE:  Logging
#

Offline carlos

  • Developer
  • Full Member
  • ****
  • Beiträge: 425
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #80 am: 20 Oktober 2021, 00:21:53 »

Hallo Michael,
der log eintrag im notify ist immer noch falsch:
Log3 "echodevice", 4, "[$name] [echodevice_Notify] echodevice: notify reload";Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Online michael.winkler

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1793
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #81 am: 20 Oktober 2021, 07:32:53 »
Auf Seite 1 gibt es eine neue Version

##############################################
#
# 2021.10.20 v0.0.6
# - BUG:     https://forum.fhem.de/index.php/topic,113850.msg1180843.html#msg1180843 (Danke carlos)
#

Offline carlos

  • Developer
  • Full Member
  • ****
  • Beiträge: 425
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #82 am: 20 Oktober 2021, 09:50:44 »
Danke Michael
Zur Info, ich mache das in meinen modulen so:

...
    my $sub_name = (caller(0))[3];
...
   Log3 $name, 4, "[$name] [$sub_name] reload";



Es gibt noch mehr Info dazu, die man verwenden kann:
# Me
$me = ( caller(0) )[3];

# Parent
$parent = ( caller(1) )[3];

Für Interessierte z.B. hier nach zu lesen :
https://kb.wisc.edu/iam/page.php?id=4309

Das macht die log Geschichte etwas einfacher.
Ok, hätte ich vielleicht vorher schreiben sollen.
Aber wem's gefällt der kann es ja so machen.

Aber hat nichts mit dem Topic zu tun, deshalb jetzt Schluß damit

Gruß
Carlo
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Offline Vorhand

  • Full Member
  • ***
  • Beiträge: 181
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #83 am: 14 November 2021, 17:04:21 »
Hallo Michael,
hab seit einigen Tagen den Effekt, dass die Aufzeichnung morgens - ab und zu - nicht mehr startet. Der Status steht auf "connected", aber es kommen keine Werte mehr vom Fronius. Das Gleiche hatte ich auch schon mal bei einem Fhem-Neustart, dann allerdings mit "disconnected".
Wenn ich dann auf DEF gehe und die IP des Umrichters erscheint, genügt ein click auf "Modify..." und schon geht alles wieder, als wäre nichts gewesen.
Ich nutze die aktuelle Version.
Danke.
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

Online sn0000py

  • Developer
  • Full Member
  • ****
  • Beiträge: 403
Antw:[98_Fronius.pm] Fronius API Modul
« Antwort #84 am: 18 November 2021, 14:08:36 »
Hallo ne Frage

Hat wer einen GEN24 Wechselrichter mit Batterie und geschaft den "Minimales Ladelimit" per code zu setzen?
Also den Wert unter den im Normalfall die Batterie in Prozent nicht geht?

Ich würde diesen gerne immer setzen aufgrund der Vorhersage für den nächsten Tag - sprich wenn am nächsten Tag alles wolkig ist, dann sollte der über die Nacht auf 15% stehen, wenn aber für den nächsten Tag sonnig angesagt ist, dann darf er auf 5% runter gehen,