multisibcontrol
 

MultiSIBControl is a software tool for monitoring and control of PIP/Axpert inverters and Pylontech batteries.

MultiSIBControl 1.8 is available for download. Please everyone update to the latest version as older versions will expire on 31/12/2023!!!

PLEASE NOTE that the database structure in new version has been changed. The old one was with single file for all data, but that does grow too much with years. It was also limited to 5x inverters and 8x batteries. So, now we divided the data by years and also added possibility to store data for up to 10x inverters and up to 32x batteries.
When you run the new version for the first time – it will migrate the old database to the new format. So, you will need free disk space (at least 10-20% more than the size of your current database) and also will need to wait some time (not very predictable) for the migration of all data. For example, my old database was ~9GB and it took 4 minutes for the migration when I tested on a computer with SSD, but it took 40-50 minutes when tested on the very old monitoring computer which has slow laptop HDD.


Download MultiSIBControl 1.8

You can check our change log for a list of changes in this version.

MultiSIBControl software offers the following functionality:

- read and display data from one or multiple/parallel PIP/Axpert/Infinisolar/Voltronic (and compatible) solar inverters using USB or RS232 communication
- read and display data from Pylontech batteries using RS485 or RS232 console (preferred as it supplies more data with better precision)
- handle 2 separate stacks of Pylontech batteries (up to 2x16 units) without need of HUB
- control inverter work mode based on time schedule
- control inverter work mode based on Pylontech SOC
- control inverter work mode based on custom conditions (in Device control)
- control inverter charge mode based on time schedule
- control inverter max charging current based on Pylontech BMS data
- control web/ip devices (by sending web requests) based on custom conditions (in Device control)
- send notifications to your mobile phone by using web push notifications service (in Device control)
- read and display data from web/ip devices. Currently possible to read data from OpenEVSE, Shelly EM and Shelly 1PM
- send data to emoncms server
- send data to PVOutput
- store RAW live data from inverters/batteries into database and generate reports (2-4GB of disk space per year). Up to 10x inverters and 32x batteries.
- generate various reports using raw/hourly/daily/monthly/annual data from the database
- export CSV data
- local web server for live data monitoring and control of inverters' mode
- ability to pull live data from other apps/tools using the local web server







MultiSIBControl currently runs on Windows XP/Vista/7/8/8.1/10/11 and requires .NET Framework 3.5 (which is usually already installed on Windows).


Here is how to get started:

- Download and install MultiSIBControl software
- Connect your inverter(s). You can use either USB or RS232 connection cables. Each inverter should be connected with a separate cable to the computer.
- Connect Pylontech batteries. You can use RS232 connection to console port (recommended) or RS485 connection to the dedicated port on Pylontech batteries. Only the master battery should be connected to the computer. The system will automatically detect the number of batteries and their size, but RS485 is limited to only 8x units while the "console" on newer "C" batteries can handle 16x units. It is possible to connect and monitor 2 separate stacks (without HUB).
- Start MultiSIBControl software and open Settings
- Configure Inverter connection method (USB or RS232).
- Configure Pylontech connection method and ports.
- Set PV array sizes.
- Set the additional options - emoncms upload, SOC control, charge current control, etc.
- Press OK to save settings
- Now the system should detect your inverters and batteries and should display information on the main screen as shown below.
- All data from the screen is continuously written to the database while the application is running.





The main screen (MONITORING) of the application is divided into 4 sections:
- Totals - Shows total data from all inverters and batteries. Also displays daily min/max/total values. The 3rd row of totals appears only if there are defined "external data" devices in settings.
- Inverter details - Shows separate data for each connected inverter in a table.
- Pylon details - Shows separate data for each battery in a table.
- Live data graph - Shows line graph with live consumption/production/battery load/charge/SOC data.
- There are also buttons to manually switch to grid or battery modes.
- The bottom row also displays number of connected inverters/batteries. Also displays the exact time when inverter data/battery data/emoncms/PVOutput/control process data was updated.






The TOTALS screen is for viewing hourly/daily/weekly/monthly/annual totals from database. Please note that with current design the database can store details of up to 8 batteries. If you have more batteries then the data will be stored as summary (like P1=P1+P9+P17+P25, P2=P2+P10+P18+P26, ...). This affects the TOTALS reports. If you have more than 8 batteries and generate report with Pylontech details then you should have this in mind. The total battery data (i.e. for the whole stack) is not affected.
- Select options (PV details, Pylon details, MAX values, number of rows) and then click on one of the buttons to generate and display data.
- If you check "Show PV details" then details for each PV array will be displayed as well so that you can check production and efficiency of separate arrays.
- If you check "Show Pylon details" then details for each battery will be displayed as well.
- If you check "Show MAX values" then the report will also include data for hourly/daily/weekly/annual maximum values.
- You can click on the "Export CSV" button to export the generated data (from the table) into a CSV file.








