Página 1 de 1

Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 11:02
por mekium
Hola a todos,

La intención de este hilo es poder gestionar los excedentes para las instalaciones con inversores Fronius.
En principio, debería de ser compatible para todos los modelos que dispongan del datamanager 2.0, ya que permite la conexión por ModbusTPC, entre otras opciones.

Os detallo mi instalación:
19 placas 400w mono PERC = 7.600Wp
Inversor Fronius Symo 6.0-3-M
Smart Meter 63A-3

La intención es poder gestionar adecuadamente los excedentes mediante el magnífico programa PvControl+, mediante relés tanto de estado sólido (SSR) para cargas resistivas, como relés on/off para cargas inductivas, conectados por wifi.

En mi caso, la intención es derivar excedentes a un termo eléctrico durante todo el año, en verano controlar la bomba de la piscina, bombas de riego...
Y en invierno, me gustaría poder comunicarme con la calefacción, que es una bomba de calor geotérmica Vaillant y poder regularla en función de horarios y excedentes, pero eso ya será otro cantar...

Hasta ahora he visto diversas opciones para poder gestionar los excedentes, pero me ha encantado el programa PvControl+ dado que por lo poco que he podido ver, tiene un gran potencial y está dedicado en exclusiva a la gestión de la FV.

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 11:58
por Corazon_de_perro
mekium escribió: 30 Abr 2020, 11:02 Hola a todos,

La intención de este hilo es poder gestionar los excedentes para las instalaciones con inversores Fronius.
En principio, debería de ser compatible para todos los modelos que dispongan del datamanager 2.0, ya que permite la conexión por ModbusTPC, entre otras opciones.

Os detallo mi instalación:
19 placas 400w mono PERC = 7.600Wp
Inversor Fronius Symo 6.0-3-M
Smart Meter 63A-3

La intención es poder gestionar adecuadamente los excedentes mediante el magnífico programa PvControl+, mediante relés tanto de estado sólido (SSR) para cargas resistivas, como relés on/off para cargas inductivas, conectados por wifi.

En mi caso, la intención es derivar excedentes a un termo eléctrico durante todo el año, en verano controlar la bomba de la piscina, bombas de riego...
Y en invierno, me gustaría poder comunicarme con la calefacción, que es una bomba de calor geotérmica Vaillant y poder regularla en función de horarios y excedentes, pero eso ya será otro cantar...

Hasta ahora he visto diversas opciones para poder gestionar los excedentes, pero me ha encantado el programa PvControl+ dado que por lo poco que he podido ver, tiene un gran potencial y está dedicado en exclusiva a la gestión de la FV.
Has conectado ya por TCP con el inversor? Si no es así, pásanos la IP y te enviamos un pequeño programilla como test.

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 12:29
por mekium
Gabriel_2018 escribió: 30 Abr 2020, 11:58
Has conectado ya por TCP con el inversor? Si no es así, pásanos la IP y te enviamos un pequeño programilla como test.
No, no se como conectarme...

La ip del inversor es: 192.168.1.5

Lo que si he hecho es grabar el firmware de Nikitto en un ESP32 para poder usarlo con PVControl+

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 19:37
por Miquel1975
mekium, primero se deberia adaptar el modbus de fronius al sistema Pvcontrol, una vez pvcontrol capta los datos del fronius, ya puedes hacer los gestores de excedentes. Tengo los relojes de PV control " trucados" a mi huawei y quizás todo este trabajo sea compatible, asi como una grafica. No necesitarias nada mas. Habla con Gabriel que es el del modbus... instala pvcontrol en la rpi.

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 19:45
por mekium
Ya tengo el PVControl+ instalado y el ModbusTCP en el Fronius activado, pero no se como hacer para que ambos se entiendan.

Imagino que si tanto el Huawei como el Fronius tienen el mismo protocolo, puede que sea compatible.

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 21:01
por Corazon_de_perro
192.168.1.15/solar_api/v1/GetMeterRealtimeData.cgi

Buenas, desde un navegador que esté en la misma red que el Fronius, escribe eso y mira a ver qué sale.

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 21:14
por mekium
Gabriel_2018 escribió: 30 Abr 2020, 21:01 192.168.1.15/solar_api/v1/GetMeterRealtimeData.cgi

Buenas, desde un navegador que esté en la misma red que el Fronius, escribe eso y mira a ver qué sale.
En la ip, he cambiado el 15 final por el 5, ya que supongo que se ha colado el 1 ;)
Sale esto:

