Página 3 de 5

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 06 Nov 2020, 09:00
por andygi
Homo_non_sapiens escribió: 06 Nov 2020, 08:44
andygi escribió: 05 Nov 2020, 22:35pues parece ser que a 10kw trabajando entre 4.1 y 3.6 la celda ...
Te refieres a que has medido una capacidad de 10kWh (descarga de 4.1V a 3.6V por celda)? Y que vuelves a medir la capacidad con el Coulometro, que es más preciso?
Exacto, he medido los mAh entregados por la bateria en un rango de 4.1v a 3.6v de las celdas con el coulometro.
La capacidad teorica de la bateria la calcule sumando todas las capacidades de celdas que obtuve con el OPU de cada S y cogiendo la de menor valor resultante, aunque estan bastante igualadas y hay pocos mAh de diferencia.
Existe la gran diferencia que las pruebas de baterias las hice a 1A en descarga pero en la practica ahora con un consumo estandar de la casa es bastante inferior a 1A por celda, eso evidentemente hace que la celda entrege mas mAh, pero no deberia ser mas alla del 20% adicional.

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 06 Nov 2020, 09:54
por Homo_non_sapiens
andygi escribió: 06 Nov 2020, 09:00Exacto, he medido los mAh entregados por la bateria en un rango de 4.1v a 3.6v de las celdas con el coulometro
Parece que has conseguido una batería realmente buena. Enhorabuena!

andygi escribió: 06 Nov 2020, 09:00Existe la gran diferencia que las pruebas de baterias las hice a 1A en descarga pero en la practica ahora con un consumo estandar de la casa es bastante inferior a 1A por celda
Cierto. Si tienes 102 series en paralelo, y el consumo máximo de casa es de 4kW (83A a 48V), equivale a ~800mA/celda. Si el consumo estandar es de 2kW, son solo ~400mA/celda

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 06 Nov 2020, 10:11
por andygi
Homo_non_sapiens escribió: 06 Nov 2020, 09:54
andygi escribió: 06 Nov 2020, 09:00Exacto, he medido los mAh entregados por la bateria en un rango de 4.1v a 3.6v de las celdas con el coulometro
Parece que has conseguido una batería realmente buena. Enhorabuena!

andygi escribió: 06 Nov 2020, 09:00Existe la gran diferencia que las pruebas de baterias las hice a 1A en descarga pero en la practica ahora con un consumo estandar de la casa es bastante inferior a 1A por celda
Cierto. Si tienes 102 series en paralelo, y el consumo máximo de casa es de 4kW (83A a 48V), equivale a ~800mA/celda. Si el consumo estandar es de 2kW, son solo ~400mA/celda
El consumo estandar es de <300w!! electrodomestics A+++ sobretodo nevera, iluminacion led y poco necesaria ya que entra mucha luz diurna.

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 06 Nov 2020, 10:50
por andygi
andygi escribió: 06 Nov 2020, 10:11
Homo_non_sapiens escribió: 06 Nov 2020, 09:54
andygi escribió: 06 Nov 2020, 09:00Exacto, he medido los mAh entregados por la bateria en un rango de 4.1v a 3.6v de las celdas con el coulometro
Parece que has conseguido una batería realmente buena. Enhorabuena!

andygi escribió: 06 Nov 2020, 09:00Existe la gran diferencia que las pruebas de baterias las hice a 1A en descarga pero en la practica ahora con un consumo estandar de la casa es bastante inferior a 1A por celda
Cierto. Si tienes 102 series en paralelo, y el consumo máximo de casa es de 4kW (83A a 48V), equivale a ~800mA/celda. Si el consumo estandar es de 2kW, son solo ~400mA/celda
El consumo estandar es de <300w!! electrodomestics A+++ sobretodo nevera, iluminacion led y poco necesaria ya que entra mucha luz diurna.
Amplio informacion.

en estos momentos tengo un 4% de SoC 54.0v y 8Ah restantes, pero tengo la celda mas baja a 3.54v y la mas alta a 3.64v (a falta de poner un balanceador activo que esta en camio), pues bien segun mis calculos bajando la celda de 3,5v a 3.1v y dejando el resto sobre 3.2v aun tengo mas capacidad que la esperada. Asi que hoy voy a bajar la celda esa hasta 3.1v y obtendre el resultado final de capacidad sin balanceo. Auguro que ganare algo mas de los 200Ah de los que incialmente habia programado el coulometro.

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 06 Nov 2020, 10:55
por Corazon_de_perro
andygi escribió: 06 Nov 2020, 10:50
andygi escribió: 06 Nov 2020, 10:11
Homo_non_sapiens escribió: 06 Nov 2020, 09:54
andygi escribió: 06 Nov 2020, 09:00Exacto, he medido los mAh entregados por la bateria en un rango de 4.1v a 3.6v de las celdas con el coulometro
Parece que has conseguido una batería realmente buena. Enhorabuena!

