petfeedd Version 1.0 Beta Now Available

This is an old post!

This post is over 2 years old. Solutions referenced in this article may no longer be valid. Please consider this when utilizing any information referenced here.

petfeedd users, I am proud to announce the beta release of petfeedd 1.0. It’s been almost three years since the last release of petfeedd (version 0.2.2), and Version 1.0 marks a new start for this project.

I have been running the beta release on my feeders for the last week and I believe I have smashed all the major bugs.

First, because I am sure you are curious, a rundown of the new features of in Version 1.0:

  • The entire application was completely rewritten in NodeJS.
  • Configuration is stored in the database, entirely eliminating the need for editing config files.
  • A new onboarding experience makes setting up the feeder a breeze.
  • Completely redesigned web based user interface.
  • Completely redesigned REST API exposes all functionality of the feeder.
  • Adds support for multiple servos, MQTT, zeroconb/bonjour, buttons, and sounds.
  • Adds support for raw devices (basically, power on to a pin, then power off).
  • The Docker images now support multiple architectures from a single pull (arm32v6, arm32v7, arm64, and amd64).

How can I install/uprade to it?

Installing and upgrading it is as easy as:

docker pull peckrob/petfeedd:beta

And configure docker-compose.yaml as follows:

version: '3'
services:
    petfeedd:
        privileged: true
        image: peckrob/petfeedd:beta
        restart: always
        volumes:
         - /etc/localtime:/etc/localtime
         - /opt/petfeedd.db:/opt/petfeedd.db
         - /etc/petfeedd.conf:/etc/petfeedd.conf
        ports:
         - 0.0.0.0:8080:8080

If you had a previous petfeedd.conf file, petfeedd will automatically migrate your settings from the config file to the database, so the transition should be seamless.

For more detailed instructions, see:

Why did you rewrite petfeedd in Node?

To be completely honest, because I don’t really like Python that much. I find it to be a clunky, obtuse language with an annoyingly inconsistent syntax. And because of the Python 2/3 breaking changes, finding help for issues is a regular WTF of “is this a Python 2 or 3 solution.” Performance is fairly poor on many of these low-powered boards. The whole mess that is virtualenv/pipenv. There’s just a lot about it that I don’t really like.

The only reason I wrote the original petfeedd in Python is because, at the time, it had the best support for GPIO on the Raspberry Pi in a high-level lanugage. In the meantime, there is now better support for GPIO is other languages.

This is not to say I particularly like Javascript either. It has it’s own fair share of problems. But being that it is a language I work with regularly, I am at least aware of most of the pain points instead of having to stumble blindly into them. Being able to have the same language on the front end and back end is a real time saver. And, it has dramatically better performance.

I guess that’s a really long way of saying: because I wanted to. :)

What about the 0.2 version

I have deleted the code for the 0.2 version, as it is in the same repository as the new version, and I do not intend to continue to develop it further. However, I am leaving the docker images up for the time being if you want to continue using the 0.2 version. I will probably remove them at some point in the future, but I will give warning before I do.

  • docker pull peckrob/petfeedd-arm32v7 - Raspberry Pi 2/2B/3/3B
  • docker pull peckrob/petfeedd-arm32v6 - Raspperry Pi/Zero
  • docker pull peckrob/petfeedd-amd64 - Intel x86

You are welcome to fork the repo and revert the deletes if you want to continue to use the Python code from source. But it should be with the clear understanding that doing so is entirely unsupported (like, I will delete tickets relating to it.)

Should I upgrade?

That is up to you! If petfeedd 0.2 is working for you and you don’t want or need any of the new features, there is no need for you to upgrade and you are free to keep using it. But all development going forward is on the new Node version.

Comments (0)

Interested in why you can't leave comments on my blog? Read the article about why comments are uniquely terrible and need to die. If you are still interested in commenting on this article, feel free to reach out to me directly and/or share it on social media.

Contact Me
Share It
Release Announcements
petfeedd users, I am proud to announce the beta release of petfeedd 1.0.1. This release has no major changes in it and is solely about addressing security issues in many of the underlying libraries used by petfeedd. To install it or upgrade from previous versions, you can simply run: docker pull peckrob/petfeedd:latest
Read More
Release Announcements
After five beta releases and months of testing, I am happy to announce petfeedd Version 1.0 is now available. All changes from the beta branch have been merged in and the release is now available on Docker Hub. To install it or upgrade from Version 0.2, you can simply run: docker pull peckrob/petfeedd:latest And restart. It should perform all the upgrades needed for version 1.0.
Read More
Release Announcements
petfeedd, the software for pet feeders, has a new release. 0.2.2 is a maintenance release that add support for new Raspberry Pi Hardware. There are no breaking changes in this release.
Read More