-
Notifications
You must be signed in to change notification settings - Fork 14
How to use PellMon with a generic 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.
/etc/pellmon/conf.d/enabled_plugins.conf
with a text editor or use the pellmonconf
tool to edit the file in your web browser.
#p01 = ScotteCom
p07 = PelletCalc
[enabled_plugins]
p03 = RaspberryGPIO
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 input
or 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.
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.
[enabled_plugins]
p05 = 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 /etc/pellmon/conf.d/plugins/owfs.conf
[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.
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
to activate changes
And write the measured values to the PelletCalc settings Feeder 6 Min Capacityfeeder_capacity
and Feeder Rev Per 6 Minfeeder_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