Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save symbioquine/0865ef4bac14848bd8c6d8c308d0ffcb to your computer and use it in GitHub Desktop.

Select an option

Save symbioquine/0865ef4bac14848bd8c6d8c308d0ffcb to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"kernelspec": {
"name": "python",
"display_name": "Python (Pyodide)",
"language": "python"
},
"language_info": {
"codemirror_mode": {
"name": "python",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8"
}
},
"nbformat_minor": 5,
"nbformat": 4,
"cells": [
{
"id": "60e65063-d296-4edb-91d7-47cd450568c5",
"cell_type": "code",
"source": "from pathlib import Path\n\np = Path('./')\n\nraw_files = list(p.glob('./raw_data/*raw_regs*.json'))\n\n# print(raw_files)",
"metadata": {
"trusted": true
},
"outputs": [],
"execution_count": 94
},
{
"id": "0012ab82-7afc-45c6-b158-05b9bad4deeb",
"cell_type": "code",
"source": "import re\nimport json\n\nfilename_pattern = re.compile('(?P<base_name>.*).raw_regs-page-(?P<page>\\\\d+)-table-(?P<table>\\\\d+)')\n\nregister_data = []\n\nfor raw_file in sorted(raw_files):\n filename_match = filename_pattern.search(raw_file.name)\n\n if filename_match is None:\n raise Exception(\"Unknown filename structure: {!r}\".format(raw_file.name))\n\n params = filename_match.groupdict()\n\n base_name, page, table = params['base_name'], params['page'], params['table']\n\n # print(base_name, page, table)\n\n with raw_file.open() as fp:\n raw_table_data = json.load(fp)\n\n if base_name == '1733_modbus_protocol':\n for row_idx, row in enumerate(raw_table_data):\n if row.get('4', None) is None:\n row['4'] = ''\n\n if not len(row) or 'Variable name' in row['0']:\n continue\n\n if row['1'] == '' and row['2'] == '' and row['3'] == '' and row['4'] == '':\n continue\n\n # print(\"\\t\", row['1'])\n\n mapping = {'0': 'name', '1': 'address', '2': 'description', '3': 'unit', '4': 'times'}\n\n r = {'source': base_name}\n for key, name in mapping.items():\n r[name] = row.get(key, '').replace('\\n', ' ')\n\n register_data.append(r)\n\n elif base_name == 'EpeverBSeriesControllerProtocolV2.3':\n mapping = {'2': 'address', '1': 'name', '3': 'description', '4': 'unit', '5': 'times'}\n if 'Variable name' in raw_table_data[0]['0']:\n mapping = {'1': 'address', '0': 'name', '2': 'description', '3': 'unit', '4': 'times'}\n\n for row_idx, row in enumerate(raw_table_data):\n if 'Variable name' in row['0'] or 'Variable name' in row['1']:\n continue\n\n r = {'source': base_name}\n for key, name in mapping.items():\n r[name] = row.get(key, '').replace('\\n', ' ')\n\n register_data.append(r)\n\n if page == '8':\n register_data.append({'source': base_name, 'address': '331B', 'name': 'Battery current L', 'description': 'Battery current'})\n register_data.append({'source': base_name, 'address': '331C', 'name': 'Battery current H', 'description': 'Battery current'})\n\nprint(json.dumps(register_data))",
"metadata": {
"trusted": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "[{\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated input voltage\", \"address\": \"3000\", \"description\": \"PV array rated voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated input current\", \"address\": \"3001\", \"description\": \"PV array rated current\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated input power L\", \"address\": \"3002\", \"description\": \"PV array rated power (low 16 bits)\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated input power H\", \"address\": \"3003\", \"description\": \"PV array rated power (high 16 bits)\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated output voltage\", \"address\": \"3004\", \"description\": \"Battery's voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated output current\", \"address\": \"3005\", \"description\": \"Rated charging current to battery\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated output power\", \"address\": \"3006\", \"description\": \"Rated charging power to battery\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment rated output power\", \"address\": \"3007\", \"description\": \"\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging mode\", \"address\": \"3008\", \"description\": \"0001H-PWM\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Rated output current of load\", \"address\": \"300E\", \"description\": \"\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment input voltage\", \"address\": \"3100\", \"description\": \"Solar charge controller--PV array voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment input current\", \"address\": \"3101\", \"description\": \"Solar charge controller--PV array current\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment input power L\", \"address\": \"3102\", \"description\": \"Solar charge controller--PV array power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment input power H\", \"address\": \"3103\", \"description\": \"\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment output voltage\", \"address\": \"3104\", \"description\": \"Battery voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment output current\", \"address\": \"3105\", \"description\": \"Battery charging current\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment output power L\", \"address\": \"3106\", \"description\": \"Battery charging power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging equipment output power H\", \"address\": \"3107\", \"description\": \"\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Disharging equipment output voltage\", \"address\": \"310C\", \"description\": \"Load voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Disharging equipment output current\", \"address\": \"310D\", \"description\": \"Load current\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Disharging equipment output power\", \"address\": \"310E\", \"description\": \"Load power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Disharging equipment output power\", \"address\": \"310F\", \"description\": \"\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery Temperature\", \"address\": \"3110\", \"description\": \"Battery Temperature\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Temperature inside equipment\", \"address\": \"3111\", \"description\": \"Temperature inside case\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Power components temperature\", \"address\": \"3112\", \"description\": \"Heat sink surface temperature of equipments' power components\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery SOC\", \"address\": \"311A\", \"description\": \"The percentage of battery's remaining capacity\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Remote battery temperature\", \"address\": \"311B\", \"description\": \"The battery tempeture measured by remote temperature sensor\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery's real rated power\", \"address\": \"311D\", \"description\": \"Current system rated votlage. 1200, 2400 represent 12V, 24V\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery status\", \"address\": \"3200\", \"description\": \"D3-D0: 01H Overvolt , 00H Normal , 02H Under Volt, 03H Low Volt Disconnect, 04H Fault D7-D4: 00H Normal, 01H Over Temp.(Higher than the warning settings), 02H Low Temp.( Lower than the warning settings), D8: Battery inerternal resistance abnormal 1, normal 0 D15: 1-Wrong identification for rated voltage\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charing equipment status\", \"address\": \"3201\", \"description\": \"D15-D14: Input volt status. 00 normal, 01 no power connected, 02H Higher volt input, 03H Input volt error. D13: Charging MOSFET is short. D12: Charging or Anti-reverse MOSFET is short. D11: Anti-reverse MOSFET is short. D10: Input is over current. D9: The load is Over current. D8: The load is short. D7: Load MOSFET is short. D4: PV Input is short. D3-2: Charging status. 00 No charging,01 Float,02 Boost,03 Equlization. D1: 0 Normal, 1 Fault. D0: 1 Running, 0 Standby.\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Maximum input volt (PV) today\", \"address\": \"3300\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Minimum input volt (PV) today\", \"address\": \"3301\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Maximum battery volt today\", \"address\": \"3302\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Minimum battery volt today\", \"address\": \"3303\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Consumed energy today L\", \"address\": \"3304\", \"description\": \"00: 00 Clear every day\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Consumed energy today H\", \"address\": \"3305\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Consumed energy this month L\", \"address\": \"3306\", \"description\": \"00: 00 Clear on the first day of month\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Consumed energy this month H\", \"address\": \"3307\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Consumed energy this year L\", \"address\": \"3308\", \"description\": \"00: 00 Clear on 1, Jan.\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Consumed energy this year H\", \"address\": \"3309\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Total consumed energy L\", \"address\": \"330A\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Total consumed energy H\", \"address\": \"330B\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Generated energy today L\", \"address\": \"330C\", \"description\": \"00: 00 Clear every day.\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Generated energy today H\", \"address\": \"330D\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Generated energy this month L\", \"address\": \"330E\", \"description\": \"00: 00 Clear on the first day of month.\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Generated energy this month H\", \"address\": \"330F\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Generated energy this year L\", \"address\": \"3310\", \"description\": \"00: 00 Clear on 1, Jan.\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Generated energy this year H\", \"address\": \"3311\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Total generated energy L\", \"address\": \"3312\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Total Generated energy H\", \"address\": \"3313\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Carbon dioxide reduction L\", \"address\": \"3314\", \"description\": \"Saving 1 Kilowatt=Reduction 0.997KG\\\"Carbon dioxide \\\"=Reduction 0.272KG\\\"Carton''\", \"unit\": \"Ton\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Carbon dioxide reduction H\", \"address\": \"3315\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery Current L\", \"address\": \"331B\", \"description\": \"The net battery current,charging current minus the discharging one. The positive value represents charging and negative, discharging.\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery Current H\", \"address\": \"331C\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery Temp.\", \"address\": \"331D\", \"description\": \"Battery Temp.\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Ambient Temp.\", \"address\": \"331E\", \"description\": \"Ambient Temp.\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery Type\", \"address\": \"9000\", \"description\": \"0001H- Sealed , 0002H- GEL, 0003H- Flooded 0000H- User defined\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery Capacity\", \"address\": \"9001\", \"description\": \"Rated capacity of the battery\", \"unit\": \"AH\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Temperature compensation coefficient\", \"address\": \"9002\", \"description\": \"Range 0-9\", \"unit\": \"mV/\\u2103/2V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"High Volt.disconnect\", \"address\": \"9003\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging limit voltage\", \"address\": \"9004\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Over voltage reconnect\", \"address\": \"9005\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Equalization voltage\", \"address\": \"9006\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Boost voltage\", \"address\": \"9007\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Float voltage\", \"address\": \"9008\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Boost reconnect voltage\", \"address\": \"9009\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Low voltage reconnect\", \"address\": \"900A\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Under voltage recover\", \"address\": \"900B\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Under voltage warning\", \"address\": \"900C\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Low voltage disconnect\", \"address\": \"900D\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Discharging limit voltage\", \"address\": \"900E\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Real time clock\", \"address\": \"9013\", \"description\": \"D7-0 Sec, D15-8 Min.(Year,Month,Day,Min,Sec.should be writed simultaneously)\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Real time clock\", \"address\": \"9014\", \"description\": \"D7-0 Hour, D15-8 Day\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Real time clock\", \"address\": \"9015\", \"description\": \"D7-0 Month, D15-8 Year\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Equalization charging cycle\", \"address\": \"9016\", \"description\": \"Interval days of auto equalization charging in cycle Day\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery temperature warning upper limit\", \"address\": \"9017\", \"description\": \"\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery temperature warning lower limit\", \"address\": \"9018\", \"description\": \"\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Controller inner temperature upper limit\", \"address\": \"9019\", \"description\": \"\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Controller inner temperature upper limit recover\", \"address\": \"901A\", \"description\": \"After Over Temperature, system recover once it drop to lower than this value\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Power component temperature upper limit\", \"address\": \"901B\", \"description\": \"Warning when surface temperature of power components higher than this value, and charging and discharging stop\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Power component temperature upper limit recover\", \"address\": \"901C\", \"description\": \"Recover once power components temperature lower than this value\", \"unit\": \"degree Celsius\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Line Impedance\", \"address\": \"901D\", \"description\": \"The resistance of the connectted wires.\", \"unit\": \"milliohm\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Night TimeThreshold Volt.(NTTV)\", \"address\": \"901E\", \"description\": \"PV lower lower than this value, controller would detect it as sundown\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Light signal startup (night) delay time\", \"address\": \"901F\", \"description\": \"PV voltage lower than NTTV, and duration exceeds the Light signal startup (night) delay time, controller would detect it as night time.\", \"unit\": \"Min.\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Day Time Threshold Volt.(DTTV)\", \"address\": \"9020\", \"description\": \"PV voltage higher than this value, controller would detect it as sunrise\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Light signal turn off(day) delay time\", \"address\": \"9021\", \"description\": \"PV voltage higher than DTTV, and duration exceeds Light signal turn off(day) delay time delay time, controller would detect it as daytime.\", \"unit\": \"Min.\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Load controling modes\", \"address\": \"903D\", \"description\": \"0000H Manual Control 0001H Light ON/OFF 0002H Light ON+ Timer/ 0003H Time Control\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Working time length 1\", \"address\": \"903E\", \"description\": \"The length of load output timer1, D15-D8,hour, D7-D0, minute\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Working time length 2\", \"address\": \"903F\", \"description\": \"The length of load output timer2, D15-D8, hour, D7-D0, minute\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Turn on timing 1\", \"address\": \"9042\", \"description\": \"Turn on/off timing of load output.\", \"unit\": \"second\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"9043\", \"description\": \"\", \"unit\": \"minute\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"9044\", \"description\": \"\", \"unit\": \"hour\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Trun off timing 1\", \"address\": \"9045\", \"description\": \"\", \"unit\": \"second\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"9046\", \"description\": \"\", \"unit\": \"minute\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"9047\", \"description\": \"\", \"unit\": \"hour\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Turn on timing 2\", \"address\": \"9048\", \"description\": \"\", \"unit\": \"second\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"9049\", \"description\": \"\", \"unit\": \"minute\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"904A\", \"description\": \"\", \"unit\": \"hour\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Turn off timing 2\", \"address\": \"904B\", \"description\": \"\", \"unit\": \"second\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"904C\", \"description\": \"\", \"unit\": \"minute\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"\", \"address\": \"904D\", \"description\": \"\", \"unit\": \"hour\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Length of night\", \"address\": \"9065\", \"description\": \"Set default values of the whole night length of time. D15-D8,hour, D7-D0, minute\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Battery rated voltage code\", \"address\": \"9067\", \"description\": \"0, auto recognize. 1-12V, 2-24V\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Load timing control selection\", \"address\": \"9069\", \"description\": \"Selected timeing period of the load.0, using one timer, 1-using two timer, likewise.\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Default Load On/Off in manual mode\", \"address\": \"906A\", \"description\": \"0-off, 1-on\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Equalize duration\", \"address\": \"906B\", \"description\": \"Usually 60-120 minutes.\", \"unit\": \"minute\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Boost duration\", \"address\": \"906C\", \"description\": \"Usually 60-120 minutes.\", \"unit\": \"minute\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Discharging percentage\", \"address\": \"906D\", \"description\": \"Usually 20%-80%. The percentage of battery's remaining capacity when stop charging\", \"unit\": \"%\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Charging percentage\", \"address\": \"906E\", \"description\": \"Depth of charge, 20%-100%.\", \"unit\": \"%\", \"times\": \"100\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Management modes of battery charging and discharging\", \"address\": \"9070\", \"description\": \"Management modes of battery charge and discharge, voltage compensation : 0 and SOC : 1.\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Manual control the load\", \"address\": \"2\", \"description\": \"When the load is manual mode\\uff0c1-manual on 0 -manual off\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Enable load test mode\", \"address\": \"5\", \"description\": \"1 Enable 0 Disable(normal)\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Force the load on/off\", \"address\": \"6\", \"description\": \"1 Turn on 0 Turn off (used for temporary test of the load\\uff09\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Over temperature inside the device\", \"address\": \"2000\", \"description\": \"1 The temperature inside the controller is higher than the over-temperature protection point. 0 Normal\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"1733_modbus_protocol\", \"name\": \"Day/Night\", \"address\": \"200C\", \"description\": \"1-Night, 0-Day\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9000\", \"name\": \"Battery Type\", \"description\": \"0001H- Sealed , 0002H- GEL, 0003H- Flooded, 0000H- User defined\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9001\", \"name\": \"Battery Capacity\", \"description\": \"Rated capacity of the battery\", \"unit\": \"AH\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9002\", \"name\": \"Temperature compensation coefficient\", \"description\": \"Range 0-9\", \"unit\": \"mV/ \\u2103/2 V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9003\", \"name\": \"High Volt. disconnect\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9004\", \"name\": \"Charging limit voltage\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9005\", \"name\": \"Over voltage reconnect\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9006\", \"name\": \"Equalization voltage\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9007\", \"name\": \"Boost voltage\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9008\", \"name\": \"Float voltage\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9009\", \"name\": \"Boost reconnect voltage\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"900A\", \"name\": \"Low voltage reconnect\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"900B\", \"name\": \"Under voltage recover\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"900C\", \"name\": \"Under voltage warning\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"900D\", \"name\": \"Low voltage disconnect\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"900E\", \"name\": \"Discharging limit voltage\", \"description\": \"\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9013\", \"name\": \"Real time clock\", \"description\": \"D7-0 Sec, D15-8 Min.(Year, Month, Day, Min, Sec. should be written simultaneously)\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9014\", \"name\": \"Real time clock\", \"description\": \"D7-0 Hour, D15-8 Day\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9015\", \"name\": \"Real time clock\", \"description\": \"D7-0 Month, D15-8 Year\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9017\", \"name\": \"Battery temperature warning upper limit\", \"description\": \"\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9018\", \"name\": \"Battery temperature warning lower limit\", \"description\": \"\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9019\", \"name\": \"Controller inner temperature upper limit\", \"description\": \"\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"901A\", \"name\": \"Controller inner temperature upper limit recover\", \"description\": \"After Over Temperature, system recover once it drop to lower than this value\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"901E\", \"name\": \"Day TimeThreshold Volt.(DTTV)\", \"description\": \"PV lower than this value, controller would detect it as sundown\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"901F\", \"name\": \"Light signal startup (night) delay time\", \"description\": \"PV voltage lower than NTTV, and duration exceeds the Light signal startup (night) delay time, controller would detect it as night time.\", \"unit\": \"Min\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9020\", \"name\": \"Light Time Threshold Volt.(NTTV)\", \"description\": \"PV voltage higher than this value, controller would detect it as sunrise\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9021\", \"name\": \"Light signal close (day) delay time\", \"description\": \"PV voltage higher than DTTV, and duration exceeds the Light signal close (day) delay time, controller would detect it as day time.\", \"unit\": \"Min\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"903D\", \"name\": \"Load controlling modes\", \"description\": \"0000H Manual Control 0001H Light ON/OFF 0002H Light ON+ Timer/ 0003H Time Control\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"903E\", \"name\": \"Working time length 1\", \"description\": \"The length of load output timer1, D15-D8,hour, D7-D0, minute\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"903F\", \"name\": \"Working time length 2\", \"description\": \"The length of load output timer2, D15-D8, hour, D7-D0, minute\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9042\", \"name\": \"Turn on timing 1\", \"description\": \"Turn on/off timing of load output.\", \"unit\": \"Sec\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9043\", \"name\": \"\", \"description\": \"\", \"unit\": \"Min\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9044\", \"name\": \"\", \"description\": \"\", \"unit\": \"Hour\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9045\", \"name\": \"Turn off timing 1\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9046\", \"name\": \"\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9047\", \"name\": \"\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9048\", \"name\": \"Turn on timing 2\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9049\", \"name\": \"\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"904A\", \"name\": \"\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"904B\", \"name\": \"Turn off timing 2\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"904C\", \"name\": \"\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"904D\", \"name\": \"\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9063\", \"name\": \"Backlight time\", \"description\": \"Close after LCD backlight light setting the number of secends\", \"unit\": \"S\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9065\", \"name\": \"Length of nigh\", \"description\": \"Set default values of the whole night length of time. D15-D8,hour, D7-D0, minute\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9066\", \"name\": \"Device configure of main power supply\", \"description\": \"0001H Battery is main\\uff0c 0002H AC-DC power mainly\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9067\", \"name\": \"Battery rated voltage code\", \"description\": \"0, auto recognize. 1-12V, 2-24V ,3-36V\\uff0c4-48V\\uff0c5-60V\\uff0c 6-110V\\uff0c7-120V\\uff0c8-220V\\uff0c9-240V\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"906A\", \"name\": \"Default Load On/Off in manual mode\", \"description\": \"0-off, 1-on\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"906B\", \"name\": \"Equalize duration\", \"description\": \"Usually 0-120 minutes\", \"unit\": \"Min\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"906C\", \"name\": \"Boost duration\", \"description\": \"Usually 10-120 minutes\", \"unit\": \"Min\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"906D\", \"name\": \"Discharging percentage\", \"description\": \"Usually 20%-80%. The percentage of battery's remaining capacity when stop charging\", \"unit\": \"%\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"906E\", \"name\": \"Charging percentage\", \"description\": \"Depth of charge, 100%\", \"unit\": \"%\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"9070\", \"name\": \"Management modes of battery charging and discharging\", \"description\": \"Management modes of battery charge and discharge, voltage compensation : 0 and SOC : 1\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"0\", \"name\": \"Charging device on/off\", \"description\": \"1 Charging device on 0 Charging device off\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"1\", \"name\": \"Output control mode manual/automatic\", \"description\": \"1 Output control mode manual 0 Output control mode automatic\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"2\", \"name\": \"Manual control the load\", \"description\": \"When the load is manual mode\\uff0c1-manual on 0 -manual off\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3\", \"name\": \"Default control the load\", \"description\": \"When the load is default mode\\uff0c1-manual on 0 -manual off\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"5\", \"name\": \"Enable load test mode\", \"description\": \"1 Enable 0 Disable(normal)\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"6\", \"name\": \"Force the load on/off\", \"description\": \"1 Turn on 0 Turn off (used for temporary test of the load\\uff09\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"13\", \"name\": \"Restore system defaults\", \"description\": \"1 yes 0 no\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"14\", \"name\": \"Clear generating electricity statistics\", \"description\": \"1 clear. Root privileges to perform\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"2000\", \"name\": \"Over temperature inside the device\", \"description\": \"1 The temperature inside the controller is higher than the over-temperature protection point. 0 Normal\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"200C\", \"name\": \"Day/Night\", \"description\": \"1-Night, 0-Day\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3000\", \"name\": \"array rated voltage\", \"description\": \"PV array rated voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3001\", \"name\": \"array rated current\", \"description\": \"PV array rated current\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3002\", \"name\": \"array rated power L\", \"description\": \"PV array rated power (low 16 bits)\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3003\", \"name\": \"array rated power H\", \"description\": \"PV array rated power (high 16 bits)\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3004\", \"name\": \"Battery rated voltage\", \"description\": \"Rated voltage to battery\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3005\", \"name\": \"Battery rated current\", \"description\": \"Rated current to battery\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3006\", \"name\": \"Battery rated power L\", \"description\": \"Rated power to battery\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3007\", \"name\": \"Battery rated power H\", \"description\": \"Rated power to battery\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3008\", \"name\": \"Charging mode\", \"description\": \"0000H Connect/disconnect, 0001H PWM,0002H MPPT\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"300E\", \"name\": \"Rated current of load\", \"description\": \"Rated current of load\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3100\", \"name\": \"PV array input voltage\", \"description\": \"Solar charge controller--PV array voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3101\", \"name\": \"PV array input current\", \"description\": \"Solar charge controller--PV array current\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3102\", \"name\": \"PV array input power L\", \"description\": \"Solar charge controller--PV array power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3103\", \"name\": \"PV array input power H\", \"description\": \"Solar charge controller--PV array power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3106\", \"name\": \"Battery power L\", \"description\": \"Battery charging power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3107\", \"name\": \"Battery power H\", \"description\": \"Battery charging power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"310C\", \"name\": \"Load voltage\", \"description\": \"Load voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"310D\", \"name\": \"Load current\", \"description\": \"Load current\", \"unit\": \"A\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"310E\", \"name\": \"Load power L\", \"description\": \"Load power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"310F\", \"name\": \"Load power H\", \"description\": \"Load power\", \"unit\": \"W\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3110\", \"name\": \"Battery Temperature\", \"description\": \"Battery Temperature\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3111\", \"name\": \"Temperature inside equipment\", \"description\": \"Temperature inside case\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"311A\", \"name\": \"Battery SOC\", \"description\": \"The percentage of battery's remaining capacity\", \"unit\": \"%\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"311B\", \"name\": \"Remote battery temperature\", \"description\": \"The battery temperature measured by remote temperature sensor\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"311D\", \"name\": \"Battery's real rated power\", \"description\": \"Current system rated voltage. 1200, 2400, 3600, 4800 represent 12V\\uff0c 24V\\uff0c36V\\uff0c48V\", \"unit\": \"\\u2103\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3200\", \"name\": \"Battery status\", \"description\": \"D3-D0: 01H Overvolt , 00H Normal , 02H Under Volt, 03H Low Volt Disconnect, 04H Fault D7-D4: 00H Normal, 01H Over Temp.(Higher than the warning settings), 02H Low Temp.(Lower than the warning settings), D8: Battery inner resistance abnormal 1, normal 0 D15: 1-Wrong identification for rated voltage\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3201\", \"name\": \"Charging equipment status\", \"description\": \"D15-D14: Input volt status. 00 normal, 01 no power connected, 02H Higher volt input, 03H Input volt error. D13: Charging MOSFET is short. D12: Charging or Anti-reverse MOSFET is short. D11: Anti-reverse MOSFET is short. D10: Input is over current. D9: The load is Over current. D8: The load is short. D7: Load MOSFET is short. D4: PV Input is short. D3-2: Charging status. 00 No charging,01 Float,02 Boost, 03 Equalization. D1: 0 Normal, 1 Fault. D0: 1 Running, 0 Standby.\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3202\", \"name\": \"Discharging equipment status\", \"description\": \"D15-D14: 00H normal, 01H low, 02H High, 03H no access Input volt error. D13-D12: output power:00-light load,01-moderate,02-rated,03-overlo ad D11: short circuit D10: unable to discharge D9: unable to stop discharging D8: output voltage abnormal D7: input overpressure D6: high voltage side short circuit D5: boost overpressure D4: output overpressure D1: 0 Normal, 1 Fault. D0: 1 Running, 0 Standby.\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3300\", \"name\": \"Maximum PV voltage today\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3301\", \"name\": \"Minimum PV voltage today\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3302\", \"name\": \"Maximum battery voltage today\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3303\", \"name\": \"Minimum battery voltage today\", \"description\": \"00: 00 Refresh every day\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3304\", \"name\": \"Consumed energy today L\", \"description\": \"00: 00 Clear every day\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3305\", \"name\": \"Consumed energy today H\", \"description\": \"\", \"unit\": \"K WH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3306\", \"name\": \"Consumed energy this month L\", \"description\": \"00: 00 Clear on the first day of month\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3307\", \"name\": \"Consumed energy this month H\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3308\", \"name\": \"Consumed energy this year L\", \"description\": \"00: 00 Clear on 1, Jan\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3309\", \"name\": \"Consumed energy this year H\", \"description\": \"\", \"unit\": \"K WH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"330A\", \"name\": \"Total consumed energy L\", \"description\": \"\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"330B\", \"name\": \"Total consumed energy H\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"330C\", \"name\": \"Generated energy today L\", \"description\": \"00: 00 Clear every day.\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"330D\", \"name\": \"Generated energy today H\", \"description\": \"\", \"unit\": \"K WH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"330E\", \"name\": \"Generated energy this month L\", \"description\": \"00: 00 Clear on the first day of month.\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"330F\", \"name\": \"Generated energy this month H\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3310\", \"name\": \"Generated energy this year L\", \"description\": \"00: 00 Clear on 1, Jan.\", \"unit\": \"\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3311\", \"name\": \"Generated energy this year H\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3312\", \"name\": \"Total generated energy L\", \"description\": \"\", \"unit\": \"KWH\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"3313\", \"name\": \"Total Generated energy H\", \"description\": \"\", \"unit\": \"\", \"times\": \"\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"331A\", \"name\": \"Battery voltage\", \"description\": \"Battery voltage\", \"unit\": \"V\", \"times\": \"100\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"331B\", \"name\": \"Battery current L\", \"description\": \"Battery current\"}, {\"source\": \"EpeverBSeriesControllerProtocolV2.3\", \"address\": \"331C\", \"name\": \"Battery current H\", \"description\": \"Battery current\"}]\n"
}
],
"execution_count": 109
},
{
"id": "9bc4f7e0-1351-4042-8a6f-4eb9e90e1097",
"cell_type": "code",
"source": "from collections import defaultdict\n\nnames_by_address = defaultdict(set)\nsources_by_address = defaultdict(set)\n\nfor d in register_data:\n if 'name' not in d:\n print(d)\n sources_by_address[d['address']].add(d['source'])\n names_by_address[d['address']].add(d['name'])\n\nhex_value_as_int = lambda k: int(k, 16)\n\nprint(\"Registers which appear in only one of the documentation pdfs:\")\nfor address in sorted(sources_by_address.keys(), key=hex_value_as_int):\n sources = sources_by_address[address]\n if len(sources) != 2:\n print(f\"\\t0x{address:<4}\\t{list(sources)[0]:<36}\", repr(list(names_by_address[address])[0]))",
"metadata": {
"trusted": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Registers which appear in only one of the documentation pdfs:\n\t0x0 \tEpeverBSeriesControllerProtocolV2.3 'Charging device on/off'\n\t0x1 \tEpeverBSeriesControllerProtocolV2.3 'Output control mode manual/automatic'\n\t0x3 \tEpeverBSeriesControllerProtocolV2.3 'Default control the load'\n\t0x13 \tEpeverBSeriesControllerProtocolV2.3 'Restore system defaults'\n\t0x14 \tEpeverBSeriesControllerProtocolV2.3 'Clear generating electricity statistics'\n\t0x3104\t1733_modbus_protocol 'Charging equipment output voltage'\n\t0x3105\t1733_modbus_protocol 'Charging equipment output current'\n\t0x3112\t1733_modbus_protocol 'Power components temperature'\n\t0x3202\tEpeverBSeriesControllerProtocolV2.3 'Discharging equipment status'\n\t0x3314\t1733_modbus_protocol 'Carbon dioxide reduction L'\n\t0x3315\t1733_modbus_protocol 'Carbon dioxide reduction H'\n\t0x331A\tEpeverBSeriesControllerProtocolV2.3 'Battery voltage'\n\t0x331D\t1733_modbus_protocol 'Battery Temp.'\n\t0x331E\t1733_modbus_protocol 'Ambient Temp.'\n\t0x9016\t1733_modbus_protocol 'Equalization charging cycle'\n\t0x901B\t1733_modbus_protocol 'Power component temperature upper limit'\n\t0x901C\t1733_modbus_protocol 'Power component temperature upper limit recover'\n\t0x901D\t1733_modbus_protocol 'Line Impedance'\n\t0x9063\tEpeverBSeriesControllerProtocolV2.3 'Backlight time'\n\t0x9066\tEpeverBSeriesControllerProtocolV2.3 'Device configure of main power supply'\n\t0x9069\t1733_modbus_protocol 'Load timing control selection'\n"
}
],
"execution_count": 107
},
{
"id": "d3880da6-8f7c-4e3c-b98f-aaf9ff8df92d",
"cell_type": "code",
"source": "scanned_regs_file = Path('./raw_data/2021_11_17_tracer_8420_an_modbus_regs_0.txt')\n\nprint(\"Undocumented Tracer8420AN registers with values:\")\nwith scanned_regs_file.open() as fp:\n for line_no, line in enumerate(fp):\n if line_no < 3:\n continue\n if 'IllegalAddress' in line:\n continue\n if ' = None\\n' in line:\n continue\n\n split_line = line.split(' ')\n \n address = split_line[0][2:]\n value = split_line[2].strip()\n\n if address in sources_by_address:\n continue\n\n print(f\"\\t0x{address:<4}\", value)",
"metadata": {
"trusted": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Undocumented Tracer8420AN registers with values:\n\t0x300e 8000\n\t0x3108 0\n\t0x3109 0\n\t0x310a 0\n\t0x310b 0\n\t0x310c 0\n\t0x310d 0\n\t0x310e 0\n\t0x310f 0\n\t0x3113 0\n\t0x3114 43056\n\t0x3115 26533\n\t0x3116 26853\n\t0x3117 0\n\t0x3118 0\n\t0x3119 0\n\t0x311a 100\n\t0x311b 2500\n\t0x311d 2400\n\t0x311e 0\n\t0x311f 37\n\t0x3120 0\n\t0x3121 0\n\t0x3170 0\n\t0x3171 3000\n\t0x3172 35\n\t0x3173 1063\n\t0x3174 0\n\t0x3175 0\n\t0x3176 0\n\t0x3177 0\n\t0x3178 0\n\t0x3179 2211\n\t0x317a 2166\n\t0x317b 100\n\t0x317c 0\n\t0x317d 9\n\t0x317e 0\n\t0x317f 3007\n\t0x3180 0\n\t0x3181 2896\n\t0x3182 2331\n\t0x3183 0\n\t0x3184 0\n\t0x3185 0\n\t0x3186 0\n\t0x3187 0\n\t0x3188 0\n\t0x3189 0\n\t0x318a 0\n\t0x318b 1\n\t0x318c 0\n\t0x318d 1\n\t0x318e 0\n\t0x318f 1\n\t0x3190 0\n\t0x3191 1\n\t0x3192 0\n\t0x3193 2873\n\t0x3194 37\n\t0x3195 0\n\t0x31a0 3200\n\t0x31a1 3000\n\t0x31a2 3000\n\t0x31a3 2930\n\t0x31a4 2890\n\t0x31a5 2770\n\t0x31a6 2650\n\t0x31a7 2515\n\t0x31a8 2435\n\t0x31a9 2395\n\t0x31aa 2215\n\t0x31ab 2120\n\t0x31ad 2890\n\t0x31ae 1144\n\t0x31af 2343\n\t0x31b0 4077\n\t0x31b1 0\n\t0x31b2 0\n\t0x31b3 0\n\t0x31b4 0\n\t0x31b5 36000\n\t0x31b6 0\n\t0x3203 0\n\t0x3204 0\n\t0x3205 0\n\t0x3206 2\n\t0x330a 0\n\t0x330b 0\n\t0x330c 1\n\t0x330d 0\n\t0x330e 1\n\t0x330f 0\n\t0x3316 35\n\t0x3317 0\n\t0x3318 0\n\t0x3319 0\n\t0x331a 2873\n\t0x331b 37\n\t0x331c 0\n\t0x331d 2211\n\t0x331e 2166\n\t0x900a 2520\n\t0x900b 2440\n\t0x900c 2400\n\t0x900d 2220\n\t0x900e 2120\n\t0x900f 0\n\t0x9010 65526\n\t0x9011 65516\n\t0x901a 7500\n\t0x901b 8500\n\t0x901c 7500\n\t0x901d 2\n\t0x901e 1000\n\t0x901f 10\n\t0x903d 0\n\t0x903e 2048\n\t0x903f 512\n\t0x904a 19\n\t0x904b 0\n\t0x904c 0\n\t0x904d 6\n\t0x9064 2\n\t0x906a 0\n\t0x906b 120\n\t0x906c 120\n\t0x906d 30\n\t0x906e 80\n\t0x906f 40\n\t0x9090 37\n\t0x9091 0\n\t0x9092 0\n\t0x9093 0\n\t0x9094 2873\n\t0x9095 38\n\t0x9096 0\n\t0x9097 2213\n\t0x9098 2169\n\t0x90a0 0\n\t0x90a1 0\n\t0x90a2 0\n\t0x90a3 0\n\t0x90a4 0\n\t0x90b0 8581\n\t0x90b1 20986\n\t0x90b2 21\n\t0x90b3 1402\n\t0x90b4 4352\n\t0x90b5 5320\n\t0x90b6 5009\n\t0x90b7 5338\n\t0x90b8 4019\n\t0x90b9 5337\n\t0x90ba 18445\n\t0x90bb 0\n\t0x90bd 8000\n\t0x90be 35\n\t0x90bf 12000\n\t0x9100 12336\n\t0x9101 12336\n\t0x9102 12336\n\t0x9103 12593\n\t0x9104 12593\n\t0x9105 12593\n\t0x9106 0\n\t0x9107 3072\n\t0x9180 0\n\t0x9181 0\n\t0x9182 0\n\t0x9183 0\n"
}
],
"execution_count": 108
},
{
"id": "ab913546-6ff6-4774-98bb-81766a3231b6",
"cell_type": "code",
"source": "",
"metadata": {
"trusted": true
},
"outputs": [],
"execution_count": null
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment