Zugriff auf AlphaEss mit C# und Modbus

Willkommen auf Storion4you.de - der Community für Stromspeicher- und Backupsysteme von ALPHA-ESS!
Sie haben aktuell Lesezugriff auf den öffentlichen Bereich dieser Website. Um Themen zu starten oder Beiträge zu erstellen, müssen Sie sich zuerst registrieren.

  • Hallo,

    ich entwickle gerne mit C# und habe ein Windows-System zu Hause.

    Habe auch seit April eine AlphaEss-Anlage zu Hause.

    Über die Cloud kann man viel abfragen, aber nicht bei Stromausfall, etc.

    Ich möchte mir ein kleines C#-Programm dazu erstellen.

    Habe div. Erweiterungen zu Modus + C# gefunden, aber ich erhalte beim Aufbau keine Daten geliefert.

    Mir ist aktuell unklar, wie ich die Verbindung herstelle.

    Auf der Anlage steht rechts meine MAC-Adresse: BC-97-.......

    In der FritzBox sehe ich die Anlage mit der IP-Adresse 192.168.0.134.

    Über arp -a sehe ich auch die IP mit der MAC-Adresse verknüpft. Das gehört also zusammen.


    Habe im Internet ein kleines Tool gefunden:

    https://github.com/stephan1827/modbusTCP-DotNET : modbusTCP-DotNET

    Wenn ich dort die IP-Adresse eintrage, erhalte ich allerdings keine Rückmeldungen, gar nichts.

    Nach "Connect", kann man cols, register, discrete, etc. lesen, aber es kommt nichts an.

    Habe ich eine falsche Verbindung, muss ich noch etwas angeben, z. B. einen Port, etc.?

    Gibt es ggf. eine andere Demo, die läuft? Alle bisherigen Downloads waren bisher für mich erfolglos.


    Tschau



  • Hi, welche Anlage hast du denn genau? Bei der Smile 10 geht modbus bspw. nur über LAN und nicht über WLAN.

  • SystemmodellSystemmodell : SMILE-S6-HV-INV

    BatterieNennkapazität : 4,93kWhNutzbare Kapazität : 4,70kWh


    WechselrichterNennleistung : 4,60kW


    PV-ModuleNennleistung : 6kW


    Die Anlage ist über LAN verbunden, die IP-Adresse habe ich. Ist auch anpingbar.

  • Habe ich eine falsche Verbindung, muss ich noch etwas angeben, z. B. einen Port, etc.?

    Port ist 502, das sollte der Standard sein. Irgendwo musst du noch die Geräteadresse eintragen (0x55 = 85).

    Lesen musst du Holding Register, Adressen im entsprechenden Dokument.


    Links zu Dokumentation und weitere Infos findest du hier:

    Alpha ESS Daten Auslesen am Beispiel ioBroker (Modbus und Alpha-ESS-Adapter)

    --

    Bitte keine technischen Fragen per privater Konversation.

    Stellt eure Fragen im Forum, dann haben alle was davon und es können auch mehr Leute helfen.

  • Hallo,

    habe das mal auch mit dem ioBroker probiert:

    Erhalte hier nur das hier:

    Im Log steht das:

    Was bedeutet dann dieser Fehler? :


    On error: {"errno":-4069,"code":"EISCONN","syscall":"connect","address":"192.168.0.134","port":502}


    Ein PING geht, ist also im Netz erreichbar:

  • ah, muss im ioBroker noch die Holding-Register eintragen.

    Das ist zumindest mal dann erfolgreich gewesen.


    Jetzt muss ich das noch mit C# hinbekommen.

  • In C# erhalte ich die Meldung, dass die Verbindung verweigert wird:

    Code:

    Die Meldung lautet: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte 192.168.0.134:502

    Ich kann aber keine Geräte-ID angeben.


    Code
                   grpExchange.Visible = true;
                   grpData.Visible = true;

    sind die Panels, um etwas sichtbar zu machen. Hat mit der Verbindung nichts zu tun. Dort werden nur weitere Funktionen sichtbar/unsichtbar.

  • Biker68


    Ein bisschen Wenig Info, da kann man nur raten.


    Welche C#Bibliothek verwendest du denn?

    Ich kann da nirgends sehen, dass du die Geräteadresse 85 festlegst.

    Die ioBroker Verbindung musst du beenden, bevor du die Verbindung mit einem anderen Master herstellen kannst.

    --

    Bitte keine technischen Fragen per privater Konversation.

    Stellt eure Fragen im Forum, dann haben alle was davon und es können auch mehr Leute helfen.

  • der Verweis in C# ist auf ModbusTCP

    Nach dem Trennen von ioBroker, kommt zumindest der Zugrifffehler nicht mehr.

    Das Sample habe ich hier gefunden: https://github.com/stephan1827/modbusTCP-DotNET

    Das letzte Update ist vom April 2019 !!!


    Ich stelle die Verbindung her und erhalte nur das:


    Es werden beim "Read" keine Werte eingetragen.

    Die Geräteadresse konnte ich nirgends angeben. Hatte das schon gelesen und oben bereits erwähnt, dass ich diese auch vermisse.

    Finde leider keine Modbus-Erweiterung für C#, die die eine Geräteadresse angibt. Kennt jemand anderes hier eine Erweiterung?

    Die v. g. Erweiterung ist schon etwas älter.

  • Die Geräteadresse konnte ich nirgends angeben.

    Ist wahrscheinlich "Unit", die Adresse wird auch "Unit Identifier" genannt.

    Dann würde ich mal nicht gleich 100 Register holen, hol doch mal nur 1 (Size) und z.B. Battery SOC, Adresse 258 (Start Adress)

    --

    Bitte keine technischen Fragen per privater Konversation.

    Stellt eure Fragen im Forum, dann haben alle was davon und es können auch mehr Leute helfen.

  • Biker68 hast du mit ioBroker eine erfolgreiche Kommunikation hinbekommen? Lt. Screenshot denke ich nicht - ist Port 502 ueberhaupt offen?

  • hast du mit ioBroker eine erfolgreiche Kommunikation hinbekommen?

    ah, muss im ioBroker noch die Holding-Register eintragen.

    Das ist zumindest mal dann erfolgreich gewesen.

    --

    Bitte keine technischen Fragen per privater Konversation.

    Stellt eure Fragen im Forum, dann haben alle was davon und es können auch mehr Leute helfen.

  • Ok, das war mir nicht ganz klar - dann geht das ja prinzipiell... Jetzt "nur noch" 'ne funktionierende Library finden :D

  • Jetzt "nur noch" 'ne funktionierende Library finden

    Ich bin ja der Meinung, dass es mit meinem Tipp aus Beitrag #11 gehen wird.

    --

    Bitte keine technischen Fragen per privater Konversation.

    Stellt eure Fragen im Forum, dann haben alle was davon und es können auch mehr Leute helfen.

  • Hallo Gaspode,

    ich habe mit Deinen Empfehlungen schon probiert:

    Allerdings kommt da auch nichts an.


    ioBroker gibt auch "holdingRegisters" an:


    Werte gibt es auf jeden Fall, Zugriff ist auf jeden Fall direkt möglich.

    Nur diese DLL geht noch nicht.


    Tschau

  • 85 nicht 58

    --

    Bitte keine technischen Fragen per privater Konversation.

    Stellt eure Fragen im Forum, dann haben alle was davon und es können auch mehr Leute helfen.