SMA Sunny Home Manager abfragen.

Begonnen von Brun, 07 Oktober 2014, 10:40:34

Vorheriges Thema - Nächstes Thema

Volker Kettenbach

Mir ist gerade noch mal der Kragen geplatzt:
ich bin gerade dabei, ein FHEM Modul für die Einbindung des SMA Energy-Meters zu bauen. Das ist bei mir ebenfalls verbaut und im Gegensatz zur der SHM-Box schickt das SMA-EM seine Daten easy lesbar zyklisch auf eine Multicast-Adresse. Damit würde (für mich) 98_SHM überflüssig und SMA kann mir auch nicht mehr mit Wartung, Mails usw reingrätschen.

Das Abgreifen der Daten vom Multicast mache ich mit dem Daemon von http://www.unifox.at/sma_energy_meter/
Den habe ich angepasst, so dass er alles liefert, was gebraucht wird.
Jetzt müssen die Daten noch in FHEM.

Gibt es ein Modul, welches einfach einen Wert auf einer Datei liest?
Oder gibt es irgendwo ein Modul-Template, auf das ich aufsetzen kann?
Habe bisher keine Erfahrung in der Modulentwicklung.

Michael

Moin vk

Auch auf die Gefahr hin das es jetzt andere Nervt.  :)

Zitat
Antw:SMA Sunny Home Manager abfragen.
« Antwort #168 am: 14 März 2016, 17:34:17 »
Moin

@all
Habt ihr das http://www.sma.de/partners/sma-developer.html schon gesehen?
Leider bin ich nicht in der Lage dazu.  :-[ ::)
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Volker Kettenbach

#197
Hi Michael,

ja, das habe ich mir angeschaut.
Das hilft nur bedingt weiter:
1. die API für den SHM scheint mir primär für das SEMP Protokoll (basiert auf SIP) zu sein. Also für die Steuerung von Geräten. Das simple Abfragen der Leistungswerte der Anlage habe ich gar nicht gefunden
2. Ein Toolkit o.ä. für den EM scheint nicht dabei zu sein. Dafür verwende ich halt das Tool http://www.unifox.at/sma_energy_meter/.
Im übrigen wäre es ohne den SMA-EM-Daemon auch schwer, die Multicast-Pakete des EM im FHEM zu verarbeiten. Den EM kann man nicht pollen, sondern man muss auf die Pakete warten. Das wäre im Rahmen des FHEM vermutlich nicht einfach zu implementieren, ohne Gefahr zu laufen, das Laufzeitverhalten des ganzen Teils durcheinander zu bringen (zumindest soweit ich das Modell des FHEM verstanden habe).
3. Wenn ich die Doku und den C++-Code sehe, dann scheint mir, dass seitens SMA noch Methoden der 90er eingesetzt werden. Das sieht alles nach Wasserfallmodell mit irgendwelchen Windows C++-Tools aus.
Das ist nicht (mehr) meine  Welt.  Ich habe keine Lust mich durch Spaghetti-C++ zu wühlen und dann das ganze noch irgendwo nach Linux zu portieren. Zeitgemäße Entwicklung sieht ganz anders aus. Das Python-Tool ist ein guter Anfang.

Gruß
vk

P.S.: Sichtwort zeitgemäße Entwicklung: das FHEM könnte im Kern mal dringend ein Re-Modelling mit MVC-Modell gebrauchen. Dann wäre es auch leicht, das ganze mal mit einer richtigen Oberfläche im responsive Design (z.B. mit Bootstrap) auszustatten, statt dieser Horror-Lösung mit 3 Webserver-Ports für unterschiedliche Endgeräte.

Pinguru

Hallo zusammen

ich habe das neue/geänderte Modul erfolgreich am Laufen. Danke für die gute Arbeit.

Als Anmerkung zu dem Abfrageintervall - ich hatte 29sec eingestellt.

Ich habe nun heute von SMA Solar eine Mail erhalten, wo sie mich darauf hinweisen, dass der automatisierte Zugriff auf die Homemanager in den Nutzungsbedingungen ausgeschlossen sei.
Sie können das Interesse an einer Weiterverarbeitung der Daten in der Hausautomatisierung nachvollziehen, bieten jedoch derzeit keine technische Möglichkeit dieses umzusetzen.