andygi escribió: 06 Nov 2020, 09:00Existe la gran diferencia que las pruebas de baterias las hice a 1A en descarga pero en la practica ahora con un consumo estandar de la casa es bastante inferior a 1A por celda
Cierto. Si tienes 102 series en paralelo, y el consumo máximo de casa es de 4kW (83A a 48V), equivale a ~800mA/celda. Si el consumo estandar es de 2kW, son solo ~400mA/celda
El consumo estandar es de <300w!! electrodomestics A+++ sobretodo nevera, iluminacion led y poco necesaria ya que entra mucha luz diurna.
Amplio informacion.

en estos momentos tengo un 4% de SoC 54.0v y 8Ah restantes, pero tengo la celda mas baja a 3.54v y la mas alta a 3.64v (a falta de poner un balanceador activo que esta en camio), pues bien segun mis calculos bajando la celda de 3,5v a 3.1v y dejando el resto sobre 3.2v aun tengo mas capacidad que la esperada. Asi que hoy voy a bajar la celda esa hasta 3.1v y obtendre el resultado final de capacidad sin balanceo. Auguro que ganare algo mas de los 200Ah de los que incialmente habia programado el coulometro.
Ok, pero atento que cuando se vacían la tensión cae muy rápidamente. ¿Tienes alguna alarma que te avise?

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 06 Nov 2020, 14:57
por andygi
Gabriel_2018 escribió: 06 Nov 2020, 10:55
andygi escribió: 06 Nov 2020, 10:50
andygi escribió: 06 Nov 2020, 10:11
Homo_non_sapiens escribió: 06 Nov 2020, 09:54
andygi escribió: 06 Nov 2020, 09:00Exacto, he medido los mAh entregados por la bateria en un rango de 4.1v a 3.6v de las celdas con el coulometro
Parece que has conseguido una batería realmente buena. Enhorabuena!

andygi escribió: 06 Nov 2020, 09:00Existe la gran diferencia que las pruebas de baterias las hice a 1A en descarga pero en la practica ahora con un consumo estandar de la casa es bastante inferior a 1A por celda
Cierto. Si tienes 102 series en paralelo, y el consumo máximo de casa es de 4kW (83A a 48V), equivale a ~800mA/celda. Si el consumo estandar es de 2kW, son solo ~400mA/celda
El consumo estandar es de <300w!! electrodomestics A+++ sobretodo nevera, iluminacion led y poco necesaria ya que entra mucha luz diurna.
Amplio informacion.

en estos momentos tengo un 4% de SoC 54.0v y 8Ah restantes, pero tengo la celda mas baja a 3.54v y la mas alta a 3.64v (a falta de poner un balanceador activo que esta en camio), pues bien segun mis calculos bajando la celda de 3,5v a 3.1v y dejando el resto sobre 3.2v aun tengo mas capacidad que la esperada. Asi que hoy voy a bajar la celda esa hasta 3.1v y obtendre el resultado final de capacidad sin balanceo. Auguro que ganare algo mas de los 200Ah de los que incialmente habia programado el coulometro.
Ok, pero atento que cuando se vacían la tensión cae muy rápidamente. ¿Tienes alguna alarma que te avise?
Si, la puse, de hecho ya he llegado.
Sorprendentemente 220Ah que medidos en Wh son 12360Wh

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 10:29
por Corazon_de_perro
andygi escribió: 03 Nov 2020, 19:14 Mas datos del Coulometro leidos por puerto serie.
Adjunto enlace de compra por si alguien esta interesado y en un rato el codigo python para leer por gpio de la rapberry pi.
https://es.aliexpress.com/item/4000052280557.html
Se debe comprar el Coulometro y la shunt por separado, ambos se pueden seleccionar a la compra del articulo.
Lo pedi el 23 de octubre y ha llegado hoy 3 de noviembre.
Pues parece interesante el vatímetro. Se ve que emite una cadena de datos a 9600 bps y que la mayoría de datos son en formato 4 bytes.

