SMA Energy Meter

Also ich habe keinerlei Probleme mit Symcon im docker in Verbindung mit SMA. Bei mir kommen alle Werte sauber an. L1…L2…L3…aktuelle Leistung usw

Hi,

ich musste damit es funktioniert die Sendeadresse auf die des Docker Containers setzen:

LG Tommy

Alternativen wären z.B. eine echte VM mit Bridge (kein NAT) oder halt einen Raspberry o.ä…

Hallo Tommi, ich nutze den Sunny Home Manager 2.0, da kann ich nichts ändern. Ich habe zwar auch ein Energy Meter im Einsatz, dessen Target Adresse ist auf die IP des Home Manager 2.0 gesetzt.

Mit meinem PI ging das, leider nur nicht im Docker.

Grüße
cerberus

Gibt es hierzu Neuigkeiten?
Ich habe auch sowohl einen separaten EnergyMeter als auch einen HomeManager und möchte beide abfragen (nativ, ohne Raspi dazwischen).

Ich habe für den EnergyMeter einen UDP-Socket mit Ziel-Port 9522 und für den HomeManager einen Multicast-Socket mit Ziel-Port ungleich 9522 (z.B. 9523) erstellt.
Aber damit erhalte ich nur die infos vom EnergyMeter.

Hat hier jemand schon eine Lösung?

Danke!

Hat hier noch jemand das Problem, dass seit dem Update auf die 5.2 STABLE keine Daten mehr vom Energy Meter bzw. bei mir der HomeManager 2.0 ankommen ? Ich bekomme keine Fehlermeldungen und im Debug ist auch nichts zu finden. Aber es geht nix mehr… :confused:

Mit Version BETA 5.2.4053 lief es einwandfrei. Habe erstmal wieder auf die 5.2.4053 zurückgespielt.

Hallo zusammen

Ich brauche eure Hilfe. Eigentlich war ich überglücklich, dass ich es hinbekommen habe die Werte vom Homemanager IPS auszuwerten, respektive anzuzeigen. Jedoch habe ich dann erst ein paar Tage später gemerkt, dass ich auf dem SMA Sunny Portal Lücken in der Darstellung der Daten habe.

Nachdem ich den Multicast Socket um 16:30 wieder deaktiviert habe, läuft die Übertragung ins Sunny Portal wieder problemlos.
Der Multicast Socket ist folgendermaßen konfiguriert.

Anzumerken ist noch, dass ich den SMA Homemanager auf dem DHCP Server nicht immer sehe. Das heisst manchmal ist er als Device mit der IP 192.168.1.70 zu sehen, wechselt aber dann die IP zu 169.254.93.141. Das wechselt dann ca. im 10s takt immer hin und her.

Kann mir dabei jemand weiterhelfen?

Der Homemanager sendet nur stumpf raus. Ist ja Multicast. Das dürfte die Datenübertragung an das Portal eigentlich nicht beeinträchtigen. Für IPS ist das jedoch Schwerstarbeit, da Quasi im Sekundentakt neue Werte kommen. Kann es sein, das die Leitungskapazität am Limit ist?

Die wechselnde Anzeige im Unifi Controler habe ich auch. Das ist aber ein Problem des Controlers bzw. was der Switch meldet und kein echtes Wechseln der IP Adresse. DHCP-Adressen haben immer eine bestimmte Laufzeit. Die ist normalerweise deutlich länger als 10s oder Deine USG ist falsch konfiguriert. Eine Link-Lokal Adresse haben die SMA Geräte alle, wahrscheinlich für den Fall, das kein DHCP Server antwortet.

Hallo
Ich habe seit heute das Modul getestet.
Es kommen auch Daten an…
Wenn ich jetzt über die Webadresse 192.168.178.53(mein Tripower) anmelde kommt die Fehlermeldung:
[b]Kein weiterer Login möglichEs ist bereits die maximale Anzahl an Nutzern auf dem Gerät angemeldet.

[ol]
[li]Warten Sie, bis einer der eingeloggten Benutzer sich ausgeloggt hat und versuchen Sie es anschließend erneut. [/li][/ol]

[/b]Wer weiss wie ich einen Benutzer wieder ausloggen kann?
Gerät Sunny Tripower 8.0

Schönen Gruß:)
Egon

Gerade auf 5.3 upgedatet und schon geht die Multicastabfrage nicht mehr. Bekomme keine Werte und Debug bleibt auch leer.
Jemand eine Idee ?

Selbes Problem hier, letzter Datenempfang heute direkt vor dem Update…
Noch keine echte Idee leider. Aber Workaround: In den Network Settings des EM die Adresse von IPS als Target definiert bringt Werte.

Hi,

ich hier jemand von euch weitergekommen?

Gruß
hardlog

Die Targetadresse im EnergyMeter zu ändern, führt leider zu negativen Effekten z.B. beim Batteriewechselrichter - der sieht dann die Waage nicht mehr und kann nicht mehr einspeisebezogen regeln. Also Target wieder resettet und neu geschaut:

Lösung scheint zu sein: Empfangshost auf „alle“ setzen, zumindest kommen dann bei mir wieder Werte an. Siehe Bild.

Habe das hier gefunden: https://www.symcon.de/forum/threads/42255-5-3-Multicast-Socket-funktioniert-nicht-mehr

Hallo zusammen

