Outback Power Mate3s Rest PV Solar System Sensors and Occasionally Unavailable

I was able to use the above information but it didn’t work out the door for my setup. I think there have been some changes to HA or that I was trying to interface a Mate3 (not Mate3s) that was preventing a simple copy and paste, with the changes in IP address. I also expanded to track 4 more items: daily battery low, daily battery high, all time low, and all time high. This was from another URL of the Mate3.

From a Linux machine, I was able to get data from
/usr/bin/curl -s http://10.98.127.214/Dev_status.cgi\?\&Port=0
Here is the output:

{"devstatus": {
"Sys_Time": 1739309854,
"Sys_Batt_V": 24.0,
"ports": [
{ "Port": 1, "Dev": "CC","Type": "FM60","Out_I": 0.0,"In_I": 0,"Batt_V": 24.0,"In_V": 9.4,"Out_kWh": 1.7,"Out_AH": 67,"CC_mode": "Silent","Error": ["none"],"Aux_mode": "Manual","AUX": "disabled"}

More data is found with
/usr/bin/curl -s http://10.98.127.214/Dev_batt.cgi
Here is the output:

{"sys_battery": {
"today_min_batt": 24.0,"today_min_batt_time": 1739260533,"today_max_batt": 26.5,"today_max_batt_time": 1739282180,"sys_min_batt": 2.5,"sys_min_batt_time": 1736271491,"sys_max_batt": 29.3,"sys_max_batt_time": 1739110677
}

Side note: I know the batteries got down to 2.5V, which most likely damaged some batteries. This is one reason why I am tracking the data so that it doesn’t happen again.

With both outputs, I was able to get the following to work to get data into HA. Here is part of my configuration.yaml, all under the sensor section:

  - platform: rest
    name: mate3_report
    json_attributes:
      - devstatus
      - ports
      - Out_I
      - In_I
      - Out_kWh
      - Out_AH
      - Error
      - Aux_mode
      - AUX
      - In_V
      - Out_kWh
      - Batt_V
      - CC_mode
    resource: http://10.98.127.214/Dev_status.cgi?Port=0
    value_template: 'OK'
    scan_interval: 300
  - platform: template
    sensors:
      pv_sys_batt_v:
        friendly_name: 'PV Sys Battery Voltage'
        entity_id: sensor.mate3_report
        value_template: '{{ state_attr("sensor.mate3_report","devstatus") ["Sys_Batt_V"] }}'
        device_class: 'Voltage'
        unit_of_measurement: "Vdc"
      pv_cc_batt_v:
        friendly_name: 'CC Battery Voltage'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["Batt_V"] }}'
        device_class: 'Voltage'
        unit_of_measurement: "Vdc"
      pv_cc_in_v:                                                                  
        friendly_name: 'CC In Voltage'                                                                   
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["In_V"] }}'   
        device_class: 'Voltage'
        unit_of_measurement: "Vdc"
      pv_cc_mode:
        friendly_name: 'CC Mode'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["CC_mode"] }}'
      pv_cc_out_i:
        friendly_name: 'CC Out I'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["Out_I"] }}'
        device_class: 'current'
        unit_of_measurement: "A"
      pv_cc_in_i:
        friendly_name: 'CC In I'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["In_I"] }}'
        device_class: 'current'
        unit_of_measurement: "A"
      pv_cc_out_kwh:
        friendly_name: 'CC Out kWh'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["Out_kWh"] }}'
        unit_of_measurement: "kWh"
        device_class: 'energy'
      pv_cc_out_ah:
        friendly_name: 'CC Out AH'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["Out_AH"] }}'
        unit_of_measurement: "AH"
      pv_cc_aux_mode:
        friendly_name: 'CC Aux Mode'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["Aux_mode"] }}'
      pv_cc_aux:
        friendly_name: 'CC AUX'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["AUX"] }}'
      pv_cc_err:
        friendly_name: 'CC Error'
        value_template: '{{ states.sensor.mate3_report.attributes["devstatus"]["ports"][0]["Error"] }}'

  - platform: rest
    name: mate3_devbatt
    json_attributes:
      - sys_battery
      - today_min_batt
      - today_min_batt_time
      - today_max_batt
      - today_max_batt_time
      - sys_min_batt
      - sys_min_batt_time
      - sys_max_batt
      - sys_max_batt_time
    resource: http://10.98.127.214/Dev_batt.cgi
    value_template: 'OK'
    scan_interval: 300
  - platform: template
    sensors:
      mate3_today_min_batt:
        friendly_name: 'PV Today Min Battery'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["today_min_batt"] }}'
        device_class: 'voltage'
        unit_of_measurement: "Vdc"
      mate3_today_min_batt_time:
        friendly_name: 'PV Today Min Battery Date'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["today_min_batt_time"] | int | timestamp_custom("%m/%d/%Y %H:%M:%S", local=False) }}'
      mate3_today_max_batt:
        friendly_name: 'PV Today Max Battery'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["today_max_batt"] }}'
        device_class: 'voltage'
        unit_of_measurement: "Vdc"
      mate3_today_max_batt_time:
        friendly_name: 'PV Today Max Battery Date'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["today_max_batt_time"] | int | timestamp_custom("%m/%d/%Y %H:%M:%S", local=False) }}'
      mate3_sys_min_batt:
        friendly_name: 'PV System Min Battery'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["sys_min_batt"] }}'
        device_class: 'voltage'
        unit_of_measurement: "Vdc"
      mate3_sys_min_batt_date:
        friendly_name: 'PV System Min Battery Date'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["sys_min_batt_time"] | int | timestamp_custom("%m/%d/%Y %H:%M:%S", local=False) }}'
      mate3_sys_max_batt:
        friendly_name: 'PV System Max Battery'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["sys_max_batt"] }}'
        device_class: 'voltage'
        unit_of_measurement: "Vdc"
      mate3_sys_max_batt_time:
        friendly_name: 'PV System Max Battery Date'
        value_template: '{{ states.sensor.mate3_devbatt.attributes["sys_battery"]["sys_max_batt_time"] | int | timestamp_custom("%m/%d/%Y %H:%M:%S", local=False) }}'

This will pull the data every 5 min. Notice that it only pulls the data once, and then processes the data for the different sets of data. With this data, I have created some dashboards to show the current data (both text and a gages) and plot some graphs to see the data in the last 24 hours. For the date information from the Dev_batt.cgi output, it is Unix Epoch format, but instead of UTC, my Mate3 used the local timezone as the number of seconds. This is why it looks like it should be showing UTC, but really was showing the time for my local timezone.

I also have alerts created so when the batteries get below 23.0V, my phone will get a notification.

Thanks to everyone above because their work was the bases of what I created.

For my setup, I am running HA 2024.11.3 (I know I have not upgraded yet). It is running on HAOS 13.2. The hardware is Dell computer (i7 with 16G of RAM) that is about 13 years old. I choose not to use a native Linux and run HA in a VM.

Last plug: I feel HA is an excellent product with many robust features. There is a learning curve but if you like to experiment and learn, HA is fun!