The scripts in these directory perform two tasks:
- monitoring the temperature across the house
- monitoring power generation from our roof PV system
The scripts are installed onto two raspberry PIs
Inverter: Samil
The following instructions assume that you are root.
Open a port in the firewall if active. Necessary to communicate with the SAMIL inverter. The inverter communicates by default on ports 1200 and 1300:
vi /etc/sysconfig/iptables
Append rules (before any of the REJECT rules):
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1200 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 1300 -j ACCEPT
Restart:
/etc/init.d/iptables restart
Create memory disk:
mkdir /mnt/ramdisk
chmod 777 /mnt/ramdisk
Add the following to /etc/fstab:
tmpfs /mnt/ramdisk tmpfs defaults,size=256M 0 0
Update software:
apt-get install rrdtool python-rrdtool python-daemon
Install daemon script:
mv monitor_solar /etc/init.d/monitor_solar
mkdir /usr/share/solar
mv monitor_solar.py /usr/share/solar/solar_monitor.py
chmod u+x /etc/init.d/monitor_solar
update-rc.d monitor_solar defaults 80
Install web frontend. Install apache, php, etc:
apt-get install ganglia-webfrontend
chmod 775 solarweb.py
mv solarweb.py /usr/lib/cgi-bin/
ln -s /usr/lib/cgi-bin/solarweb.py /home/pi/solarweb.py
chown -R www-data:www-data /usr/lib/cgi-bin/solarweb.py /mnt/ramdisk
ln -s /mnt/ramdisk /var/www/images
Setup backups of rrd directories:
mkdir /var/ramdisk-backup
mv ramdisk_backup.sh /etc/init.d/ramdisk
chmod 755 /etc/init.d/ramdisk
chown root:root /etc/init.d/ramdisk
Activate at start:
update-rc.d ramdisk defaults 00 99
Setup cronjob as root, every 5mins past midnight:
echo "@daily /etc/init.d/ramdisk sync >> /dev/null 2>&1" | sudo crontab
Installation:
mv monitor_temperature.sh /etc/init.d/monitor_temperature
chmod 755 /etc/init.d/monitor_temperature
update-rc.d monitor_weather defaults 80
chmod 775 temperatureweb.py
mv temperatureweb.py /usr/lib/cgi-bin/
ln -s /usr/lib/cgi-bin/temperatureweb.py /home/pi/temperatureweb.py
chown -R www-data:www-data /usr/lib/cgi-bin/temperatureweb.py /mnt/ramdisk
Installation:
mv monitor_weather.sh /etc/init.d/monitor_weather
chmod 755 /etc/init.d/monitor_weather
mv monitor_weather.py /usr/share/solar/monitor_weather.py
chmod u+x /etc/init.d/monitor_weather
update-rc.d monitor_weather defaults 80
Changes for devicetree
/boot/config.txt
dtoverlay=w1-gpio dtparam=i2c-arm