Und dann:
Um mir weiteren Zugriff auf die Daten zu ermöglichen, bitten Sie mich das Abfrageintervall auf >=60sec zu setzen.

Ich glaube, das ist erstmal ein guter Kompromiss.

Viele Grüße Ulf



DS_Starter

Hallo vk, hallo zusammen,

bei mir gibt es ebenfalls einen SMA Energymeter und den lese ich bisher folgendermaßen aus:

1. Installation der Anwendung Smart Charging Controller 1.4.92 (läuft mit auf dem FHEM Linux):   http://www.eb-systeme.de/?page_id=1382
    Die Software liefert neben anderen Funktionen die XML-Daten des EM per Webabfrage

2. in die 99_myUtils die Funktion zur Datenabfrage des Controllers einbauen (habe ich nonblocking ausgeführt):

#######################################################################################
###      Auslesen SMA Energy Meter und zuweisen an Energymeter-Readings           #####
#######################################################################################
sub UpdateEnergyMeter {

my $hash->{NAME} = "SMA_EM";

my $param = {
               url      => "http://192.168.2.46:18001/xml",
               timeout  => 5,
               hash     => $hash,
               method   => "GET",
               header   => "Accept: application/xml",
               callback => \&UpdateEnergyMeter_Return
            };
   
HttpUtils_NonblockingGet ($param); 

}

sub UpdateEnergyMeter_Return {
   my ($param, $err, $xmltext) = @_;
   my $hash        = $param->{hash};
   my $name        = $hash->{NAME};

if ($err ne "") {                                                                               
        # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist 
        my $logstr = "error while requesting ".$param->{url}." - $err"; 
        Log3 ($name, 3, "$name - $logstr");

        return;
    }
    elsif ($xmltext ne "") 
    # wenn die Abfrage erfolgreich war
    {
    my $ref = XMLin($xmltext, KeyAttr => { }, ForceArray => [ ]);
    Log3 ($name, 4, "$name - update readings");
   
    fhem("setreading Energymeter total_pac_usage $ref->{SmartMeter}{ActualPower}");
    fhem("setreading Energymeter phase_1_usage $ref->{SmartMeter}{RealPower}{L1}");
    fhem("setreading Energymeter phase_2_usage $ref->{SmartMeter}{RealPower}{L2}");
    fhem("setreading Energymeter phase_3_usage $ref->{SmartMeter}{RealPower}{L3}");
   
    }
     
return;   
}



3. Definition für Dummy, Logfile und SVG-Plot anlegen:

# Gerätedefinition Energymeter
define Energymeter dummy
attr Energymeter group SMA Energy Meter
attr Energymeter icon measure_power
attr Energymeter room Energie
#
# Logfile Definition
#
define FileLog_Energymeter FileLog ./log/Energymeter-%Y-%m.log Energymeter:.*total_pac.*|Energymeter:.*phase_1.*|Energymeter:.*phase_2.*|Energymeter:.*phase_3.*
attr FileLog_Energymeter group SMA Energy Meter
attr FileLog_Energymeter room FileLog
#
# Definition Plots
#
define SVG_FileLog_Energymeter_1 SVG FileLog_Energymeter:SVG_FileLog_Energymeter_1:CURRENT
attr SVG_FileLog_Energymeter_1 group SMA Energy Meter
attr SVG_FileLog_Energymeter_1 room Energie
attr SVG_FileLog_Energymeter_1 title "Einspeisung (-) / Verbrauch (+) _  Min $data{min1}, Max $data{max1}, Last $data{currval1}"


4. fehlt noch das notify oder at zum Triggern:

define UpdateVerbrauch notify STP_5000:device_status:.* {UpdateEnergyMeter}
attr UpdateVerbrauch room Energie


Ich triggere hier den Energy Meter wenn ich den Wechselrichter auslese, damit das einigermaßen synchron läuft.

Das ist zwar kein Modul in dem Sinne, aber vielleicht eine Anregung .....


Grüße
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Waldmensch

Hatte heute dieselbe E-Mail von SMA. Ich habe vorm abschicken den Teil wieder gelöscht, in dem ich anbiete, ihnen einen Webservice zu schreiben.