Una de las cadenas es 0 64 1 4 0 0 18 24 ....

El 100 de la carga diría que es el 64 6*16+4, temperatura 1400, 1 * 256 + 1*4, Tensión 1824 1*4096+8*256+2*16+4...

Si quieres y te apetece, puedes colgar el código en la parte de archivos del foro, con una foto de un simple test.

Supongo que también tienes que indicar la capacidad de la batería enviando algún comando, ¿es así?

Por otra parte, si se queda sin alimentación, ¿guarda los datos?

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 11:40
por Homo_non_sapiens
Gabriel_2018 escribió: 07 Nov 2020, 10:29Pues parece interesante el vatímetro. Se ve que emite una cadena de datos a 9600 bps y que la mayoría de datos son en formato 4 bytes ...
Coincido: Este "Coulometer" parece muy interesante. Es barato, preciso y fácil de leer con una Rpi (ver el post #30) :!:
Os dejo el enlace en inglés, porque la descripción traducida al "castellano" no hay Dios que la entienda:
https://www.aliexpress.com/item/4000895960269.html

Gabriel_2018 escribió: 07 Nov 2020, 10:29El 10 de la carga diría que es el 64 6*16+4
Querías decir "El 100% de la carga diría que es el 64 ---> (6*16 + 4*1") ?

Gabriel_2018 escribió: 07 Nov 2020, 10:29... temperatura 1400, 1 * 256 + 1*4
Cómo se entiende eso? "1400" sería (1*4096 + 4*256 + 0*16 + 0*1) = 5120 ... pero tú pones (1*256 + 1*4) = 300 ??
Tampoco cuadra "14 00", siendo 00 otro parámetro, porque "14" sería (1*16 + 4*1) = 20 :?:
Según el post #30, la temperatura es de 30°C - la única interpretación que cuadra con esto es la tuya, que serían 30.0°C
Yo creo que lo correcto sería "104" ---> (1*256 + 0*16 + 4*1) = 300 ??

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 12:39
por dpunto
andygi escribió: 05 Nov 2020, 22:36
SUNKING escribió: 24 Oct 2020, 12:55 Hola Andygi.
Si no es molestia, podrías decirme dónde compraste las baterías? Quisiera ampliar mi banco y por aquí son muy reacios a colaborar.
Muy buen trabajo. Enhorabuena.
Y gracias.
Te envio privado


Si puedes pasarme a mi también la información me gustaría ampliar

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 13:20
por Corazon_de_perro
Homo_non_sapiens escribió: 07 Nov 2020, 11:40
Gabriel_2018 escribió: 07 Nov 2020, 10:29Pues parece interesante el vatímetro. Se ve que emite una cadena de datos a 9600 bps y que la mayoría de datos son en formato 4 bytes ...

Gabriel_2018 escribió: 07 Nov 2020, 10:29El 10 de la carga diría que es el 64 6*16+4
Querías decir "El 100% de la carga diría que es el 64 ---> (6*16 + 4*1") ?

Gabriel_2018 escribió: 07 Nov 2020, 10:29... temperatura 1400, 1 * 256 + 1*4
Cómo se entiende eso? "1400" sería (1*4096 + 4*256 + 0*16 + 0*1) = 5120 ... pero tú pones (1*256 + 1*4) = 300 ??
Tampoco cuadra "14 00", siendo 00 otro parámetro, porque "14" sería (1*16 + 4*1) = 20 :?:
Según el post #30, la temperatura es de 30°C - la única interpretación que cuadra con esto es la tuya, que serían 30.0°C
Hay que leer entre líneas:
La cadena 0 64 1 4 0 0 18 24 es:

00 64 01 04 00 00 18 24 00 00

00 64 Es el SOC

01 04 00 00 Es la temperatura. Los dos primeros bytes van a la izquierda cuando es positivo y a la derecha cuando es negativo como complemento a 65536.
18 24 00 00 Es la tensión, con cuatro bytes también...

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 13:28
por Homo_non_sapiens
Gabriel_2018 escribió: 07 Nov 2020, 13:20Hay que leer entre líneas: ... La cadena 0 64 1 4 0 0 18 24 es: ... 00 64 01 04 00 00 18 24 00 00
00 64 Es el SOC
01 04 00 00 Es la temperatura. Los dos primeros bytes van a la izquierda cuando es positivo y a la derecha cuando es negativo como complemento a 65536.
18 24 00 00 Es la tensión, con cuatro bytes también...
Gracias, ahora parece que lo entiendo ...
Pero cómo se sabe, que el SoC son solo 2 bytes y la temperatura y la tensión son 4 bytes ?

