How to use PellMon with a generic pellet burner
Configure PellMon for use with any pellet burner
By default PellMon comes with the ScotteCom plugin enabled for use with a NBE scotte/woody burner, follow this guide to configure PellMon for use with any other burner.
The replacement for ScotteCom is called PelletCalc. PelletCalc monitors the feeder auger and supplies the parameters feeder_time and feeder_capacity which need to be logged to the database to provide data for calculation of pellet usage.
PelletCalc has two modes of operation: Counter mode and Timer mode.
In Counter mode PelletCalc provides the necessary parameters needed to be able to calculate power_kW and feeder_time from the auger revolution count. The auger revolutions are read from a data Item that has to be provided by another plugin. At the moment there are two possible ways to count feeder auger revolutions: you can use the hardware specific RaspberryGPIO plugin or the generic OWFS plugin. Both reads the signal from a switch that you arrange to output one or several pulses for every feeder auger revolution.
1. Open the configuration file
/etc/pellmon/conf.d/enabled_plugins.conf with a text editor or use the
pellmonconf tool to edit the file in your web browser.
2. Disable Scottecom
#p01 = ScotteCom
3. Enable PelletCalc
p07 = PelletCalc
4. Create an item called feedercounter to count feeder auger revolutions
Alternative A: use RaspberryGPIO
A.1 Enable raspberryGPIO
[enabled_plugins] p03 = RaspberryGPIO
A.2 Configure the RaspberryGPIO plugin
Open the file
/etc/pellmon/conf.d/plugins/raspberrygpio.conf. Set an available GPIO, for instance pin 15, to function as a counter and create an Item called feedercounter to hold the value:
[plugin_RaspberryGPIO] gpio22_function = counter gpio22_item = feedercounter gpio22_pin = 15
GPIO's cofigured as
counter have the internal pullup resistor activated. This means that the switch shall connect the GPIO pin to ground when closed and leave the pin unconnected when open.
Alternative B: use OWFS
Use a onewire sensor to count feeder auger revolutions. The OWFS plugin has special support for the DS2406 onewire I/O chip to use it as a counter by utilizing it's build in latch. The latch makes it possible to see short pulses even though the input status is read only every 5 seconds.
B.1 Enable OWFS
[enabled_plugins] p05 = OWFS
B.2 Configure OWFS
You need to have the owserver up and running, the OWFS plugin talks directly to the owserver and not to the fuse-mounted filesystem view of the onewire network. Add this to the file
[plugin_OWFS] ow1_item = feedercounter ow1_path = uncached/12.8D3E7D000000/sensed.A ow1_type = COUNTER ow1_latch = uncached/12.8D3E7D000000/latch.A
Note that the path is just an example,
12.8D3E7D000000 needs to be replaced with the correct path to the DS2406 sensor. The
uncached path must be used to provide an up to date value, otherwise pulses could be missed due to owserver internal caching.
5. Configure the PelletCalc plugin
Edit the file
/etc/pellmon/conf.d/plugins/pelletcalc.conf to configure the plugin to read feader auger revolution count from the item feedercounter as provided by RaspberryGPIO or OWFS:
[plugin_PelletCalc] counter = feedercounter
6. Restart the server or reboot
to activate changes
7. Measure the feeder auger speed and capacity
And write the measured values to the PelletCalc settings Feeder 6 Min Capacity
feeder_capacity and Feeder Rev Per 6 Min
feeder_rp6m by using the web interface or the command line interface.
You now have pellet consumption logging up and running. If you'd like to have some pretty temperature graphs on top of that you can add as many onewire temperature sensors as you like and read them with the OWFS plugin
In Timer mode PelletCalc needs to be provided with the auger running time directly, instead of calculating it from auger revolution count. The RaspberryGPIO plugin can be configured to make a GPIO pin act as a timer, that is reading the timer item will return the cumulative time in seconds the input has been in it's active state. A simple way to interface from the auger motor to the raspberry input is to use a suitable transformer connected to the motor main supply, which drives a relay connected between the GPIO input and ground.
Look for the section named
[plugin_RaspberryGPIO]. Set an available GPIO, eg pin 15, to function as a timer and create an Item called feedertimer to hold the value:
[plugin_RaspberryGPIO] gpio22_function = timer gpio22_item = feedertimer gpio22_pin = 15
Look for the section named
[plugin_PelletCalc] and configure it to read feader run time from the item feedertimer as provided by RaspberryGPIO:
[plugin_PelletCalc] timer = feedertimer