The GRAPH screen is for viewing various reports from database. We will add further reports in future versions.
- You can click on parameter titles to hide/show on graph.
- You can click on the "Export CSV" button to export the raw data (used for drawing current graph) into a CSV file.






The CONSOLE screen is for sending commands directly to inverter or Pylontech. Simply type the command, select the target device and click Send. The system will display the results on the bottom.






The INVERTER CONFIGURATION screen is for reading/writing configuration options to inverters.
- You have to select inverter on top first. Then system will read and display current configuration data from selected inverter.
- Then you can change an option. After that the system will display buttons "Write" and "Write to all". If you click "Write" the new value will be written to currently selected inverter only. If you click "Write to all" then the new value will be written to all connected inverters.






The DEVICE CONTROL screen is for configuration of rules which may send web requests or control inverter work mode based on custom conditions.
- Click on the Add/Edit/Delete buttons to add/edit or delete a rule. You can also double-click on a rule to edit it.



- CONDITIONS: You have to set the condition using mathematical equations.
- SCHEDULE: Select the time of day when the rule could be executed. You can also limit it for specific days of week.
- ACTION REPEAT STRATEGY: In most cases you have to select only "Execute once when conditions are fulfilled". This way the action will be execute only once when conditions change. For example: If you set condition for "Mode=Battery" then the action will be executed only once when mode becomes "Battery". Next execution will be when mode first becomes different than "Battery", and then changes back to battery. In this same example, if you select "Repeat after 1 minute" then the action will be execute every minute when mode=Battery.
- ACTION: Here you can select "Execute web url" to send web request as a result of the rule. You can also select one of the other options (Switch to Battery/USB/SUB) which will just switch the inverter into selected mode.
- Here you can use simple web requests like the example above to turn on/off a shelly relay (other brands use similar commands):
http://192.168.0.87/relay/0?turn=on
http://192.168.0.87/relay/0?turn=off
- You can use the following placeholders inside the URL and they will be replaced with the actual values during the actual execution of the web request:
{TIME} {INV_MODE}

PYLONTECH TOTAL
-----------------------------------
{PYLON_SOC} {PYLON_W} {PYLON_A} {PYLON_V} {PYLON_TEMP} {PYLON_REMAIN_AH} {PYLON_REMAIN_KWH}

PYLONTECH MIN/MAX/DAY values
-----------------------------------
{PYLON_W_MIN} {PYLON_W_MAX} {PYLON_W_DAY} {PYLON_A_MIN} {PYLON_A_MAX} {PYLON_V_MIN} {PYLON_V_MAX} {PYLON_SOC_MIN} {PYLON_SOC_MAX} {PYLON_TEMP_MIN} {PYLON_TEMP_MAX} {PYLON_REMAIN_KWH_MIN} {PYLON_REMAIN_KWH_MAX}

INVERTER
-----------------------------------
{INV_SOC} {INV_LOAD_W} {INV_LOAD_%} {INV_GRID_W} {INV_GRID_V} {INV_PV_W} {INV_BATTERY_W} {INV_BATTERY_A}

INVERTER MIN/MAX/DAY values
-----------------------------------
{INV_LOAD_%_MIN} {INV_LOAD_%_MAX} {INV_LOAD_W_MIN} {INV_LOAD_W_MAX} {INV_LOAD_W_DAY} {INV_GRID_W_MIN} {INV_GRID_W_MAX} {INV_GRID_W_DAY} {INV_PV_W_MIN} {INV_PV_W_MAX} {INV_PV_W_DAY} {INV_BATTERY_W_MIN} {INV_BATTERY_W_MAX} {INV_BATTERY_W_DAY} {INV_BATTERY_A_MIN} {INV_BATTERY_A_MAX}

Pylontech details for each battery
-----------------------------------
{Px_V} {Px_A} {Px_SOC} {Px_TEMP} {Px_REMAIN_AH} {Px_IMBALANCE}
where x should be replaced with battery number from 1 to 32

It is also possible to use the following additional extension for each of these placeholders:
:NU - exclude units
:ND - exclude decimals
For example: If Pylontech SOC is 64.5% then:
{PYLON_SOC} will return 64.5%
{PYLON_SOC:NU} will return 64.5
{PYLON_SOC:ND} will return 64%
{PYLON_SOC:NU:ND} will return 64