- - - - - - - - - - - - - - - -

A ver si sé interpretar una cadena completa:
Coulometer.JPG
.
La cadena sería: 00 64 01 04 00 00 18 24 00 00 00 01 01 00 02 49 F0 00 00 00 00 00 00 02 6A 03 49 00
00 64 = (6*16 + 4*1) = 100 --> es el SoC (100%)
01 04 00 00 = (1*256 + 0*16 + 4*1) = 300 --> es la temperatura (30.0°C)
18 24 00 00 = (1*4096 + 8*256 + 2*16 + 4*1) = 6180 --> es la tensión (61.80V)
00 01 01 00 = (0*4096 + 0*256 + 0*16 + 1*1) : (0*4096 + 1*256 + 0*16 + 0*1) = 1 : 256 --> es la intensidad (-0.01mA) ?
02 49 F0 00 = (0*4096 + 2*256 + 4*16 + 9*1) : (15*4096 + 0*256 + 0*16 + 0*1) = 586 : 61440 --> es la capacidad (189.28mAh) ??
00 00 00 00 = (0*4096 + 0*256 + 0*16 + 0*1) = 0.0 --> es el tiempo (0.0 minutos)
00 02 6A 03 = (0*4096 + 0*256 + 0*16 + 2*1) : (6*4096 + 10*256 + 0*16 + 3*1) = 2 : 27139 --> es la energía (0.62Wh) ??
49 00 = (4*4096 + 9*256 + 0*16 + 0*1) = 18688 ??

Parece que no consigo interpretar la cadena ... :oops:

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 14:53
por andygi
Gabriel_2018 escribió: 07 Nov 2020, 10:29
andygi escribió: 03 Nov 2020, 19:14 Mas datos del Coulometro leidos por puerto serie.
Adjunto enlace de compra por si alguien esta interesado y en un rato el codigo python para leer por gpio de la rapberry pi.
https://es.aliexpress.com/item/4000052280557.html
Se debe comprar el Coulometro y la shunt por separado, ambos se pueden seleccionar a la compra del articulo.
Lo pedi el 23 de octubre y ha llegado hoy 3 de noviembre.
Pues parece interesante el vatímetro. Se ve que emite una cadena de datos a 9600 bps y que la mayoría de datos son en formato 4 bytes.

Una de las cadenas es 0 64 1 4 0 0 18 24 ....

El 100 de la carga diría que es el 64 6*16+4, temperatura 1400, 1 * 256 + 1*4, Tensión 1824 1*4096+8*256+2*16+4...

Si quieres y te apetece, puedes colgar el código en la parte de archivos del foro, con una foto de un simple test.

Supongo que también tienes que indicar la capacidad de la batería enviando algún comando, ¿es así?

Por otra parte, si se queda sin alimentación, ¿guarda los datos?
Guarda los datos, puedes tener mas de uno en paralelo puesto que cada coulometro puede tener un id diferente, y se alimenta por usb o sino desde la misma bateria por tante dificil que se apage.
Yo lo tengo alimentado por la pi a 5v y a la vez la bateria claro.
Voy a colgar el codigo python es bastante sencillo.

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 14:56
por Corazon_de_perro
Homo_non_sapiens escribió: 07 Nov 2020, 13:28
Gabriel_2018 escribió: 07 Nov 2020, 13:20Hay que leer entre líneas: ... La cadena 0 64 1 4 0 0 18 24 es: ... 00 64 01 04 00 00 18 24 00 00
00 64 Es el SOC
01 04 00 00 Es la temperatura. Los dos primeros bytes van a la izquierda cuando es positivo y a la derecha cuando es negativo como complemento a 65536.
18 24 00 00 Es la tensión, con cuatro bytes también...
Gracias, ahora parece que lo entiendo ...
Pero cómo se sabe, que el SoC son solo 2 bytes y la temperatura y la tensión son 4 bytes ?

- - - - - - - - - - - - - - - -

