Skip to content

Releases: mudpi/mudpi-core

Version v0.10.0

25 May 15:40
Compare
Choose a tag to compare

v0.10.0

This is the largest update to MudPi since the project started. Every system has been refactored and better incorporated into a more cohesive system. Many items have been organized in a new extension system to keep updates more manageable with a growing number of additions (from multiple contributors). In this update I really took a long time to think about a foundation for MudPi to sit on going forward. This would then lend to a more stable core without the need for as many breaking changes. Much of the old main file has have been refactored into core systems. With this update providing a more solid framework I can continue to work on more supporting resources and content. Previously with each major breaking change it would require time consuming revisions across multiple areas. I am excited for these changes and what it enables me to work on next. The documentation has already been updated to reflect this version.

  • 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
    • Custom extensions can load from custom_extensions folder
  • 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
    • Thresholds now allow formatting and type casting through type and format
    • Add before, after and between trigger types for datetime comparisons
    • Add sun triggers that check time against sun data
  • 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
    • Added way to send message to front of queue
  • Logger
    • added a log_formatted() function for better formatting in output.
  • Worker
    • Worker now is just one general class, removed need for others
    • Optimize workers to use new wait method for faster responses
  • MQTT
    • Added support for MQTT
    • Added adapter to use MQTT for the core event bus
    • Added credentials for MQTT broker connection
  • NFC Tags
    • Added support for NFC tags and readers
    • Allow NFC tag data as sensor
    • Added support for writing to NFC tags
    • Added security options for NFC tags
    • NFC tags can trigger events
  • Sun
    • Added support for a sun api
    • Gather sunset, sunrise data based on a location
    • Trigger actions based on sun times
  • Timer
    • Added a timer for elapsed timed functions
    • Timer can be stopped, started, reset, paused, and restarted
    • Timer triggers fire an action after set duration
    • Timer sensor is used to track timer data
  • Plus tons of other items I forgot to note (docs are updated though)

Version v0.9.1

27 Oct 05:42
7e20255
Compare
Choose a tag to compare
  • Add way to trigger dynamic variables in messages to display
    • snippet replacement to redis key lookup
    • Provide a redis [key] between square brackets and it will be replaced with value
  • Add automation sequences to perform actions with delays between
    • Each step in sequence can have thresholds of its own
    • Can skip to next step using event
      • SequenceNextStep, SequencePreviousStep
      • If no duration is set then you must pass this event to toggle next step
    • Steps have an optional delay before triggering actions
    • Emits event on start and end of sequence
      • SequenceStarted, SequenceEnded
    • Emits event on each step of sequence
      • SequenceStepStarted, SequenceStepEnded
  • 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
    • key is now be required
    • A name will be generated from a key if one is not provided
  • Controls
    • key is now be required
    • 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

Version v0.9.0

15 Aug 02:00
9cf9480
Compare
Choose a tag to compare

v0.9.0

  • 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

v.8.14

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

v8.13

  • Added I2C Worker
  • Added Support for BME680

Version v0.8.11

23 Jul 15:34
Compare
Choose a tag to compare
  • Imported the missing switch controls in the worker.
  • Updated display on sensor count to be correct

Version v0.8.10

23 Apr 15:12
7c84152
Compare
Choose a tag to compare

Better error tracing for debugging
Bug fixes to the node workers.

  • Added better support for empty configs
  • Fixed an error with MCP worker

Version v0.8.9

05 Apr 16:33
Compare
Choose a tag to compare

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

Version v0.8.8

05 Apr 16:31
Compare
Choose a tag to compare
  • Added a camera listener to listen for commands while running
  • Camera can now reset image counter when a Timelapse event is emitted

Version v0.8.7

05 Apr 16:28
Compare
Choose a tag to compare

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

Version v0.8.6

31 Oct 22:56
Compare
Choose a tag to compare
  • Triggers can now be defined in a group
  • Trigger groups require all triggers active to execute actions
  • Updated triggers to work with groups without changing single trigger functions

Version v0.8.5

28 Oct 16:45
Compare
Choose a tag to compare
  • Added Triggers feature
  • Added control trigger type
  • Added sensor trigger type
  • Added time trigger type
  • Created trigger worker to manage triggers
  • Added Actions feature
  • Added support for event actions
  • Added support for command actions
  • Added nested_source for sensor triggers