Also, {INV_ERR} and {PYL_ERR} contain the error messages reported by the inverters and batteries. The {SYS_MSG} contains all error and notification messages from the system (like starting/stopping, connected/disconnected inverters batteries, critical errors, update available, etc.). The rest of the placeholders are pretty much self explanatory.
- You can also use external web push notifications service to send messages to your phone or other device. Here I shows examples for pushsafer, but there are plenty of other similar services:
https://www.pushsafer.com/api?k=xxx&d=xxx&i=72&c=%2300cc00&s=38&t=MSIB&m=Switched%20to%20battery%20%20SOC%20{PYLON_SOC}%20%20Remaining%20{PYLON_REMAIN_KWH}
This will send push notification "Switched to battery SOC 35.6% Remaining 5.24kWh". Here, k=xxx and d=xxx should be replaced with the data for your pushsafer account.
Here are some more examples of push notifications:
https://www.pushsafer.com/api?k=xxx&d=xxx&i=72&c=%2300cc00&s=38&t=MSIB&m=Battery%20full%20%20SOC%20{PYLON_SOC}%20%20Remaining%20{PYLON_REMAIN_KWH}
https://www.pushsafer.com/api?k=xxx&d=xxx&i=72&c=%230000ff&s=20&t=MSIB&m=Grid%20power%20lost%20%20SOC%20{PYLON_SOC}%20%20Remaining%20{PYLON_REMAIN_KWH}
https://www.pushsafer.com/api?k=xxx&d=xxx&i=72&c=%230000ff&s=20&t=MSIB&m={SYS_MSG}%20{INV_ERR}%20{PYL_ERR}


Local web server:




The app has a simple web server so that it can be controlled from another computer and view/copy live data as well. This functionality may also be useful to sync data to other tools. You can control the inverter mode from another tool with simple url commands. Currently, we have the following commands:
http://192.168.1.201:8777/?SetWorkMode=USB&APIKey=key1234
http://192.168.1.201:8777/?SetWorkMode=SUB&APIKey=key1234
http://192.168.1.201:8777/?SetWorkMode=SBU&APIKey=key1234
http://192.168.1.201:8777/?GetLiveData&APIKey=key1234
http://192.168.1.201:8777/?GetLiveData&PlainText&Template00&APIKey=key1234

Here, you have to put the IP of your monitoring computer. The port can be configured from Settings. You can forward the ip:port to internet on the router and have access to the computer from anywhere. The “live data” page template is in the main folder - WebResponseTemplateEN.html, and anyone can modify it for his needs. It recognizes the same placeholders as in Device Control rules. In the included TXT/HTML files you can see example of all recognized placeholders.

Here you can use a few more switches:
APIKey=key1234 – This is for basic security. It should have the same value as API Key configured in Settings. If not correct, then web server will not return result. Here, I used "key1234" just as example. The API Key in Settings should be a serias of lower-case letters and digits. If you leave API Key empty in Settings then this field will not be required.
PlainText – if you add “PlainText” to the URL then the query will return plain text content. It will, however, use template WebResponseTemplateEN.txt. If you do not include “PlainText” then the query will use template WebResponseTemplateEN.html and will return HTML content.
Template00 – This allows to have many template files. If you add “Template01” to the URL then MultiSIBControl will return data from WebResponseTemplate01EN.txt (or WebResponseTemplate01EN.html). If you add “Template02” to the URL then MultiSIBControl will return data from WebResponseTemplate02EN.txt (or WebResponseTemplate02EN.html). And, so on up to “Template09”. If you do not add “Template0x” to the URL then MultiSIBControl will return data from WebResponseTemplateEN.txt (or WebResponseTemplateEN.html).


Settings:

- Click the Settings button on main screen to open the configuration window



- Language: Select the language. We have only English at the moment, but anyone can add a new language by creating a new text file in "Lang" folder (using English.txt as template).
- Font 1: This is the font used for data titles.
- Font 2: This is the font for grids and buttons
- Font 3: This is the font for live data inside boxes on top of the main screen.
- Font 4: This is the font for min/max/daily values inside boxes on top of the main screen.
- Price for 1kWh: This is only used for calculation of "savings" inside total reports.




- Inverter communication: Select "USB" if you use USB cable to connect to the inverter or "Serial RS232" if you use RS232 cable (either directly connected to a serial port on the computer or connected with USB-to-RS232 adapter).
- Inverter ordering: Select how inverters will be ordered on screen (the inverters table on main screen). So, that ordering will remain same even after you restart, change cables, etc.