Wenn sie mich aus dem Portal kicken, fliegt der Homemanager raus. Der ist dann so nützlich wie ein Kropf. Die Bluetooth Lösung ist A) viel zu teuer und erreicht B) meine Waschmaschine nicht und schon gar nicht die 60m entfernte Pumpe vom Pool. Die "einschalten bei Sonne" Funktion muss dann halt über einen anderen Lichtsensor realisiert werden. Bei meiner 10kwp Anlage ist da immer Reserve ab Sonneneinstrahlung X

Hat schon mal jemand dran gedacht, den Netzwerktraffic des Homemanager zu sniffen und die Daten direkt abzugreifen? Ich frag mich echt grad warum das Teil überhaupt an der Wand hängt.

Meine Antwort:
Sehr geehrter Herr ........,

Der Aktualisierungsintervall meiner Software ist, wie sie ihren
Serverlogs entnehmen können auf 120! Sekunden eingestellt, das ist das
doppelte von dem, was sie als Minimum fordern.
Das sie keine offizielle Schnittstelle anbieten, weder online noch
offline an der Anlage, ist in der Tat sehr traurig, für einen so
prominenten Hersteller. Hätte ich das vorher gewusst, hätte ich mich für
einen anderen Hersteller entschieden. Gerade die FHEM Nutzer würden
sofort und liebend gern auf eine angebotene offizielle Schnittstelle
bzw. Webservice umsteigen.

Zum Vergleich, wenn ich auf der Portal Webseite bin wird die gleiche
Abfrage alle 5 Sekunden gemacht, das sind 24 Anfragen innerhalb 120
Sekunden, statt einer. Das Volumen einer Datenübertragung liegt bei 900
Byte.

Mir freundlichen Grüßen,

Brun

Morgen,

ich finde die Reaktion von SMA interessannt. Allerdings auch verständlich. So etwas habe ich leider schon vermutet und es hat sich ja auch bewahrheitet.

Es gibt da leider nur die Möglichkeit auf die Gnade von SMA zu hoffen. Obwohl es relativ schwierig ist für SMA raus zu finden wer mein Modul verwendet. Denn der Zugriff auf die Daten ist der Selbe wie die Anzeige von der SMA Seite. Also wenn man die SMA Seite dauerhaft offen hat, verursacht die sogar noch mehr Last.

Alternativ könnten wir alle zusammen einen offenen Brief an SMA verfassen in dem wir um eine Möglichkeit zur Abfrage Bitten. Wenn genug von uns den selben Brief an SMA schicken, dann bekommen wir etwas mehr gehör.
Über Social Networking kann man dann noch die Bitte verbreiten.


Gruß Brun

Waldmensch

Ich denke mal, das SMA hier sowieso undercover mitliest. Das ihr Portal automatisiert abgefragt wird, sehen sie anhand der Logs. Niemand hat 24/7 die Webseite offen, und wenn, dann ist der Intervall 5 Sekunden und nicht variabel.


Gesendet von iPhone mit Tapatalk

Volker Kettenbach

"Auf die Gnade von SMA" hoffen finde ich keine gute Strategie.

Frage in die Runde: wer hat mit dem SHM zugleich auch das SMA-EM im Einsatz?

Denn wie in meinem letzten Beitrag geschrieben: das SMA-EM wäre leicht zu integrieren (bin bereits dabei), macht keinen Traffic bei SMA weil der Zugriff nur im lokalen Netz erfolgt und verstößt auch gegen keine Nutzungsbestimmungen.

Einzige Nachteile:
- hat evtl. nicht jeder, der den SHM hat (oder??)
- liefert nicht alle Werte, die das Portal liefert - die wesentlichen, nämlich Bezug+Einspeisung jeweils aktuell (W) und Zählung (kWh) liefert es aber.

Der Code von DS_Starter ist ein Ansatz. Wobei ich aber die Entwicklung in Modulform statt 99_myUtils bevorzugen würde, da ein offizielles Modul z.B. 98_SMAEM einfacher zu warten und verteilen wäre.
Zusätzlich zum FHEM-Modul wäre der Daemon http://www.unifox.at/sma_energy_meter/ nötig. Der ist aber sehr gut gemacht und einfach zu nutzen.

Ich werde versuchen, mir heute oder morgen mal an zu schauen, wie ein Modul 98_SMAEM aussehen könnte und mal was implementieren.

Gruß
vk

DS_Starter

Hallo VK,