A ver si sé interpretar una cadena completa:
Coulometer.JPG
.
La cadena sería: 00 64 01 04 00 00 18 24 00 00 00 01 01 00 02 49 F0 00 00 00 00 00 00 02 6A 03 49 00
00 64 = (6*16 + 4*1) = 100 --> es el SoC (100%)
01 04 00 00 = (1*256 + 0*16 + 4*1) = 300 --> es la temperatura (30.0°C)
18 24 00 00 = (1*4096 + 8*256 + 2*16 + 4*1) = 6180 --> es la tensión (61.80V)
00 01 01 00 = (0*4096 + 0*256 + 0*16 + 1*1) : (0*4096 + 1*256 + 0*16 + 0*1) = 1 : 256 --> es la intensidad (-0.01mA) ?
02 49 F0 00 = (0*4096 + 2*256 + 4*16 + 9*1) : (15*4096 + 0*256 + 0*16 + 0*1) = 586 : 61440 --> es la capacidad (189.28mAh) ??
00 00 00 00 = (0*4096 + 0*256 + 0*16 + 0*1) = 0.0 --> es el tiempo (0.0 minutos)
00 02 6A 03 = (0*4096 + 0*256 + 0*16 + 2*1) : (6*4096 + 10*256 + 0*16 + 3*1) = 2 : 27139 --> es la energía (0.62Wh) ??
49 00 = (4*4096 + 9*256 + 0*16 + 0*1) = 18688 ??

Parece que no consigo interpretar la cadena ... :oops:
01 04 00 00 = (1*256 + 0*16 + 4*1) = 260 --> es la temperatura (26.0°C)
49 F0 00 00 = (4*4096 + 9*256 + 15*16 + 0*1) : (189.28mAh) ??

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 15:07
por andygi
Homo_non_sapiens escribió: 07 Nov 2020, 13:28
Gabriel_2018 escribió: 07 Nov 2020, 13:20Hay que leer entre líneas: ... La cadena 0 64 1 4 0 0 18 24 es: ... 00 64 01 04 00 00 18 24 00 00
00 64 Es el SOC
01 04 00 00 Es la temperatura. Los dos primeros bytes van a la izquierda cuando es positivo y a la derecha cuando es negativo como complemento a 65536.
18 24 00 00 Es la tensión, con cuatro bytes también...
Gracias, ahora parece que lo entiendo ...
Pero cómo se sabe, que el SoC son solo 2 bytes y la temperatura y la tensión son 4 bytes ?

- - - - - - - - - - - - - - - -

A ver si sé interpretar una cadena completa:
Coulometer.JPG
.
La cadena sería: 00 64 01 04 00 00 18 24 00 00 00 01 01 00 02 49 F0 00 00 00 00 00 00 02 6A 03 49 00
00 64 = (6*16 + 4*1) = 100 --> es el SoC (100%)
01 04 00 00 = (1*256 + 0*16 + 4*1) = 300 --> es la temperatura (30.0°C)
18 24 00 00 = (1*4096 + 8*256 + 2*16 + 4*1) = 6180 --> es la tensión (61.80V)
00 01 01 00 = (0*4096 + 0*256 + 0*16 + 1*1) : (0*4096 + 1*256 + 0*16 + 0*1) = 1 : 256 --> es la intensidad (-0.01mA) ?
02 49 F0 00 = (0*4096 + 2*256 + 4*16 + 9*1) : (15*4096 + 0*256 + 0*16 + 0*1) = 586 : 61440 --> es la capacidad (189.28mAh) ??
00 00 00 00 = (0*4096 + 0*256 + 0*16 + 0*1) = 0.0 --> es el tiempo (0.0 minutos)
00 02 6A 03 = (0*4096 + 0*256 + 0*16 + 2*1) : (6*4096 + 10*256 + 0*16 + 3*1) = 2 : 27139 --> es la energía (0.62Wh) ??
49 00 = (4*4096 + 9*256 + 0*16 + 0*1) = 18688 ??

Parece que no consigo interpretar la cadena ... :oops:

