Ankündigung

Einklappen
Keine Ankündigung bisher.

Neue Library für rscp Kommunikation mit E3DC Speicher inkl. Kommandozeilen utility.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Dankeschön
    Ich habe erst Mitte März damit angefangen, da die Kiste vorher kaputt war. Müsste also die aktuellste Version sein, ja.

    Könnte es vielleicht am Tag Datatype liegen? Dort steht für die beiden "None", laut den Kommentaren in der tag.go und ed3c-control ist es vermutlich ein char Länge 6
    (contains EXTERN_DATA (length 6) and EXTERN_DATA_LEN =6)

    Kommentar


      #17
      Denke nicht. Du musst unterscheiden... die REQ Tags sind meistens None... da du ja nur den Request sendest ohne Werte. Ausnahme "Container" REQ Tags wie "
      WB_REQ_DATA" wo du die REQ Tags welche du darunter haben willst noch spezifizieren kannst.
      In den meisten fällen hast du zu jeden "REQ" Tag auch ein "Antwort" TAG der einfach REQ nicht enthält. Dieser enthält dann entsprechend ein Datentyp welcher nicht "None" ist.

      Aber es könnte sein, dass die Antwort ein nicht erwarteten Datentyp liefert oder die Länge der Antwort nicht zum Datentyp passt, obwohl ich eigentlich dachte, das würde berücksichtigt im Code.
      Oder ich auch nur einfach irgend ein spezifischen Fall noch nicht angetroffen habe und eine Implementation dazu fehlt

      Kommentar


        #18
        Komme der Sache näher...
        Der Request "funktioniert" bei mir... jedoch bekomme ich ohne WB den error ERR_NOT_AVAILABLE.
        Ich vermute in deinem Fall kommt WB_EXTERN_DATA zurück. Das ist gemäss Doku ein ByteArray.
        Leider ist das der einzige Tag mit Antwort vom Typ ByteArray der mir bekannt ist....... darum kann ich das nicht testen

        Kommentar


          #19
          Neue version online: https://github.com/spali/go-rscp/releases/tag/v0.0.9

          Sollte nun mit debug=6 keine Login Request daten mehr rausspucken.
          Spuckt auch bei solch einem Fehler den du hattest mit Debug die bereits gelesenen Daten aus (sollte fürs Debugging ein wenig helfen).
          Ebenfalls habe ich, zu mindestens für synthetischen Daten, das ByteArray in Theory gefixt. Mit ein wenig Glück sollte es nun bei dir auch funktionieren. Ansonsten haben wir wenigstens mehr Debug Infos.

          Kommentar


            #20
            Danke, hab's gerade eingespielt, nun läuft es ohne dump durch. Hast Du auch noch eine Idee wie ich den Inhalt nun dekodiert und vor allem wieder codiert bekomme, so dass ich die WB steuern kann?


            Laden mit 6 A / 3ph / Sonnenmodus aus:
            Code:
            INFO[0000] Connecting to 192.168.1.86:5033
            INFO[0000] successfully connected to 192.168.1.86:5033
            INFO[0000] hiding auth request for security, use debug >= 99 to debug authentication
            TRAC[0000] read [{ RSCP_AUTHENTICATION UChar8 10 }]
            TRAC[0000] read plain []byte{0xe3, 0xdc, 0x0, 0x11, 0x95, 0xe4, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0xbd, 0x33, 0x8, 0x0, 0x1, 0x0, 0x80, 0x0, 0x3, 0x1, 0x0, 0xa, 0x72, 0x1f, 0xe3, 0x20}
            INFO[0000] successfully authenticated (level: AUTH_LEVEL_USER)
            DEBU[0000] write [{ INFO_REQ_UTC_TIME None <nil> } { EMS_REQ_POWER_PV None <nil> } { EMS_REQ_POWER_WB_ALL None <nil> } { EMS_REQ_POWER_WB_SOLAR None <nil> } { WB_REQ_DATA Container [{ WB_INDEX UChar8 0 } { WB_REQ_PARAM_1 None <nil> } { WB_REQ_EXTERN_DATA_ALG None <nil> }] }]
            TRAC[0000] write plain []byte{0xe3, 0xdc, 0x0, 0x11, 0x94, 0xe4, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x4, 0x19, 0x42, 0x10, 0x39, 0x0, 0xf, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0xe, 0x16, 0x0, 0x1, 0x0, 0x4, 0xe, 0x3, 0x1, 0x0, 0x0, 0x1b, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x14, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x80, 0xe1, 0xd3, 0xbb}
            TRAC[0000] write crypt []byte{0x1, 0x84, 0xca, 0xb0, 0x37, 0xdf, 0xdf, 0xfa, 0xf2, 0xb9, 0xd6, 0x3d, 0x8c, 0xcd, 0xe2, 0x54, 0x65, 0xb5, 0xd5, 0xa0, 0x59, 0xdd, 0x5d, 0x1, 0xfb, 0xcc, 0x9a, 0xaf, 0x30, 0xd1, 0xe0, 0x15, 0xa9, 0x34, 0xae, 0xc8, 0x54, 0x11, 0xd7, 0x5c, 0xde, 0x37, 0x6e, 0x5f, 0xc2, 0x1b, 0xeb, 0x9a, 0x34, 0xd5, 0x8, 0x58, 0xa2, 0xcc, 0xb7, 0xb8, 0x96, 0xd, 0x27, 0x57, 0xbb, 0x6, 0x27, 0x85, 0x83, 0x6e, 0xf8, 0xce, 0xa, 0x51, 0xf8, 0x40, 0x9, 0xb5, 0xad, 0xb9, 0xf8, 0x32, 0xf1, 0x77, 0xd3, 0x34, 0x1d, 0xb2, 0x7, 0xd7, 0xc1, 0x8f, 0x5e, 0xd9, 0x2f, 0xb5, 0xa0, 0x8d, 0x9b, 0x23}
            TRAC[0000] read [{ INFO_UTC_TIME Timestamp 2021-07-30 11:37:57.000873 +0000 UTC } { EMS_POWER_PV Int32 2778 } { EMS_POWER_WB_ALL Int32 4230 } { EMS_POWER_WB_SOLAR Int32 4212 } { WB_DATA Container [{ WB_INDEX UInt16 0 } { WB_RSP_PARAM_1 Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [0 0 6 0 0 0 0 0] }] } { WB_EXTERN_DATA_ALG Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [92 3 112 6 0 0 0 0] }] }] }]
            TRAC[0000] read plain []byte{0xe3, 0xdc, 0x0, 0x11, 0x95, 0xe4, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xb6, 0x1a, 0x34, 0x86, 0x0, 0xf, 0x0, 0x80, 0xa, 0xf, 0xc, 0x0, 0x95, 0xe4, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x28, 0x52, 0xd, 0x0, 0x1, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0xda, 0xa, 0x0, 0x0, 0x1f, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x86, 0x10, 0x0, 0x0, 0x20, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x74, 0x10, 0x0, 0x0, 0x0, 0x0, 0x84, 0xe, 0xe, 0x4b, 0x0, 0x1, 0x0, 0x4, 0xe, 0x5, 0x2, 0x0, 0x0, 0x0, 0x1b, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x5c, 0x3, 0x70, 0x6, 0x0, 0x0, 0x0, 0x0, 0xd6, 0xd4, 0x91, 0xa8}
            INFO[0000] disconnected
            {"EMS_POWER_PV":2778,"EMS_POWER_WB_ALL":4230,"EMS_ POWER_WB_SOLAR":4212,"INFO_UTC_TIME":"2021-07-30T11:37:57.000873Z","WB_DATA":{"WB_INDEX":0,"WB_E XTERN_DATA_ALG":{"WB_EXTERN_DATA":"XANwBgAAAAA="," WB_EXTERN_DATA_LEN":8},"WB_RSP_PARAM_1":{"WB_EXTER N_DATA":"AAAGAAAAAAA=","WB_EXTERN_DATA_LEN":8}}}
            Laden mit 7A / 3 ph / Sonnenmodus aus:
            Code:
            DEBU[0000] write [{ INFO_REQ_UTC_TIME None <nil> } { EMS_REQ_POWER_PV None <nil> } { EMS_REQ_POWER_WB_ALL None <nil> } { EMS_REQ_POWER_WB_SOLAR None <nil> } { WB_REQ_DATA Container [{ WB_INDEX UChar8 0 } { WB_REQ_PARAM_1 None <nil> } { WB_REQ_EXTERN_DATA_ALG None <nil> }] }]
            TRAC[0000] write plain []byte{0xe3, 0xdc, 0x0, 0x11, 0x55, 0xef, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x29, 0xee, 0x94, 0x1f, 0x39, 0x0, 0xf, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0xe, 0x16, 0x0, 0x1, 0x0, 0x4, 0xe, 0x3, 0x1, 0x0, 0x0, 0x1b, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x14, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0xa3, 0x31, 0x65, 0x1f}
            TRAC[0000] write crypt []byte{0xa0, 0x15, 0x8a, 0x22, 0x3e, 0x96, 0x7f, 0xe4, 0x13, 0xf4, 0x57, 0xe0, 0xd2, 0xc7, 0x11, 0x1b, 0xd4, 0x9f, 0xf0, 0x66, 0x6c, 0xf8, 0x54, 0x27, 0xa7, 0xc2, 0xb4, 0xbe, 0xd7, 0x8a, 0xbe, 0x33, 0x34, 0xb8, 0xcf, 0xaf, 0xcc, 0x92, 0x87, 0xdd, 0x9d, 0x73, 0x65, 0xaf, 0x6e, 0xd2, 0x85, 0xf0, 0x66, 0x13, 0x85, 0x76, 0x8c, 0xdf, 0xbe, 0x76, 0x57, 0x9f, 0x24, 0x11, 0x65, 0x52, 0xe4, 0x71, 0x0, 0xdf, 0x4d, 0x8b, 0xd3, 0xf8, 0xa1, 0x32, 0x1a, 0x84, 0xf8, 0x3d, 0xb3, 0x2d, 0xa2, 0x7f, 0x58, 0x9e, 0x13, 0x13, 0x1f, 0x70, 0xc0, 0xda, 0xaa, 0xa9, 0x8e, 0x4e, 0x41, 0x1, 0x21, 0xe9}
            TRAC[0000] read [{ INFO_UTC_TIME Timestamp 2021-07-30 12:23:51.000212 +0000 UTC } { EMS_POWER_PV Int32 4143 } { EMS_POWER_WB_ALL Int32 4849 } { EMS_POWER_WB_SOLAR Int32 4851 } { WB_DATA Container [{ WB_INDEX UInt16 0 } { WB_RSP_PARAM_1 Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [0 0 7 0 0 0 0 0] }] } { WB_EXTERN_DATA_ALG Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [100 3 112 7 0 0 0 0] }] }] }]
            TRAC[0000] read plain []byte{0xe3, 0xdc, 0x0, 0x11, 0x57, 0xef, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x90, 0x95, 0xaa, 0xc, 0x86, 0x0, 0xf, 0x0, 0x80, 0xa, 0xf, 0xc, 0x0, 0x57, 0xef, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x20, 0x3c, 0x3, 0x0, 0x1, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x2f, 0x10, 0x0, 0x0, 0x1f, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0xf1, 0x12, 0x0, 0x0, 0x20, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0xf3, 0x12, 0x0, 0x0, 0x0, 0x0, 0x84, 0xe, 0xe, 0x4b, 0x0, 0x1, 0x0, 0x4, 0xe, 0x5, 0x2, 0x0, 0x0, 0x0, 0x1b, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x64, 0x3, 0x70, 0x7, 0x0, 0x0, 0x0, 0x0, 0xd1, 0x79, 0x60, 0xb1}
            INFO[0000] disconnected
            {"EMS_POWER_PV":4143,"EMS_POWER_WB_ALL":4849,"EMS_ POWER_WB_SOLAR":4851,"INFO_UTC_TIME":"2021-07-30T12:23:51.000212Z","WB_DATA":{"WB_INDEX":0,"WB_E XTERN_DATA_ALG":{"WB_EXTERN_DATA":"ZANwBwAAAAA="," WB_EXTERN_DATA_LEN":8},"WB_RSP_PARAM_1":{"WB_EXTER N_DATA":"AAAHAAAAAAA=","WB_EXTERN_DATA_LEN":8}}}
            Laden mit 7A / 1ph / Sonnenmodus aus (~ 3200W, also wohl eher 14A, auch wenn 7A im Webinterface eingestellt sind):
            Code:
            DEBU[0000] write [{ INFO_REQ_UTC_TIME None <nil> } { EMS_REQ_POWER_PV None <nil> } { EMS_REQ_POWER_WB_ALL None <nil> } { EMS_REQ_POWER_WB_SOLAR None <nil> } { WB_REQ_DATA Container [{ WB_INDEX UChar8 0 } { WB_REQ_PARAM_1 None <nil> } { WB_REQ_EXTERN_DATA_ALG None <nil> }] }]
            TRAC[0000] write plain []byte{0xe3, 0xdc, 0x0, 0x11, 0xe, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0xcf, 0x8f, 0x23, 0x5, 0x39, 0x0, 0xf, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0xe, 0x16, 0x0, 0x1, 0x0, 0x4, 0xe, 0x3, 0x1, 0x0, 0x0, 0x1b, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x14, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0xaf, 0xbd, 0x49, 0xb1}
            TRAC[0000] write crypt []byte{0xcc, 0x3e, 0x78, 0x1e, 0xb8, 0xf6, 0x41, 0x47, 0xac, 0xa, 0x89, 0xa9, 0xaf, 0x24, 0xfd, 0x5, 0x79, 0xb2, 0xf3, 0x63, 0x8d, 0xfc, 0x46, 0x3, 0x76, 0xc8, 0x58, 0xb1, 0xd1, 0xb9, 0xc2, 0x17, 0x60, 0x88, 0xb9, 0x7d, 0x85, 0xc, 0xa, 0xf3, 0xa, 0x15, 0xfd, 0x69, 0x6a, 0x36, 0xb8, 0x36, 0x4, 0x45, 0xc7, 0x92, 0x24, 0x62, 0x6c, 0xe1, 0xe, 0xc3, 0x12, 0x3, 0xe9, 0x6b, 0x5d, 0xb1, 0xfb, 0x1c, 0x15, 0x5a, 0x27, 0x92, 0xd4, 0xdf, 0x3f, 0xb2, 0x91, 0x22, 0x74, 0xba, 0xa9, 0x72, 0xa1, 0x9a, 0x50, 0x4, 0xc0, 0x50, 0x8b, 0x5f, 0xf6, 0x24, 0x8, 0x13, 0x7f, 0x7e, 0x45, 0x6f}
            TRAC[0000] read [{ INFO_UTC_TIME Timestamp 2021-07-30 12:26:55.000774 +0000 UTC } { EMS_POWER_PV Int32 6519 } { EMS_POWER_WB_ALL Int32 3255 } { EMS_POWER_WB_SOLAR Int32 3258 } { WB_DATA Container [{ WB_INDEX UInt16 0 } { WB_RSP_PARAM_1 Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [0 0 7 0 0 0 0 0] }] } { WB_EXTERN_DATA_ALG Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [100 2 112 7 0 0 0 0] }] }] }]
            TRAC[0000] read plain []byte{0xe3, 0xdc, 0x0, 0x11, 0xf, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x30, 0x71, 0x3a, 0x2e, 0x86, 0x0, 0xf, 0x0, 0x80, 0xa, 0xf, 0xc, 0x0, 0xf, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x70, 0xcf, 0xb, 0x0, 0x1, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x77, 0x19, 0x0, 0x0, 0x1f, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0xb7, 0xc, 0x0, 0x0, 0x20, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0xba, 0xc, 0x0, 0x0, 0x0, 0x0, 0x84, 0xe, 0xe, 0x4b, 0x0, 0x1, 0x0, 0x4, 0xe, 0x5, 0x2, 0x0, 0x0, 0x0, 0x1b, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x64, 0x2, 0x70, 0x7, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x73, 0xa2, 0xe1}
            INFO[0000] disconnected
            {"EMS_POWER_PV":6519,"EMS_POWER_WB_ALL":3255,"EMS_ POWER_WB_SOLAR":3258,"INFO_UTC_TIME":"2021-07-30T12:26:55.000774Z","WB_DATA":{"WB_INDEX":0,"WB_E XTERN_DATA_ALG":{"WB_EXTERN_DATA":"ZAJwBwAAAAA="," WB_EXTERN_DATA_LEN":8},"WB_RSP_PARAM_1":{"WB_EXTER N_DATA":"AAAHAAAAAAA=","WB_EXTERN_DATA_LEN":8}}}
            Laden mit 6A / 1ph / Sonnenmodus aus (~2830W)
            Code:
            DEBU[0000] write [{ INFO_REQ_UTC_TIME None <nil> } { EMS_REQ_POWER_PV None <nil> } { EMS_REQ_POWER_WB_ALL None <nil> } { EMS_REQ_POWER_WB_SOLAR None <nil> } { WB_REQ_DATA Container [{ WB_INDEX UChar8 0 } { WB_REQ_PARAM_1 None <nil> } { WB_REQ_EXTERN_DATA_ALG None <nil> }] }]
            TRAC[0000] write plain []byte{0xe3, 0xdc, 0x0, 0x11, 0x8c, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xdb, 0x81, 0x2c, 0x39, 0x0, 0xf, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0xe, 0x16, 0x0, 0x1, 0x0, 0x4, 0xe, 0x3, 0x1, 0x0, 0x0, 0x1b, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x14, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x77, 0xeb, 0x8b, 0x64}
            TRAC[0000] write crypt []byte{0x1c, 0x4e, 0xe8, 0xb9, 0x1f, 0x8b, 0x1d, 0x25, 0xab, 0x31, 0x70, 0x76, 0xba, 0x9a, 0xcc, 0x4b, 0x40, 0xdd, 0x11, 0x5b, 0x44, 0x4b, 0xab, 0xfa, 0xc8, 0x7f, 0x65, 0xe, 0x9e, 0x73, 0x6d, 0xb1, 0xf1, 0xe, 0x1d, 0x18, 0x7f, 0xa2, 0x82, 0xde, 0xe3, 0x3c, 0xb5, 0x7e, 0xb9, 0xe2, 0x43, 0x29, 0xb4, 0xee, 0x4a, 0x66, 0xc2, 0x6d, 0x61, 0xec, 0xbe, 0xd1, 0x8b, 0x55, 0xf0, 0x5, 0x86, 0x25, 0xc7, 0xa, 0x75, 0x7, 0x94, 0x8a, 0x5f, 0xd3, 0xc, 0xa6, 0x0, 0x83, 0x54, 0xca, 0xd4, 0x8f, 0x11, 0x99, 0xfb, 0x9d, 0xdf, 0xec, 0xff, 0x71, 0xc, 0x20, 0xbc, 0x8e, 0xc4, 0x71, 0x16, 0x1b}
            TRAC[0000] read [{ INFO_UTC_TIME Timestamp 2021-07-30 12:29:02.000438 +0000 UTC } { EMS_POWER_PV Int32 2007 } { EMS_POWER_WB_ALL Int32 2830 } { EMS_POWER_WB_SOLAR Int32 2832 } { WB_DATA Container [{ WB_INDEX UInt16 0 } { WB_RSP_PARAM_1 Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [0 0 6 0 0 0 0 0] }] } { WB_EXTERN_DATA_ALG Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [100 2 112 6 0 0 0 0] }] }] }]
            TRAC[0000] read plain []byte{0xe3, 0xdc, 0x0, 0x11, 0x8e, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x80, 0xa, 0x3d, 0x1a, 0x86, 0x0, 0xf, 0x0, 0x80, 0xa, 0xf, 0xc, 0x0, 0x8e, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xae, 0x6, 0x0, 0x1, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0xd7, 0x7, 0x0, 0x0, 0x1f, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0xe, 0xb, 0x0, 0x0, 0x20, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x10, 0xb, 0x0, 0x0, 0x0, 0x0, 0x84, 0xe, 0xe, 0x4b, 0x0, 0x1, 0x0, 0x4, 0xe, 0x5, 0x2, 0x0, 0x0, 0x0, 0x1b, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x64, 0x2, 0x70, 0x6, 0x0, 0x0, 0x0, 0x0, 0x25, 0x7c, 0x35, 0x83}
            INFO[0000] disconnected
            {"EMS_POWER_PV":2007,"EMS_POWER_WB_ALL":2830,"EMS_ POWER_WB_SOLAR":2832,"INFO_UTC_TIME":"2021-07-30T12:29:02.000438Z","WB_DATA":{"WB_INDEX":0,"WB_E XTERN_DATA_ALG":{"WB_EXTERN_DATA":"ZAJwBgAAAAA="," WB_EXTERN_DATA_LEN":8},"WB_RSP_PARAM_1":{"WB_EXTER N_DATA":"AAAGAAAAAAA=","WB_EXTERN_DATA_LEN":8}}}
            Laden aus (fehlende Sonne) / 6A / 3ph / Sonnenmodus an
            Code:
            DEBU[0000] write [{ INFO_REQ_UTC_TIME None <nil> } { EMS_REQ_POWER_PV None <nil> } { EMS_REQ_POWER_WB_ALL None <nil> } { EMS_REQ_POWER_WB_SOLAR None <nil> } { WB_REQ_DATA Container [{ WB_INDEX UChar8 0 } { WB_REQ_PARAM_1 None <nil> } { WB_REQ_EXTERN_DATA_ALG None <nil> }] }]
            TRAC[0000] write plain []byte{0xe3, 0xdc, 0x0, 0x11, 0xea, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0xd7, 0x2b, 0x8a, 0x32, 0x39, 0x0, 0xf, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe, 0xe, 0x16, 0x0, 0x1, 0x0, 0x4, 0xe, 0x3, 0x1, 0x0, 0x0, 0x1b, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x14, 0x10, 0x4, 0xe, 0x0, 0x0, 0x0, 0x88, 0x94, 0x95, 0x6f}
            TRAC[0000] write crypt []byte{0x85, 0x77, 0xdd, 0x74, 0x19, 0xf6, 0x89, 0x30, 0x8a, 0x9d, 0x45, 0x69, 0xdb, 0x35, 0x38, 0xf0, 0xf5, 0xa0, 0xe8, 0x87, 0xb1, 0xed, 0xf2, 0x68, 0x76, 0xd4, 0x50, 0x13, 0x8e, 0xec, 0xc2, 0x34, 0x74, 0xaa, 0x6f, 0x6a, 0x8c, 0x86, 0x18, 0x28, 0x3f, 0x1b, 0x7c, 0x20, 0x17, 0xec, 0xd2, 0xbd, 0xd, 0x77, 0xd5, 0xb4, 0x5d, 0xd7, 0x91, 0x5c, 0xa2, 0x8b, 0x45, 0xac, 0x0, 0xa7, 0xda, 0xaa, 0xec, 0x83, 0xe8, 0xec, 0x28, 0xdd, 0x24, 0x50, 0x15, 0x4d, 0x6f, 0x29, 0xbb, 0xf8, 0x27, 0x55, 0xf, 0x27, 0x1, 0x52, 0x7b, 0x82, 0xc, 0x4c, 0x84, 0xb1, 0x60, 0x8a, 0xc6, 0x86, 0xa0, 0x88}
            TRAC[0000] read [{ INFO_UTC_TIME Timestamp 2021-07-30 12:30:36.00055 +0000 UTC } { EMS_POWER_PV Int32 2383 } { EMS_POWER_WB_ALL Int32 0 } { EMS_POWER_WB_SOLAR Int32 0 } { WB_DATA Container [{ WB_INDEX UInt16 0 } { WB_RSP_PARAM_1 Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [0 0 6 0 0 0 0 0] }] } { WB_EXTERN_DATA_ALG Container [{ WB_EXTERN_DATA_LEN Int32 8 } { WB_EXTERN_DATA ByteArray [100 2 208 6 0 0 0 0] }] }] }]
            TRAC[0000] read plain []byte{0xe3, 0xdc, 0x0, 0x11, 0xec, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x8, 0x6e, 0xdc, 0x20, 0x86, 0x0, 0xf, 0x0, 0x80, 0xa, 0xf, 0xc, 0x0, 0xec, 0xf0, 0x3, 0x61, 0x0, 0x0, 0x0, 0x0, 0x70, 0x64, 0x8, 0x0, 0x1, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x4f, 0x9, 0x0, 0x0, 0x1f, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x80, 0x1, 0x6, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0xe, 0xe, 0x4b, 0x0, 0x1, 0x0, 0x4, 0xe, 0x5, 0x2, 0x0, 0x0, 0x0, 0x1b, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x10, 0x84, 0xe, 0xe, 0x1a, 0x0, 0x11, 0x20, 0x4, 0xe, 0x6, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, 0x10, 0x20, 0x4, 0xe, 0x10, 0x8, 0x0, 0x64, 0x2, 0xd0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x88, 0xd0, 0x92, 0xc2}
            INFO[0000] disconnected
            {"EMS_POWER_PV":2383,"EMS_POWER_WB_ALL":0,"EMS_POW ER_WB_SOLAR":0,"INFO_UTC_TIME":"2021-07-30T12:30:36.00055Z","WB_DATA":{"WB_INDEX":0,"WB_EX TERN_DATA_ALG":{"WB_EXTERN_DATA":"ZALQBgAAAAA=","W B_EXTERN_DATA_LEN":8},"WB_RSP_PARAM_1":{"WB_EXTERN _DATA":"AAAGAAAAAAA=","WB_EXTERN_DATA_LEN":8}}}

            Kommentar


              #21
              Ich befürchte die Interpretation der Daten musst du selber machen....
              Oder mal Bei E3DC nachfragen ob die dir da genauere Infos dazu geben können.

              Was mir auf die schnelle aufgefallen ist (hast du vermutlich auch schon gesehen):
              Die Amper scheinen als Zahl da zu stehen.

              Was noch ein wenig unschön ist... das ich das als Text ausgebe (und nicht mal wirklich nutzbar) .... wäre schöner wenn ich das als Array ausgebe wie man es erwarten würde für den Datentyp Byte Array.... also anstatt
              Code:
              "WB_EXTERN_DATA":"AAAGAAAAAAA="
              Code:
              "WB_EXTERN_DATA":[0, 0, 6, 0, 0, 0, 0, 0]
              Das schaue ich mir noch an.
              Du kannst für die Interpretation ja mal mit der Debug Ausgabe arbeiten.

              Kommentar


                #22
                Stimmt, den Array könnte ich dann zumindest interpretieren; könnte ich es dann auch als Array wieder rein geben?

                Kommentar


                  #23
                  Du meinst ein ByteArray senden? Gibt es überhaupt ein Tag für ByteArray and E3DC senden?

                  Kommentar


                    #24
                    Nicht direkt, über WB_EXTERN_DATA und WB_EXTERN_DATA_LEN lassen sich aber wohl Variable Daten übergeben, so in etwa:

                    [
                    [
                    "WB_REQ_DATA",
                    [
                    ["WB_INDEX", 0],
                    "WB_REQ_PARAM_1",
                    "WB_REQ_EXTERN_DATA_ALG"
                    ["WB_REQ_SET_EXTERN",
                    ["WB_EXTERN_DATA_LEN", 6]
                    ["WB_EXTERN_DATA","Daten als char6", 6 ]
                    ]
                    ]
                    ]
                    ]

                    Kommentar


                      #25
                      Ok, das müsste ich vermutlich auch noch bauen.
                      Das senden, behaupte ich jetzt mal blind, funktioniert vermutlich noch nicht. Werde mir das noch anschauen... wird aber vermutlich nicht heute fertig

                      Mittlerweile habe ich noch eine neue Version hochgeladen, in welcher mindestens die Ausgabe besser ist von dem ByteArray.
                      https://github.com/spali/go-rscp/rel...ag/v0.1.0-beta

                      Kommentar


                        #26
                        Neue Beta1 hochgeladen... zu mindestens in Theorie kann man nun auch ByteArrays senden

                        Bei deinem Beispiel oben bin ich mir jedoch nicht sicher ob die Verschachtelung richtig ist mit dem WB_REQ_DATA.
                        Aber den SET_EXTERN teil würde ich sagen dürfte in etwa so aussehen:
                        Code:
                        [
                          "WB_REQ_SET_EXTERN",
                          ["WB_EXTERN_DATA_LEN", 6],
                          ["WB_EXTERN_DATA", [0, 6, 0, 0, 0, 0]]
                        ]
                        Die Frage ist, ob das direkt so geht oder wie man den WB_INDEX mit gibt... oberhalb in einem Container wie in deinem Beispiel... oder ev. innerhalb WB_REQ_SET_EXTERN.

                        https://github.com/spali/go-rscp/rel...g/v0.1.0-beta1

                        Kommentar


                          #27
                          Danke Dir, damit probiere ich mal rum.
                          Die Settings sind, wenn sie an der Kiste oder über die Webseite gemacht werden für alle Wallboxen gleich, daher teste ich erst mal ohne. Bei der Verschachtelung bin ich mir sonst auch noch unsicher.

                          Kommentar


                            #28
                            Es funktioniert
                            Aus auslesen bringt nicht so viel wie erhofft, da ich die Werte noch irgendwie dekodieren muss bzw. viele immer 0 sind.
                            Viel wichtiger aber, die Steuerung läuft: Stromstärke und Anzahl Phasen lassen sich ändern, und über den Sonnenmodus kann ich das Laden starten und stoppen.

                            Vielen vielen Dank grandslam

                            Code:
                            [
                              [
                                "WB_REQ_DATA",
                                [
                                  [  "WB_INDEX", 0],
                                    "WB_REQ_PARAM_1",
                                    "WB_REQ_EXTERN_DATA_ALG",
                                    [
                                    "WB_REQ_SET_EXTERN",
                                    [
                                      ["WB_EXTERN_DATA_LEN", 6],
                                      ["WB_EXTERN_DATA", [sonnenmodus, strom, 0, phasen umschalten, 0, 0]]
                                    ]
                                  ]
                                ]
                              ]
                            ]

                            Kommentar


                              #29
                              Cool, freut mich zu hören.
                              Ich werde dann gleich mal den aktuellen Stand als 0.1.0 Release rauslassen.

                              Kommentar


                                #30
                                Hallo,

                                ich habe mir dein Tool installiert, weil ich gerne die Priorität der Wallbox automatisch schalten möchte.

                                Ich möchte drei Dinge schalten:
                                1. Priorität Hausbatterie / Auto (EMS_BATTERY_BEFORE_CAR_MODE)
                                2. Entladen der Hausbatterie ins Auto (EMS_BATTERY_TO_CAR_MODE)
                                3. Wallbox im Sonnenmodus / Netzmodus (WB_MODE)

                                Das Programm funktioniert, hier ein Beispiel:
                                ./e3dc '["EMS_REQ_POWER_BAT"]'
                                {"EMS_POWER_BAT":-1416}

                                Aber warum funktioniert keiner von diesen Aufrufen?

                                ./e3dc '["EMS_REQ_BATTERY_BEFORE_CAR_MODE"]'
                                error: message at index 0: expected *uint8 got <nil> : value does not match data type

                                ./e3dc '["EMS_REQ_SET_BATTERY_BEFORE_CAR_MODE",true]'
                                error: json unmarshal error: json: cannot unmarshal bool into Go value of type rscp.jsonMessage

                                ./e3dc '["EMS_REQ_SET_BATTERY_BEFORE_CAR_MODE",1]'
                                error: json unmarshal error: json: cannot unmarshal number into Go value of type rscp.jsonMessage

                                ./e3dc '["WB_REQ_MODE"]'
                                {"WB_MODE":"ERR_FORMAT"}

                                Mir sagen sie Fehlermeldungen nichts. Kann mir hier jemand weiter helfen?

                                Vielen Dank,
                                Peter

                                Kommentar

                                Lädt...
                                X