SolarEdge Wechselrichter - Wiki

Begonnen von Chris_XXX, 01 November 2018, 13:29:51

Vorheriges Thema - Nächstes Thema

Chris_XXX

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?

BenMarloe

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
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

Chris_XXX

Vielen Dank für den Link. Mit der dortigen Anleitung komme ich ganz gut klar.