{
"Body" : {
"Data" : {}
},
"Head" : {
"RequestArguments" : {
"DeviceClass" : "Meter",
"Scope" : ""
},
"Status" : {
"Code" : 6,
"Reason" : "CGI-Args: Invalid parameter '' for attribute 'Scope' (use 'System' or 'Device')",
"UserMessage" : ""
},
"Timestamp" : "2020-04-30T21:12:23+02:00"
}
}

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 21:39
por Corazon_de_perro
mekium escribió: 30 Abr 2020, 21:14
Gabriel_2018 escribió: 30 Abr 2020, 21:01 192.168.1.15/solar_api/v1/GetMeterRealtimeData.cgi

Buenas, desde un navegador que esté en la misma red que el Fronius, escribe eso y mira a ver qué sale.
En la ip, he cambiado el 15 final por el 5, ya que supongo que se ha colado el 1 ;)
Sale esto:

{
"Body" : {
"Data" : {}
},
"Head" : {
"RequestArguments" : {
"DeviceClass" : "Meter",
"Scope" : ""
},
"Status" : {
"Code" : 6,
"Reason" : "CGI-Args: Invalid parameter '' for attribute 'Scope' (use 'System' or 'Device')",
"UserMessage" : ""
},
"Timestamp" : "2020-04-30T21:12:23+02:00"
}
}
192.168.1.5/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=0&DataCollection=CommonInverterData

Ok, mira a ver ahora

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 21:56
por mekium
Gabriel_2018 escribió: 30 Abr 2020, 21:39
192.168.1.5/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=0&DataCollection=CommonInverterData

Ok, mira a ver ahora
Esto es lo que sale:

{
"Body" : {
"Data" : {}
},
"Head" : {
"RequestArguments" : {
"DataCollection" : "CommonInverterData",
"DeviceClass" : "Inverter",
"DeviceId" : "0",
"Scope" : "Device"
},
"Status" : {
"Code" : 12,
"Reason" : "No inverter with this index found.",
"UserMessage" : ""
},
"Timestamp" : "2020-04-30T21:50:16+02:00"
}
}

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 22:06
por Corazon_de_perro
192.168.1.5/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System

oK, ésto, así vemos la ID del dispositivo.

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 22:10
por mekium
Gabriel_2018 escribió: 30 Abr 2020, 22:06 192.168.1.5/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System

oK, ésto, así vemos la ID del dispositivo.
Ahí lo tienes:

{
"Body" : {
"Data" : {
"DAY_ENERGY" : {
"Unit" : "Wh",
"Values" : {
"1" : 36490
}
},
"PAC" : {
"Unit" : "W",
"Values" : {
"1" : 0
}
},
"TOTAL_ENERGY" : {
"Unit" : "Wh",
"Values" : {
"1" : 3316899
}
},
"YEAR_ENERGY" : {
"Unit" : "Wh",
"Values" : {
"1" : 3308812
}
}
}
},
"Head" : {
"RequestArguments" : {
"DeviceClass" : "Inverter",
"Scope" : "System"
},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2020-04-30T22:10:10+02:00"
}
}

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 22:56
por Corazon_de_perro
Pues quizás sea más fácil utilizar la API con un request desde Python, en lugar de por modbusTCP.

Re: Fronius - Gestión de excedentes

Publicado: 30 Abr 2020, 23:07
por mekium
Por lo poco que se, creo que es más habitual hacerlo así.
Puede que te sirva este codigo?
Vi que lo compartieron cuando estaba indagando el home assistant...

- platform: rest
name: fronius_GetPowerFlowRealtimeData
resource: http://192.168.x.x/solar_api/v1/GetP...ltimeData.fcgi
scan_interval: 2
json_attributes:
- Body
- Data
- Site
value_template: 'OK'

- platform: rest
name: fronius_GetMeterRealtimeData
resource: http://192.168.x.x/solar_api/v1/GetM...ice&DeviceId=0
scan_interval: 2
json_attributes:
- Body
- Data
value_template: 'OK'


- platform: rest
name: fronius_GetInverterRealTimeData
resource: http://192.168.x.x/solar_api/v1/GetI...onInverterData
scan_interval: 2
json_attributes:
- Body
- Data
value_template: 'OK'

