Hallo zusammen,
ich habe seit kurzem einen SolarEdge Wechselrichter und möchte diesen in FHEM einbinden. Nur leider reicht mein Durchblick dazu nicht. Das EinführungsPFD von FHEM habe ich gelesen - gebracht hat es leider nix. Vielleicht kann mir ja hier jemand helfen.
Ich bin nach diesem Wiki hier vorgegangen:
https://wiki.fhem.de/wiki/SolarEdge_SE10k - übrings herzlichen Dank dafür
Das Geräte selber konnte ich anlegen und es sind nun auch Werte in FHEM sichtbar. Die Dummy devices konnte ich auch noch anlegen. Aber dann hört es auch schon auf.
Wie wird das notify und das at device angelegt?
Viele Grüße
Chris
Um noch etwas genauer zu werden:
Ich hacke das Ganze so ein:
define prg_solaredge notify ModbusAttr:DC-Power:.*
# 16.2.2018 Markus Loeben
# liest Solaredge aus und füllt die Werte in dummys, damit sie weiter verwertet werden können
{my $ACE = ReadingsVal("KeSolarEdge","AC-Energy",0);
log 5, "at_solaredge: ACE " . $ACE;
my $day = Value("dum_pv_energyday_read");
log 5, "at_solaredge: day " . $day;
my $week = Value("dum_pv_energyweek_read");
log 5, "at_solaredge: day " . $day;
my $month = Value("dum_pv_energymonth_read");
log 5, "at_solaredge: month " . $month;
my $year = Value("dum_pv_energyyear_read");
log 5, "at_solaredge: year " . $year;
# .. die geleistete Energie größer 0 ist (was immer sein sollte, aber leider nicht immer ist) -> laufende Werte berechnen
if ($ACE > 0) {
fhem ("set dum_pv_energytoday " . sprintf ("%.2f",($ACE - $day)));
fhem ("set dum_pv_energytoweek " . sprintf ("%.2f",($ACE - $week)));
fhem ("set dum_pv_energytomonth " . sprintf ("%.2f",($ACE - $month)));
fhem ("set dum_pv_energytoyear " . sprintf ("%.2f",($ACE - $year)));
}
#Log 1, "at_Solaredge: PV-Energy " . $ACE . "\n";
#Leistung auslesen
my $ACP = ReadingsVal("KeSolarEdge","AC-Power",0);
my $DCP = ReadingsVal("KeSolarEdge","DC-Power",0);
if ($DCP > 0) {
# Verlustleistung berechnen
fhem ("set dum_pvloss " . sprintf("%.1f", ($DCP - $ACP)));
my $MP = Value("dum_pv_power_read");
# Falls die größer ist als alles bis: ablegen
if ($DCP > $MP) {
fhem ("set dum_pv_power_read " . $DCP);
}
}
}
Und bekomme dann diese Fehler:
Unknown command log, try help.
Unknown command my, try help.
Unknown command log, try help.
Unknown command my, try help.
Unknown command log, try help.
Unknown command my, try help.
Unknown command log, try help.
Unknown command my, try help.
Unknown command log, try help.
Unknown command #, try help.
Unknown command fhem, try help.
Unknown command fhem, try help.
Unknown command fhem, try help.
Unknown command }, try help.
Unknown command #Leistung, try help.
Unknown command my, try help.
IF: no left bracket: { # Verlustleistung berechnen fhem ("set dum_pvloss " . sprintf("%.1f", ($DCP - $ACP)))
Unknown command my, try help.
Unknown command #, try help.
Unknown command }, try help.
Muss ich dass an einer anderen Stelle als in das Eingabefeld von FHEM eingeben?
Du hast die erste geschweifte Klammer { vergessen.
Es gibt auch einige Ergänzungen in dieser Anleitung hier:
https://forum.fhem.de/index.php/topic,80767.0.html (https://forum.fhem.de/index.php/topic,80767.0.html)
Vielen Dank für den Link. Mit der dortigen Anleitung komme ich ganz gut klar.