Ich hab mal wieder etwas Zeit gefunden um mit der integration von SMA Homemanager 2 weiterzukommen.
Ich habe das Skript wie im post #45 benutzt. Die meisten Werte werden auch richtig angezeigt. Ausser Bezug - L2. Der ist komplett falsch. Wenn ich dazu im Skript nachschaue ist nur dort auch eine Art Formel drin (bin nicht sicher ob ich das richtig verstehe):

SetValue(21046 /[Energie Zähler\SMA Home Manager\Bezug - L2]/,(float)hexdec(substr($HexData,608, 8 ))/10-(float)hexdec(substr($HexData,648, 8 ))/10);

Muss das so sein? Wo liegt mein Fehler.

Danke und Gruss
Robert

hat das hier jemand zum laufen bekommen mit Symcon 5.3?

Aufbauend auf dem Skript habe ich mir ein eigenes geschrieben.

Vielleicht hilft es dir als Beispiel weiter:

<?php

declare(strict_types=1);

// Hier die LogIn Daten für das SunnyPortal eintragen:
$login_email = 'xxxx@yyyyy';
$login_pass = 'zzzzz';

define ('COOKIE_FILE_NAME', 'cookie_sma.txt');

$ch = curl_init();

// Versuch sich mit Cookie an der Webseite anzumelden
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,'https://www.sunnyportal.com/FixedPages/HoManLive.aspx');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILE_NAME);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36');
$curlData = curl_exec($ch);


// Prüfen, ob die Anmeldung mit Cookie erfolgreich war, wenn nicht, dann wird ein normaler Login durchgeführt
preg_match('|(Forgotten password)|', $curlData, $LoginFALSE);
if ($LoginFALSE){
    echo "Anmeldung mit Cookie war nicht erfolgreich - normaler Login wird durchgeführt!".PHP_EOL;

    curl_setopt($ch, CURLOPT_URL, 'https://www.sunnyportal.com/Templates/Start.aspx');
    curl_setopt($ch, CURLOPT_POSTFIELDS,'ctl00$ContentPlaceHolder1$Logincontrol1$txtUserName='.urlencode($login_email).'&ctl00$ContentPlaceHolder1$Logincontrol1$txtPassword='.urlencode($login_pass).'&__EVENTTARGET=ctl00$ContentPlaceHolder1$Logincontrol1$LoginBtn');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE_NAME);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    preg_match('|(Current Status and Forecast)|', curl_exec($ch), $LoginTRUE);

    if (!$LoginTRUE){
        echo 'Die Anmeldung war nicht erfolgreich - bitte User und Passwort überprüfen.' . PHP_EOL;
        return;
    }
}

// Abfragen der Live Daten
curl_setopt($ch, CURLOPT_URL,"https://www.sunnyportal.com/homemanager?t=" . time());
curl_setopt($ch, CURLOPT_POST, false);
$curlData = curl_exec($ch);

$LiveData = [];
foreach(json_decode($curlData, true) as $key=>$Data){
    switch ($key){
        case '__type':
            break;
        case 'Timestamp':
            $LiveData[$key] = strtotime($Data['DateTime']);
            break;
        default:
            $LiveData[$key] = $Data;            
    }
} 

if ($_IPS['SENDER'] === 'Execute'){
    print_r($LiveData);
}


// Abfragen der Prognose Daten
curl_setopt($ch, CURLOPT_URL,"https://www.sunnyportal.com/HoMan/Forecast/LoadRecommendationData");
curl_setopt($ch, CURLOPT_POST, false);
$curlData = curl_exec($ch);

$ForecastSeries = json_decode($curlData, true)['ForecastSeries'];

$DataPoints = [];
foreach($ForecastSeries as $Serie){
    $PvMeanPower = round($Serie['PvMeanPower']['Amount']/1000, 2);
    $ConsumptionForecast = round($Serie['ConsumptionForecast']['Amount']/3600000, 2);
    $DataPoints[] = ['TimeStamp' => $Serie['TimeStamp']['DateTime'], 'WeatherId' => $Serie['WeatherId'], 'PvMeanPower' => $PvMeanPower, 'PvEnergy' => $Serie['PvEnergy']['Amount'], 'ConsumptionForecast' => $ConsumptionForecast, 'IsConsumptionRecommended' => $Serie['IsConsumptionRecommended']];
} 

if ($_IPS['SENDER'] === 'Execute'){
    print_r($DataPoints);
}

curl_close($ch);

Es erfolgt hier nur eine Anzeige der Daten bei Direktausführung. Um die Speicherung der Daten muss man sich noch selber kümmern.

Burkhard

cool vielen dank damit kann man arbeiten :slight_smile:

Aber irgendwie kommen oft keine Daten, kann es sein dass wenn man alle 10sec die Daten holt der Server sich sperrt oder woran liegt es dass dann die daten leer sind beim auslesen? Ist das bei dir auch so?

Gesendet von meinem SM-G975F mit Tapatalk

Kann ich dir leider nicht beantworten. Ich lese alle 15 Minuten, habe es aber auch schon mal gesehen, dass die Daten leer waren. Ich ignoriere das einfach.

leider werden sehr oft keine Daten abgeholt. kann man dies vielleicht nicht noch irgendwie verbessern? :wink:

[InfoMessages] => Array
(
[0] => The current consumption could not be determined. The current purchased electricity is unknown.
)