79730953

Date: 2025-08-10 02:05:32
Score: 10
Natty:
Report link

El codigo desde mi pc no corria pero estuve revisando igrid y me fije que explican como funciona la estructura DLMS y como se arma el AARQ, entonces creo que cda campo debe insertarse en una posicion exacta.

comparando con tu codigo original veo que el primero donde esta la contraseña lo pones asi

aarq = AARQ_REQUEST.replace(
    bytearray.fromhex("38 38 39 33 35 38 36 30"), 
    bytearray(SERIAL_NUMBER, 'ascii')
)

pero en micropython esta en modo fija

b'00053346'

entonces segun deepsek despues de hacer testing me recomienda que no se ponga fija porque sino genera diferentes frames


for i, (p, m) in enumerate(zip(aarq_python, aarq_micropython)):
    if p != m:
        print(f"Byte {i}: Python={p:02X}, MicroPython={m:02X}")

creo que desde el codigo que testie y revise el error empieza antes del bloque /xBe/x10 porque python no calcula la longitud y no coincide con la de micropyhton al meter de la contraseña.

puede que la password sea la misma pero el paquete no es el mismo, y el medido rechaza el AARQ. no tengo clara la solucion pero segun recomendacione de deepseek porque no tengo el codigo completo la solucionar podr ser construir el paquete con la longitud correcta despues de insertar la cotraseña.

Reasons:
  • Blacklisted phrase (2): tengo
  • Blacklisted phrase (1): porque
  • Blacklisted phrase (2.5): solucion
  • RegEx Blacklisted phrase (2.5): misma
  • RegEx Blacklisted phrase (2.5): mismo
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Jared McCarthy