Component | Description |
---|---|
renogy.py |
Renogy charge controller / inverter monitoring software |
cadence.py |
Simple HTTP metrics service |
timeseries.py |
Time series data storage and retrieval |
solar_monitor.py |
Solar metrics logger |
The 6 pins on the RJ12 connector are TX | RX | GND | GND | PWR | PWR
from left to right. You should also be able to identify the orientation by measuring ~+5.65V from TX
to GND
and ~+15V from PWR
to GND
. Only TX
, RX
, and GND
will need to be connected to the serial port for monitoring the charge controller.
DB9 Pin | RJ12 Pin |
---|---|
1 (DC) | - |
2 (RX) | 1 (TX) |
3 (TX) | 2 (RX) |
4 (DT) | - |
5 (GND) | 3 (GND) |
6 (DSR) | - |
7 (RTS) | - |
8 (CTS) | - |
9 (RI) | - |
Attribute | Address | Scale | Units | Notes |
---|---|---|---|---|
SYS_MAX_VOLTS | 0x00A | 1 | V | High order byte |
SYS_MAX_AMPS | 0x00A | 1 | A | Low order byte |
SYS_MAX_DISCHARGE | 0x00B | 1 | A | High order byte |
SYS_TYPE | 0x00B | 1 | - | |
BATT_SOC | 0x100 | 1 | % | - |
BATT_VOLTS | 0x101 | 0.1 | V | - |
CHARGING_AMPS | 0x102 | 0.01 | A | - |
CONTROLLER_TEMP | 0x103 | 1 | C | - |
LOAD_WATTS | 0x106 | 1 | W | - |
PANEL_VOLTS | 0x107 | 0.1 | V | - |
PANEL_AMPS | 0x108 | 0.01 | A | - |
PANEL_WATTS | 0x109 | 1 | W | - |
BATT_MIN_VOLTS | 0x10B | 0.1 | V | - |
BATT_MAX_VOLTS | 0x10C | 0.1 | V | - |
DAY_CHARGE | 0x10F | 1 | W | - |
DAY_DISCHARGE | 0x110 | 1 | W | - |
DAY_GEN_POWER | 0x113 | 1 | W | - |
DAY_CON_POWER | 0x114 | 1 | W | - |
UPTIME_DAYS | 0x115 | 1 | - | |
BATT_FULL_COUNT | 0x117 | 1 | - | |
CHARGING_STATE | 0x120 | 1 | - | |
BATT_CAPACITY | 0xE002 | 1 | W | - |
SYS_BATT_VOLTS | 0xE003 | 1 | V | - |
RECON_BATT_VOLTS | 0xE003 | 1 | V | - |
BATT_TYPE | 0xE004 | 1 | - | |
OVER_VOLTS | 0xE005 | 0.1 | V | - |
CHARGE_VOLTS | 0xE006 | 0.1 | V | - |
EQUALIZE_VOLTS | 0xE007 | 0.1 | V | - |
BOOST_VOLTS | 0xE008 | 0.1 | V | - |
FLOAT_VOLTS | 0xE009 | 0.1 | V | - |
BOOST_RECOV_VOLTS | 0xE00A | 0.1 | V | - |
DISCH_RECOV_VOLTS | 0xE00B | 0.1 | V | - |
UNDER_WARN_VOLT | 0xE00C | 0.1 | V | - |
OVER_DISCH_VOLTS | 0xE00D | 0.1 | V | - |
DISCH_WARN_VOLTS | 0xE00E | 0.1 | V | - |
BOOST_TIME | 0xE012 | 1 | - |
import requests
import pandas as pd
import plotly.graph_objects as go
def plot(df, x, y):
fig = go.Figure([go.Scatter(x=df[x], y=df[y], marker_color='black', opacity=0.6)])
fig.update_layout(title=y)
fig.show()
response = requests.get('http://192.168.1.195:5000/metric/solarshed')
df = pd.DataFrame(response.json())
df['time'] = pd.to_datetime(df['time'], unit='s')
plot(df, 'time', 'panel_volts')
plot(df, 'time', 'charging_state')