La cadena es:FE FE FE FE 00 64 01 04 00 00 18 24 00 00 00 01 01 00 02 49 F0 00 00 00 00 00 00 02 6A 03 49 00
Los datos siempre vienen en BigEndian es decir de MSB a LSB
Byte 0-3: FE FE FE FE preambulo (Siempre el mismo, indica inicio de paquete de datos)
Byte 4: Unsigned int 8b. Id unidad 0 a 127
0x00 = 0
Byte 5: Unsigned int 8b. SoC en %
0x64 = 100%
Byte 6-7: signed int 16b. Temperatura en unidades de 0.1ºC
0x01 0x04 = 260 > 26.0ºC
Byte 8-11: Unsigned int 32b. Tension de bateria en unidades de 0.01V
0x00 0x00 0x18 0x24 = 6180 > 61.80v
Byte 12-15: Unsigned int 32b. Corriente de bateria en unidades de 0.01A
0x00 0x00 0x00 0x01 = 1 > 0.01A
Byte 16: Int 8b. Signo de la corriente. 0 positivo, 1 negativo
0x01 = Negativo por tanto -0.01A
Byte 17-20: Unsigned int 32b. Capacidad restante de bateria en mAh unidades 0.001A
0x00 0x02 0x49 0xF0 = 150000 = 150.000Ah
Byte 21-24: Unsigned int 32b. Tiempo en minutos des de la ultima carga.
0x00 0x00 0x00 0x00 = 0 > 0minutos
Byte 25-28: Unsigned int 32b. Potencia entraga puntual en W
0x00 0x00 0x02 0x6A = 618 > 618w
Byte 29: Int 8b: Coma flotante de la potencia puntal.
Es decir si el valor es 2, dividir por 100 la unidad de potencia puntual bytes26-29.
0x03 = 3 > 618w/1000 = 0.618w
Byte30-31: Podria ser una suma de comprobacion XOR, no lo he calculado. Tampoco esta documentado claramente.

Existen pocos comandos de configuracion por serie:
- Reset de contadores.
- Activar el volcado continou de datos para una unidad. Volcado de datos puntual y parada de volcado de datos continuo (el volcado es cada segundo)
- Canbiar el ID de la unidad, muy utill si tienes varias, tods en paralelo en el puerto serie.
- Consulta "broadcast" a todas las unidades, responden todas con una rafaga de datos, util para saber cuantas tienes y los id que tiene cada una.

Que no se puede hacer:
- Programar las alarmas, los Ah de cada unidad, solo posible por el LCD, auqnue estoy en conversacion con el chino para ver si puede dar soporte.
- Calibrar la shunt.
- Resetear a valores de fabrica.

Evidentement antes de poner mas de 1 unidad en paralelo se debe programar el ID de cada una para diferenciarlas. La unidad por defecto tiene el ID 0.

Miro de colgar 2 codigos pyton uno para enviar comando momentanemament y otro que hace un poll constante en bucle para hacer post a EmonCMS.

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 15:14
por andygi
Adjunto los 2 scripts en python 2.7

Tambien codigo en arduino por si alguno lo implementar en esta plataforma:

Ejemplo del script coulometros_send_cmd.py real:

Código: Seleccionar todo

# sudo ./coulometro_send_cmd.py 0
('Dato:', [0, 71, 0, 233, 0, 0, 22, 118, 0, 0, 2, 176, 0, 0, 2, 113, 127, 0, 0, 2, 16, 0, 6, 9, 80, 3, 204])
 ID: 0 SoC: 71 Temp: 23.3 vBat: 57.5 iBat: -6.88 Ah: 160.127 Time: 528 W: 395.6
 

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 16:07
por Corazon_de_perro
andygi escribió: 07 Nov 2020, 15:14 Adjunto los 2 scripts en python 2.7

Tambien codigo en arduino por si alguno lo implementar en esta plataforma:

Ejemplo del script coulometros_send_cmd.py real:

Código: Seleccionar todo

# sudo ./coulometro_send_cmd.py 0
('Dato:', [0, 71, 0, 233, 0, 0, 22, 118, 0, 0, 2, 176, 0, 0, 2, 113, 127, 0, 0, 2, 16, 0, 6, 9, 80, 3, 204])
 ID: 0 SoC: 71 Temp: 23.3 vBat: 57.5 iBat: -6.88 Ah: 160.127 Time: 528 W: 395.6
 
Bien, si estás en conversaciones con el chino, consultale si tiene una versión un poco más rápida. Para derivar excedentes andamos por los 100 ms de ciclo y veo que el envío de unos 30 bytes se puede hacer mucho más rápido.

