Release Notes

Find the latest changes and updates for each release below. Find specific changes to the code on github.


  • Complete refactor of all systems
  • Created a MudPi class to centrally store data for all components
  • MudPi is now a python package and runs like standard pacakge
  • Configurations
    • Added Config class to handle configurations
    • Added YAML support
    • Allowed any filename for configurations
    • Added ability to convert JSON to YAML configs
    • Added feature to create default config
  • Events
    • Overhauled the event system to a event manager
    • Consolidated events across the system to better groupings
    • Added adapters for event system to run on.
      • Added redis adapter for redis support
      • Added mqtt adapter for mqtt support
    • Core events can now run on multiple channels at once
    • Changed events to be more uniform in format
  • Extensions
    • Added an extension system to dynamically load systems with components
    • Converted all existing components into appropriate extensions
    • Extensions dynamically load based on config files and install requirements as needed
  • State
    • State is now handled by an internal state manager
    • Now stored with better data such as timestamps
    • State is backed up in redis and restored on restart
  • Actions
    • Made actions available for all components for better control
    • Actions can be called via triggers or events
    • Added action extension for to allow custom actions from configs
    • Components expose standard actions (i.e. toggle automatically adds 'turn_on' action)
  • Sensors
    • Added sensor extension for existing sensor logic
    • Migrated old sensors into new components
    • Split sensors into more appropriate groupings
    • Added Support for redis sensor
    • Added support for mqtt sensor
    • Sensors have a force_update action to trigger immediate updates.
  • Controls
    • Added control extension for existing control logic
    • Migrated over old controls to new components
  • Camera
    • Added camera extension for existing camera logic
    • Migrated over old camera to new components
    • Added feature to save video recordings
    • Added option to name files by date or sequentially
    • Fix picamera blocks during updates
    • Added rtsp extension with camera for RTSP IP camera support
    • Camera exposes capture_image and capture_recoding actions
    • Added options for controlling filename that is saved
    • Added options to put camera in image or recording mode
    • Added options for better image control (size, quality etc)
  • Triggers
    • Added trigger extension for existing trigger logic
    • Migrated over old triggers into new components and interfaces
    • Updated trigger groups to be an actual trigger class
    • Triggers can now be solo and part of a group
    • Triggers can be part of multiple groups
    • Triggers now just call actions
    • Updated threshold checks for better error handling
  • Automation Sequences
    • Added sequence extension for existing sequence logic
    • Migrated over old sequence to new components
    • Added actions for interaction instead of manually linking them to triggers
    • Updated threshold checks for better error handling
    • Addded option to skip a step
  • Toggles
    • Renamed relays into toggles for more accurate representation
    • Added toggle extension for existing relay logic
    • Migrated over old relays into the new toggle components
    • Added option to invert_state on a toggle for reversed toggles
    • Added options max_duration as failsafe to cutoff long running toggles
    • Toggle exposes turn_on, turn_off, and toggle actions
  • Socket
    • Added socket extension for the existing socket server
    • Migrated over the old socker server to new components
    • Allow more than one socket server to be created (still 1 per port)
    • Allow events to be relayed through socket server to event system
  • Nodes
    • Added nanpy extension for the existing node logic
    • Migrted over node controls and sensors to new components
    • Created a central connection for nodes to try and reduce broken connections
    • Added support for lcd displays to nodes
    • Updated connection logic for nodes for better operations
  • Displays
    • Added display extension for existing displays
    • Migrated over displays to new components
    • Added more configuration options
    • Updated display loop for faster response
    • Added message_limit to prevent clogged display queues
  • Logger
    • added a log_formatted() function for better formatting in output.
  • Plus tons of other minor improvements


  • Added automation sequences to perform complex action combinations
  • Display Updates
    • Added way to trigger dynamic variables in messages to display
      • Provide a redis [key] between square brackets and it will be replaced with value
    • Added message_limit to limit the number of messages in queue to avoid backed up queues
  • Relay Refactoring
    • The topic is no longer required. This will default to mudpi/relays/[relay_key]
    • An exception is thrown if no key if found in config
    • A name will be generated from a key if one is not provided
  • Sensors Refactoring
    • key is now be required
    • name is not optional
    • A name will be generated from a key if one is not provided
  • Controls Refactoring
    • key is now be required
    • name is not optional
    • A name will be generated from a key if one is not provided
  • Merge in Peerys Logger PR#12
    • Increase debug logging capabilities
    • Update sequences to use new logger
    • Made the logger configs optional


  • Refactored Redis Connection to Allow Remotes
  • Refactored Workers to Accept Single Redis Instance
  • Refactored Workers
  • Refactored Init Process
  • Cleaned up old features
  • Added Better Checks for Null Configs
  • Move Workers Into Appropriate Folders
  • Better logging
  • Cleaned up folder structure
  • Cleaned up Float Sensor
  • Revamped Light Sensor to Work with Complete Modules
  • Added better config defaults for DHT sensor
  • Added Relays to Nodes
  • Added an ArduinoRelayWorker to handle node relays


  • Added LCD Worker
  • Added Support for I2C LCD
  • Added Support for LCD 20x4
  • Added Support for LCD 16x2
  • Added Support for LCD 16x2 RGB
  • Added Support for LCD PCF Driver
  • Added Support for LCD MCP Driver -- Added Message Queue for Displays


  • Added Support for BME680
  • Added I2C Worker


  • Bug fixes


  • Updated print out of sensor count to be correct
  • Imported the missing switch controls in the worker.


  • Fixed some issues in the configs when certain values were strings that needed to be integers by checking and casting these values.
  • Added better support for empty configs
  • Bug fixes to the node workers.
  • Better error tracing for debugging
  • Fixed an error with MCP worker


  • Bug fixes on the camera worker for better operations and more responsive feedback

