Hi and welcome. I’m not sure about you being able to do this without a Raspberry Pi, that’s the route I went down and it’s been working reliably for several years.
These are the instructions I followed when I originally got it working although it’s quite a while ago now. You may have to tweak things, I’m running using Python 2.7 but understand that the code has been updated for Python 3.9. Good luck.
1. On my Pi I created the folder canadianSolar-pvoutput-master under /home/pi/
2. Downloaded canadianSolar-pvoutput-master.zip from GitHub, unzipped and copied contents to /home/pi/canadianSolar-pvoutput-master
3. From canadianSolar-pvoutput-master folder ran pip install -r requirements.txt
4. Renamed pvoutput.txt.rename to pvoutput.txt
5. Edited pvoutput.txt with System Id, API Key, OWM variables and TimeZone=Europe/London
6. Connected Pi to inverter with USB to RS232 interface lead and rebooted Pi.
7. $ chmod +x pvoutput.sh
8. $ ./pvoutput.sh
Data then started being uploaded to my system. I added two extended data variables to my PVOutput system settings - AC Volts and Inverter Temperature (I didn’t include ‘v10’: inv.wh_total).
I’d been doing all this from a ssh session on my laptop and I wanted to get the script to start automatically when the Pi restarts so I created a cron job for user pi with the entry
@reboot sleep 180 && /home/pi/canadianSolar-pvoutput-master/pvoutput.sh >> /home/pi/canadianSolar-pvoutput-master/canadianSolar.log 2>&1
To get this to work I also had to modify pvoutput.sh as follows:
#!/bin/bash
cd /home/pi/canadianSolar-pvoutput-master/ # Needs to be run from the directory where code is #
while true; do
python /home/pi/canadianSolar-pvoutput-master/canadian_reads.py
echo “python script erro, sleeping few seconds and call it again”
sleep 60s
done