Daten von Deye Sun Mikrowechselrichtern abfangen

  • Da sind nur einfache UDP Pakete, da kannst du nehmen was du willst.

  • Also Auslesen vom PowerRegister geht zumindest schon mal

    bsp: Leistung auf 46% ~ hex 2E


    C:\Deye>main -t 192.168.179.17:48899 -xmb 00280001

    2023/02/12 14:34:48 * Connecting :0 -> 192.168.179.17:48899...

    2023/02/12 14:34:52 +ok=010302002E3858

    2023/02/12 14:34:53



    Dann geändert auf 70% ~ hex 4B

    C:\Deye>main -t 192.168.179.17:48899 -xmb 00280001

    2023/02/12 14:40:03 * Connecting :0 -> 192.168.179.17:48899...

    2023/02/12 14:40:06 +ok=010302004BF873

    2023/02/12 14:40:07


    Wenn man im main program

    die zeile

    prefix := "0103" // Slave ID + Function

    in

    prefix := "0106" // Slave ID + Function


    ändert.


    müsste man in das Register schreiben können,

    nur wie übergibt man dann den Wert bwp 4B


    Wäre der aufruf dann für 75% Leistung


    main -t 192.168.179.17:48899 -xmb 00284B01


    ???

    Mir fehlt leider die Doku zu den Registern von @Peter_haase

  • Ein netter user hat auf dem github die modbus doku hochgeladen.


    https://github.com/s10l/deye-logger-at-cmd/files/10716536/Modbus.-.-.V118.pdf


    Register verändern ist laut Handbuch Funktion 0x10 also 16

    Die Zeile müßte also in


    prefix := "0116" // Slave ID + Function

    bzw

    prefix := "0110" // Slave ID + Function


    abgeändert werden jenachdem ob das Hex oder Dez ist..



    Der modbus Aufruf baut sich wohl folgendermaßen auf.


    <Funktion>+<Starting registeraddress>+<Number of registers>+<byte count>+<Register values>


    Für eine Regelung auf 75% also


    10002800102004B


    bzw wenn die Doku stimmt, nach der der 75% mit 750 anzugeben sind


    1000280010202EE

  • auf dem Github gibt es jetzt das neue main


    auf den Raspi ziehen mit


     git clone https://github.com/s10l/deye-logger-at-cmd

    go installieren


    sudo apt install golang

    cd deye-at-logger/src


    testen mit

    1.2.3.4 durch deine Logger IP ersetzen

    go run main.go -t 1.2.3.4:48899 -xmb 00280001

    dann sieht man die aktuelle leistung


    go run main.go -t 1.2.3.4:48899  -xmbw 0028000102002E


    setzt die Leistung auf 46% [0x2E]

    go run main.go -t 1.2.3.4:48899  -xmbw 00280001020064

    setzt die Leistung auf 100% [0x64]


    Wenn der WR an einer Batterie hängt, bitte nicht höher als 75% setzen

    go run main.go -t 1.2.3.4:48899  -xmbw 0028000102004B


    Wenn alles funkt kann man das ganze kompilieren

    go build main.go


    dann ist der Aufruf nur noch

    ./main -t 1.2.3.4:48899  -xmbw 0028000102004B


    vielen Dank an s10l (Bist du das fabulous_gonzo ? ) für das schnelle einbauen der neuen Funktion