Edito: Veo que son 31 bytes, 248 bits que a 19200 bits /s se tiene que el envío dura unos 13 ms.

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 16:20
por Homo_non_sapiens
andygi escribió: 07 Nov 2020, 15:07La cadena es:FE FE FE FE 00 64 01 04 00 00 18 24 00 00 00 01 01 00 02 49 F0 00 00 00 00 00 00 02 6A 03 49 00
Los datos siempre vienen en BigEndian es decir de MSB a LSB
Byte 0-4: FE FE FE FE preambulo (Siempre el mismo, indica inicio de paquete de datos)
Byte 5: Unsigned int 8b. Id unidad 0 a 127; Byte5 = 00 --> 0
Byte 6: Unsigned int 8b. SoC en %; Byte6 = 64 --> 100
Byte 7-8: signed int 16b. Temperatura en unidades de 0.1ºC; Byte7 = 01, Byte8 = 04 --> 280
Byte 9-12: Unsigned int 32b. Tension de bateria en unidades de 0.01V; Byte9 = 00, Byte10 = 00, Byte11 = 18, Byte12 = 24 --> 6180
Byte 13-16: Unsigned int 32b. Corriente de bateria en unidades de 0.01A; Byte13 = 00, Byte14 = 00, Byte15 = 00, Byte16 = 01 --> 1
Byte 17: Int 8b. Signo de la corriente. 0 positivo, 1 negativo; Byte17 = 01 --> 1
Byte 18-21: Unsigned int 32b. Capacidad restante de bateria en mAh unidades 0.001A; Byte18 = 00, Byte19 = 02, Byte20 = 49, Byte21 = F0 --> 150000
Byte 22-25: Unsigned int 32b. Tiempo en minutos des de la ultima carga; Byte22 = 00, Byte22 = 00, Byte23 = 00, Byte24 = 00 --> 0
Byte 26-29: Unsigned int 32b. Potencia entraga puntual en W; Byte26 = 00, Byte27 = 00, Byte28 = 02, Byte29 = 6A --> 553
Byte 30: Int 8b: Coma flotante de la potencia puntal; Byte30 = 03 --> 3
Es decir si el valor es 2, dividir por 100 la unidad de potencia puntual bytes26-29

No consigo que me cuadre; soy demasiado torpe ... :oops:

Pregunta: En la cadena hay 32 bytes - qué signican los bytes #31 y #32?

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 16:26
por andygi
Gabriel_2018 escribió: 07 Nov 2020, 16:07
andygi escribió: 07 Nov 2020, 15:14 Adjunto los 2 scripts en python 2.7

Tambien codigo en arduino por si alguno lo implementar en esta plataforma:

Ejemplo del script coulometros_send_cmd.py real:

Código: Seleccionar todo

# sudo ./coulometro_send_cmd.py 0
('Dato:', [0, 71, 0, 233, 0, 0, 22, 118, 0, 0, 2, 176, 0, 0, 2, 113, 127, 0, 0, 2, 16, 0, 6, 9, 80, 3, 204])
 ID: 0 SoC: 71 Temp: 23.3 vBat: 57.5 iBat: -6.88 Ah: 160.127 Time: 528 W: 395.6
 
Bien, si estás en conversaciones con el chino, consultale si tiene una versión un poco más rápida. Para derivar excedentes andamos por los 100 ms de ciclo y veo que el envío de unos 30 bytes se puede hacer mucho más rápido.

Edito: Veo que son 31 bytes, 248 bits que a 19200 bits /s se tiene que el envío dura unos 13 ms.
No es neceasio depender de la cadencia de 1s la comunicacion es a 9600bps, puedes enviar un comando de consulta de la unidad cada 100ms y responde con los valores.
Solo debes enviar estos bytes:
0x77,0x33,0xC0,0x41
Traduccion
0x77 0x33 inicio comando,
0xC0 destinado a la unidad 0, unidad de destino siempre es base=0xC0 + Unidad (entre 0 y 127).
0x41 comando consulta datos 1 sola vez.