0.8.8 - Config Defaults

  • Added a camera listener to listen for commands while running
  • Camera can now reset image counter when a Timelapse event is emitted

0.8.7 - Config Defaults

  • Fixed some issues in the configs when certain values were strings that needed to be integers by checking and casting these values.

0.8.6 - Trigger Groups

  • Added Trigger Groups to the System
  • Updated trigger worker to check for trigger group configs
  • Updated triggers to work with groups if one is set

0.8.5 - Triggers & Actions

  • Added Triggers to the System
  • Added control trigger type
  • Added sensor trigger type
  • Added time trigger type
  • Created a trigger worker to manage the triggers
  • Added Actions to the system
  • Added support for event actions
  • Added support for command actions
  • Added nested_source for sensor triggers

0.8.4 - Refactored Arduino Workers & Added New Controls

  • Refactored Arduino Worker to add Reconnects/ Timeouts
  • Added requirements.txt file to install packages
  • Added Config option sleep_delay for nodes
  • Refactored controls and sensors for Arduino into and
  • Made a better controller of sensors and controls for that node
  • Added for arduinos
  • Added better edge detection for node button controls
  • Updated controls to emit events similar to sensors
  • Added []( for arduinos
  • Added for pi

0.8.3 - Added Controls Part 2 with Pi Support

  • New worker type control available in workers configuration that contains controls configs
  • Added new Pi Control workers

0.8.2 - revamped worker configuration for sensors

  • The configuration option sensors has been removed and now is available in workers config
  • Added workers configuration option that is array of worker objects for the pi
  • Sensor configuration can now be run on a single or multiple workers as a result allowing better controls

0.8.1 - better folder structure and renamed tests

  • The pi_sensors directory has been moved to sensors and renamed as pi to match other sensors
  • Tests have been renamed and organized into folders to better sort out their uses.
  • Moved tests that were actually tools to the tools folder and renamed them

0.8.0 - Added Controls Feature Part 1

  • New controls option for nodes
  • Added default control and ButtonControl
  • Controls are linked to a single topic and action

0.7.5 - Refactored Code and Cleanup Legacy Files

  • Updated relays to use key instead of tag to better match other settings
  • Cleaned up various bits of code
  • Added comments on some complex areas
  • Fix for relays not responding to Switch event if data was 0

0.7.4 - Added Wifi Support for Nodes [ESP8266]

  • Add optional "use_wifi" config option to nodes
  • Put IP Address inside address config option instead of serial port

0.7.3 - Node Types Merge, ADCWorker

  • Add "type" to "nodes" in configuration
  • Need to install adafruit-blinka and adafruit-circuitpython-mcp3xxx

0.7.2 - Added Adafruit Sensors Library

  • Add "model" to sensor Humidity type config
  • Need to Install Adafruit_DHT

0.7.1 - Refactored Humidity Sensors

  • Switched to using the adafruit library for DHT11 and DHT22 support
  • Allowed more models to be supported with model option

0.7.0 - Added Camera Feature & Fixed Events

  • Added support for picamera to take photos
  • Created a camera_worker to manage camera

0.6.0 - Refactored Pump Worker into Relay Workers

  • Removed old pump_worker
  • Created new relay_worker to mange relays
  • Added support for more general relays
  • Relays now listen for pub/sub events to activate
  • Added new relays configuration

0.5.0 - Added Nodes

  • Added sensor_worker for managing node sensors
  • Added nodes to connect to Arduino
  • Added node sensors

0.4.0 - Added Pump Worker

  • Added a pump_worker to control a relay connected to pump
  • Added support for pump configuration

0.3.0 - Added Sensor Worker

  • Added a pi_sensor_worker to control a sensors on the pi
  • Added support for sensor configuration
  • Added pi float sensor
  • Added pi humidity sensor

0.2.0 - Added MudPi Config

  • The system loads from a configuration file mudpi.config
  • Added config loading function
  • Added basic configuration options