- platform: template
sensors:
fronius_p_pv:
value_template: '{{ states.sensor.fronius_GetPowerFlowRealtimeData.att ributes.Body.Data.Site.P_PV | float | round(0) }}'
unit_of_measurement: 'W'
friendly_name: Fronius P PV
fronius_p_grid:
value_template: '{{ states.sensor.fronius_GetPowerFlowRealtimeData.att ributes.Body.Data.Site.P_Grid | round(0) }}'
unit_of_measurement: 'W'
friendly_name: Fronius P Grid
fronius_p_load:
value_template: '{{ states.sensor.fronius_GetPowerFlowRealtimeData.att ributes.Body.Data.Site.P_Load | abs | round(0) }}'
unit_of_measurement: 'W'
friendly_name: Fronius P Load


fronius_energia_exportada_total:
value_template: '{{ states.sensor.fronius_GetMeterRealtimeData.attribu tes.Body.Data.EnergyReal_WAC_Sum_Produced /1000 | int }}'
unit_of_measurement: 'kWh'
friendly_name: Fronius Energia Exportada Total
fronius_energia_consumida_total_sm:
value_template: '{{ states.sensor.fronius_GetMeterRealtimeData.attribu tes.Body.Data.EnergyReal_WAC_Sum_Consumed /1000 | int }}'
unit_of_measurement: 'kWh'
friendly_name: Fronius Energia Consumida Total SM
fronius_potencia_sm:
value_template: '{{ states.sensor.fronius_GetMeterRealtimeData.attribu tes.Body.Data.PowerReal_P_Sum | int }}'
unit_of_measurement: 'W'
friendly_name: Fronius Potencia SM
fronius_voltaje_sm:
value_template: '{{ states.sensor.fronius_GetMeterRealtimeData.attribu tes.Body.Data.Voltage_AC_Phase_1 | int }}'
unit_of_measurement: 'V'
friendly_name: Fronius Voltaje SM


fronius_energia_producida_hoy:
value_template: '{{ states.sensor.fronius_GetInverterRealTimeData.attr ibutes.Body.Data.DAY_ENERGY.Value /1000 | int }}'
unit_of_measurement: 'kWh'
friendly_name: Fronius Energia Producida Hoy
fronius_energia_producida_ano:
value_template: '{{ states.sensor.fronius_GetInverterRealTimeData.attr ibutes.Body.Data.YEAR_ENERGY.Value /1000 | int }}'
unit_of_measurement: 'kWh'
friendly_name: Fronius Energia Producida Año
fronius_energia_producida_total:
value_template: '{{ states.sensor.fronius_GetInverterRealTimeData.attr ibutes.Body.Data.TOTAL_ENERGY.Value /1000 | int }}'
unit_of_measurement: 'kWh'
friendly_name: Fronius Energia Producida Total
fronius_voltaje_ac:
value_template: '{{ states.sensor.fronius_GetInverterRealTimeData.attr ibutes.Body.Data.UDC.Value }}'
unit_of_measurement: 'V'
friendly_name: Fronius Voltaje AC
fronius_intensidad_dc:
value_template: '{{ states.sensor.fronius_GetInverterRealTimeData.attr ibutes.Body.Data.IDC.Value }}'
unit_of_measurement: 'A'
friendly_name: Fronius Intensidad DC


fronius_consumo_total:
friendly_name: 'Consumo Total'
unit_of_measurement: "W"
value_template: >-
{{ ((float(states.sensor.fronius_p_grid.state) + float(states.sensor.fronius_p_pv.state)) ) | float | round(0) }}

Re: Fronius - Gestión de excedentes

Publicado: 01 May 2020, 11:49
por Corazon_de_perro
Ok, ya vemos que con la API es accesible fácilmente.

Si te parece, vamos a probar este programilla para modbusTCP.
fronius_test.py
Recuerda instalar antes la libreria pymodbusTCP:

Desde terminal: sudo pip3 install pymodbusTCP

Para ejecutar el programilla te pones en la caprpeta con el terminal:

sudo python3 fronius_test.py

Re: Fronius - Gestión de excedentes

Publicado: 13 May 2020, 17:50
por mekium
Finalmente, dejamos estar el ModBus y lo hicimos por API, que resultó ser más fácil.

192.168.x.x/solar_api/v1/GetPowerFlowRealtimeData.fcgi
API_1.png
De esta utilizamos P_Grid, P_Load y P_PV

192.168.x.x/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData
API_2.png
Y de esta otra, UAC y UDC.

Re: Fronius - Gestión de excedentes

Publicado: 13 May 2020, 22:37
por fran_pascualin
Sois unos genios