Here you can configure the communication with Pylontech batteries. You can use RS232 connection to console port (recommended) or RS485 connection to the dedicated port on Pylontech batteries. Only the master battery should be connected to the computer. The system will automatically detect the number of batteries and their size, but RS485 is limited to only 8x units while the "console" on newer "C" batteries can handle 16x units. It is possible to connect and monitor 2 separate stacks (without HUB).
- Pylon communication: Select "Serial RS232 (console port)" if you use RS232 cable (either directly connected to a serial port on the computer or connected with USB-to-RS232 adapter) connected to the "console" port of the master battery. Select "Serial RS485" if you use RS485 cable (with USB-to-RS485 adapter) connected to the dedicated RS485 port of the master battery.
- Port: Select the serial port number.
- RS485 port speed: Select the speed for serial communication with RS485 port. It should match the dip switch setting (either 9600bps or 115200bps) of the master battery.




Here you can configure the data upload to "emoncms" and "PVOutput servers.
- Upload data to emoncms: Check this checkbox if you want the system to upload data to emoncms server.
- Emoncms upload rate: Select the interval (in seconds) at which the system will upload new data to the emoncms server.
- Emoncms URL/API key/node: The URL of the emoncms server, API key of your account and data node.
- Upload data to PVOutput: Check this checkbox if you want the system to upload data to PVOutput server.
- PVOutput upload rate: Select the interval at which the system will upload new data to the PVOutput server.
- PVOutput API key/System ID: The API key of your PVOutput account and System ID.
- v5/v7/.../v12: Select the data which will be uploaded as v5..v12 parameters to the PVOutput server.




Here you can configure the automatic switching of inverter work mode (SBU/USB/SUB) based on battery SOC% and/or time schedule.
- Control inverter mode based on Pylon SOC%: Check this checkbox if you want the system to automatically control the work mode based on SOC%.
- SOC% to GRID/BATTERY: Select the SOC% at which the system will switch to indicated work mode.
- GRID mode: Select if you want the system to use SUB or USB when automatically switching to "grid" mode based on SOC%.
- Continuous SOC control: Normally you don't need to use this option. When checked - the system will continuously monitor the work mode of the inverters and if it is different from the automatic mode (i.e. GRID when battery SOC% is less than "SOC% to GRID", and BATTERY when battery SOC% is higher than "SOC% to BATTERY") it will try to switch back to this mode.
- Control inverter mode based on time schedule: Check this checkbox if you want the system to automatically switch the work mode based on time schedule as defined in the table below.
- Time schedules: Use the Add/Delete buttons to add or remove a record. In the example from this screenshot - The system will switch to BATTERY at 06:01 only if SOC%>30, then at 15:00, if the SOC%<40%, will switch to GRID/USB and so on...




Here you can configure the automatic switching of inverter charging mode and max charge current.
- Control inverter max charge current based on Pylon request: Check this checkbox if you want the system to automatically control the max charge current based on Pylontech BMS data. The BMS of the batteries may request limitation of charge current when batteries are hot, cold, completely charged, etc. The system will monitor this and configure the max charge current in the inverters. Also, if you have 2 separate stacks of Pylontech batteries then the system will read the max charge current from both stacks and control the inverters appropriately. Please note that this is the total charge current (PV+GRID).
- Min/Max allowed chg current per inverter: Set the minimum and maximum charge current which the system is allowed to program in each inverter. Please note that these values are per inverter. In the example above I have limited the max possible charge current to 80A for each inverter. So, that my 3x inverters will not exceed 240A total even if Pylontech asks for 300A.
- Control grid charging based on time schedule: Check this checkbox if you want the system to automatically change the charging mode and max grid charge current at specific times of the day.
- Time schedules: Use the Add/Delete buttons to add or remove a record. In the example from this screenshot - The system will program each inverter for Solar+Grid charging at 01:00 and will also set max grid charge current to 30A for each inverter, then at 06:00 will program each inverter for Solar only charging and set max grid charge current to 2A for each inverter...




Here you can configure the PV array sizes. This is required for proper calculation of PV efficiency.




Here you can configure the design of the graphs. You can select fonts, lines, colors as you like.




Here you can configure reading of data from external devices. Currently it is possible to read data from OpenEVSE, Shelly EM and Shelly 1PM. The data from these external devices will be displayed on top of the main screen as 3rd row of boxes.






Requirements:


- A computer that runs Windows XP, Windows Vista, Windows 7 (32/64), Windows 8/8.1, Windows 10, Windows 11
- Microsoft .NET Framework Version 3.5 (or a newer version). Free, available from www.microsoft.com.
- USB or serial inverter connection cable
- RS232/console and/or RS485 Pylontech connection cable
- Approximately 2GB storage space per year for the database
- 1.5GHz CPU and better recommended


For further details and question please write to support@multisibcontrol.net.