Son 4bytes de envio de comando + 31bytes de respuesta, trama completa TX/RX 280 bits a 9600bs podrias hacer 34 consultas por segundo, cada 30ms

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 16:41
por andygi
Homo_non_sapiens escribió: 07 Nov 2020, 16:20
andygi escribió: 07 Nov 2020, 15:07La cadena es:FE FE FE FE 00 64 01 04 00 00 18 24 00 00 00 01 01 00 02 49 F0 00 00 00 00 00 00 02 6A 03 49 00
Los datos siempre vienen en BigEndian es decir de MSB a LSB
Byte 0-4: FE FE FE FE preambulo (Siempre el mismo, indica inicio de paquete de datos)
Byte 5: Unsigned int 8b. Id unidad 0 a 127; Byte5 = 00 --> 0
Byte 6: Unsigned int 8b. SoC en %; Byte6 = 64 --> 100
Byte 7-8: signed int 16b. Temperatura en unidades de 0.1ºC; Byte7 = 01, Byte8 = 04 --> 280
Byte 9-12: Unsigned int 32b. Tension de bateria en unidades de 0.01V; Byte9 = 00, Byte10 = 00, Byte11 = 18, Byte12 = 24 --> 6180
Byte 13-16: Unsigned int 32b. Corriente de bateria en unidades de 0.01A; Byte13 = 00, Byte14 = 00, Byte15 = 00, Byte16 = 01 --> 1
Byte 17: Int 8b. Signo de la corriente. 0 positivo, 1 negativo; Byte17 = 01 --> 1
Byte 18-21: Unsigned int 32b. Capacidad restante de bateria en mAh unidades 0.001A; Byte18 = 00, Byte19 = 02, Byte20 = 49, Byte21 = F0 --> 150000
Byte 22-25: Unsigned int 32b. Tiempo en minutos des de la ultima carga; Byte22 = 00, Byte22 = 00, Byte23 = 00, Byte24 = 00 --> 0
Byte 26-29: Unsigned int 32b. Potencia entraga puntual en W; Byte26 = 00, Byte27 = 00, Byte28 = 02, Byte29 = 6A --> 553
Byte 30: Int 8b: Coma flotante de la potencia puntal; Byte30 = 03 --> 3
Es decir si el valor es 2, dividir por 100 la unidad de potencia puntual bytes26-29

No consigo que me cuadre; soy demasiado torpe ... :oops:
Que no te cuadra?
Byte 7-8: signed int 16b. Temperatura en unidades de 0.1ºC; Byte7 = 01, Byte8 = 04 --> 280 son 260 no 280
Byte 26-29: Unsigned int 32b. Potencia entraga puntual en W; Byte26 = 00, Byte27 = 00, Byte28 = 02, Byte29 = 6A --> 553 son 618 no 553

Homo_non_sapiens escribió: 07 Nov 2020, 16:20Pregunta: En la cadena hay 32 bytes - qué signican los bytes #31 y #32?
El byte 31 y 32 creo que es una suma de comprobacion, es un checksum para dar validez a los datos pero no se explica nada bien el chino.

Re: Mi powerwall DIY con celdas 18650 recicladas

Publicado: 07 Nov 2020, 16:41
por Corazon_de_perro
andygi escribió: 07 Nov 2020, 16:26
Gabriel_2018 escribió: 07 Nov 2020, 16:07
andygi escribió: 07 Nov 2020, 15:14 Adjunto los 2 scripts en python 2.7

Tambien codigo en arduino por si alguno lo implementar en esta plataforma:

Ejemplo del script coulometros_send_cmd.py real:

Código: Seleccionar todo

# sudo ./coulometro_send_cmd.py 0
('Dato:', [0, 71, 0, 233, 0, 0, 22, 118, 0, 0, 2, 176, 0, 0, 2, 113, 127, 0, 0, 2, 16, 0, 6, 9, 80, 3, 204])
 ID: 0 SoC: 71 Temp: 23.3 vBat: 57.5 iBat: -6.88 Ah: 160.127 Time: 528 W: 395.6
 
Bien, si estás en conversaciones con el chino, consultale si tiene una versión un poco más rápida. Para derivar excedentes andamos por los 100 ms de ciclo y veo que el envío de unos 30 bytes se puede hacer mucho más rápido.

Edito: Veo que son 31 bytes, 248 bits que a 19200 bits /s se tiene que el envío dura unos 13 ms.
No es neceasio depender de la cadencia de 1s la comunicacion es a 9600bps, puedes enviar un comando de consulta de la unidad cada 100ms y responde con los valores.
Solo debes enviar estos bytes:
0x77,0x33,0xC0,0x41
Traduccion
0x77 0x33 inicio comando,
0xC0 destinado a la unidad 0, unidad de destino siempre es base=0xC0 + Unidad (entre 0 y 127).
0x41 comando consulta datos 1 sola vez.

Son 4bytes de envio de comando + 31bytes de respuesta, trama completa TX/RX 280 bits a 9600bs podrias hacer 34 consultas por segundo, cada 30ms
Sí, otra cosa muy muy distinta es que refresque datos cada 30 ms.