**Deprecated: use [[https://github.com/repent/porridge/blob/master/README.md|README.md]].** Ensure your user is a member of ''gpio''. ====== Dependencies ====== Install * RVM * ruby * Create a gemset that reflects .ruby-gemset (and 'rvm use 3.0.0@rails6131 --default ?) * install rails into that gemset * ''gem update bundle'' ''rpi_gpio'' v0.5.0 won't install through bundle (April 2021). [[https://github.com/ClockVapor/rpi_gpio/issues/22|Here's why]]. Locking to v0.4.0 seems to work at the moment (in Gemfile). ====== Installation ====== ===== System configuration ===== In ''/boot/config.txt'', a ''dtoverlay'' line has to be added for every pin to which one or more 1-wire thermometers are added: # 1-Wire interface for 18B20 thermometers (can add as many of these as you like, in theory) # 3.21: having difficulty with gpiopin 4 # For the breadboard setup (4.21): dtoverlay=w1-gpio,gpiopin=5 dtoverlay=w1-gpio,gpiopin=13 # For the downstairs PCB (first version, tested working 20.4.21): #dtoverlay=w1-gpio,gpiopin=5 #dtoverlay=w1-gpio,gpiopin=10 And reboot to take effect. ===== Daemon ===== **The daemon relies on ''~/.porridge'' for basic configuration. If you don't make sure that this is in place, then ''systemd'' will log to ''/var/log/daemon.log'' by default.** (And it will try localhost:80 for the API server.) The daemon uses systemd. This means that porridged.system needs to be linked from ''/etc/systemd/system/porridged.service''. To enable the daemon from boot, ''systemctl enable porridged'' as root. For this to work, the .service needs an ''[Install]'' section that includes a "target" -- a point in the boot process at which it should be loaded. ''systemctl get-default'' tells you the default, ''systemctl list-units --type=targets'' lists all of the options. [[https://www.pragmaticlinux.com/2020/08/raspberry-pi-startup-script-using-systemd/|More]]. ln -s /home/slack/porridge/porridged.service /etc/systemd/system/ systemctl daemon-reload systemctl enable porridged systemctl status porridged systemctl start porridged The ''.service'' needs to use the RVM wrapper script, [[https://rvm.io/integration/cron|as if it were being launched from ''cron'']]. This needs to be updated with newer versions of ruby (or new gemsets). ===== API Server ===== ====== Updates ====== ===== Updating ruby ===== * New wrapper needed in porridged.service ===== Updating rails ===== ====== Troubleshooting ====== * Thermometers are plugged in but none are recognised * Have you set ''dtoverlay'' correctly?