eine Umsetzung in einem separaten Modul würde ich auch begrüßen.
War bisher nicht dazu gekommen ... Hatte bisher andere Präferenzen.
Wenn du etwas hast würde ich es gerne mit testen.

Grüße
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Waldmensch

#205
Um ehrlich zu sein kenne ich SMA-EM gar nicht. Google ist da auch nicht sehr ergiebig. Habt ihr ein paar Links für mich? Was kostet der Spass? Edit, habs gefunden, 300EUR, seid ihr verrückt? >:(  Wenn ich einen Ersatz für den Homemanager finde soll mir das nur Recht sein. Ich brauche das Portal nicht. Was meine Anlage leistet weiß ich selber und zur EV Optimierung ist das SMA Bluetooth System schlichtweg untauglich, wenn der Wechselrichter 20m und ein paar dicke Lehmwände weg vom restlichen Haushalt ist.
Der Neue Raspi3 hat Bluetooth an Bord. Wäre es da nicht eine Idee, in die Bluetooth Kommunikation zwischen WR und HM einzusteigen? Wobei man da nur die aktuellen Erzeugungsdaten bekommen wird. Hat schon mal wer mit Wireshark die Pakete angeschaut, die der HM nach Hause telefoniert? Das kann so viel nicht sein. Wenn man einen kleinen Webserver baut und die DNS Adresse umbiegt, könnte der HM ja statt mit Mama auch mit einem Raspi telefonieren, und seine Daten abladen.

Das hört sich alles recht brutal an, aber es sind immerhin unsere Daten. Es ist niemand verpflichtet, seine Daten an SMA zu übermitteln. Zudem ist der HM unser Eigentum, genauso wie der WR und die Panels auf dem Dach.

Waldmensch

Wenn sich SMA weiterhin ziert, einen Webservice anzubieten, fliegt der Wechselrichter bei Defekt raus und wird durch Fronius ersetzt. Andere Mütter haben auch schöne Töchter http://www.fronius.com/cps/rde/xchg/fronius_international/hs.xsl/83_28911_DEU_HTML.htm?fail=1&rdeDmResult=-6502#.VuGKk-aO5kE

Brun

Das SMA da was dran macht sieht man ja auch.
Siehe Plugwiese Steckdosen und SEMP.

Auch werden sie uns nicht wirklich aussperren. Dann hätten sie ja nicht den Vorschalg mit den 60sek Intervall gemacht.

Wir sollten die Gelegenheit nutzen und mal mit SMA in den Dialog treten.
Ich denke mal nicht das SMA hier mitliest.

Alternative wäre dann halt nur die Funktionen des SHM nach zu bauen.

Waldmensch

Naja, der USER AGENT lässt nicht auf FHEM schließen, trotzdem wird FHEM explizit in der Mail erwähnt.Was ich nicht verstehe, ist, dass sie von mir 60 Sekunden einfordern, obwohl mein Intervall schon seit Ewigkeiten auf 120 steht (schon aufgrund der riesigen Datenenmengen im Log) Um irgendwas erzeugungsabhängig zu schalten reichen 120 Sekunden locker aus. Mir kann niemand erzählen, das sie ihre eigenen Serverlogs nicht interpretieren können. Ich bin der Meinung, das das einfach nur ein Textbaustein ist, der an alle Nutzer auf einer imaginären "schwarzen Liste" geht

Wenn ich SMA wäre, würde ich einen separaten Server aufsetzen und API Keys an die FHEM Nutzer verteilen. Dann haben sie keinen negativen Impact auf ihrem Portal. Die Daten kommen eh von einem SQL Server, an dem sich der Webserver bedient. Wenn der SQL Server nicht skaliert, dann eh gute Nacht, das wäre arg peinlich.

Im Übrigen gibt es von SMA auch eine App (Android/ios), die ebenfalls Echtzeit Daten liefert. Keine Ahnung mit welchem Server die sich verbindet, aber es muss ja auch ein Webservice sein. Ich glaub ich muss über Ostern wirklich mal Wireshark anwerfen.

@vk: https://github.com/datenschuft/SMA-EM <- geil! Aber 300EUR schmerzen wirklich  >:(

GrayDeath

Die verbindet sich mit keinem Server sondern holt die Daten Live aus dem MultiCast des Energy Meter ...

Das wäre es die bessere Lösung, diese Daten abzugreifen statt vom Portal zu holen.