Skip to content

Latest commit

 

History

History
253 lines (207 loc) · 8.17 KB

ROADMAP.md

File metadata and controls

253 lines (207 loc) · 8.17 KB

Roadmap to 1.0

Below is a high level roadmap of features / design goals I want to complete on MudPi.

0.1

  • Raspberry Pi Teperature Sensor
  • Raspberry Pi Float Sensor
  • Raspberry Pi LCD Screen

0.2

  • Pump Support for Raspberry Pi using Relay
  • Use Redis to Store Values / State

0.3

  • Load system from a Config File
  • Dynamically Load Sensors
  • Create Main Process and use Multi-Threading

0.4

  • Communicate to Arduino
  • Create Arduino Sensor Support
  • Arduino Soil Sensor
  • Arduino Float Sensor
  • Arduino Temperature / Moisture Sensor
  • Arduino Onewire

0.5

  • Implement event system and using Redis Pub/Sub

0.6

  • Add camera support for raspberry pi cam

0.7

  • Refactor Workers to better handle events
  • Refactor Pump into more Configurable Dynamic Relays

0.7.1

  • Fix temp sensor fot DHT11 and DHT22 [Bug]

0.7.2

  • Fix relay not listening to Switch event with a value of 0 [Bug]

0.7.3 Pull Request & New Library

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

0.7.4

  • Create Arduino Wireless Sensor Node
    • Wifi

0.8

  • Add Controls

    • Buttons
      • Momentary
      • Latching ( Switch?)
    • Switches
    • Potentiometer
    • Joystick (Its 2 pots and a button)
  • Add Light intensity sensor

  • Add support for relays on arduino slaves

  • Add controls for solenoids

  • Refactor config file

    • Change key names to match syntax across the file
    • Allow more configuration options
      • Allow workers to be configured
      • Allow channels to be configured
  • Add support for buttons

  • Add Actions

  • Add Triggers

  • Remove old LCD screen worker

  • I2C Support?

    • Sensors
      • BME680
    • Screens
      • 20x4
      • 16x2
  • Catch for No Server Configs

  • Check for KeyErrors in the Configs

  • Allow more empty items in config as default

  • Fix Sensor count on pi sensor worker print statement

  • Make print statements depend on debug mode better

  • Fix import of SwitchControl to make switches work on pi_control_worker

  • Investigate DHT22 sensor types

  • Add ability to configure redis connection in variables.py

  • Update nanpy to support Software serial HC12 including channels

    • Not as reliable as wifi
  • Install Script to install all dependencies

  • Add Batteries and Solar Charging

    • Allow readings of charge level and battery percent
  • Allow linked sensors and relays (like float sensor to turn off relay - pump)

  • Allow soil readings on solar nodes

v0.9.1

  • 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 action 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

0.10.0

  • Updated Socket Server to Allow Incoming Data
    • Make the socket server relay events
  • Displays on Nodes
  • Optimize workers to use new wait method for faster responses
    • See how its used in sequence_worker.py -ERIC NOTE
  • Relay Failsafe Durations
  • Allow Display messages to be added to front of the queue
  • Build StateMachine that stores state of everything
  • Look into making base Component class that all controls and sensors inherit from
  • refactor Workers to reduce code duplication
  • Change event system to work on adapter pattern
    • Redis adapter
    • MQTT adapter
  • Update events to be more streamlined
    • Changing event channels to more standard
  • Trigger Groups needs key passed down properly
  • Add before, after and between trigger types for datetime comparisons
  • Add sun triggers that check time against sun data
  • Create a timer trigger
    • reset the timer
    • Does something while timer active
    • Does something when timer finished
  • Allow password for redis
  • Allow password for mqtt
  • Add triggers for nfc
  • Add tag sensor for nfc

1.0

  • Update custom actions configs
  • Add --clear_cache flag to clear cache on run
  • Make a simple api
  • Allow better templating in dynamic messages and other areas of system
  • Merge in the weather API from @icyspace
  • Add a Solarbeam client to connect online
  • Generic Event Trigger
  • MCP3208 Updates
  • Device discovery
    • Allow configurations to be posted on event system
    • MQTT
    • Redis
    • Socket
  • Additional Sensor Support
    • Add Flowmeter Support
    • Add in PH Sensor support
    • Add in EC sensor support
    • Debug the Onewire temp again
    • Voltage Meter
    • Add in better defaults for float sensors.
  • Allow nanpy to run over wireless serial??

1.0+

  • Remote control with infrared?
  • Motion Sensors
  • Motor Controls
  • Interface with Homeassistnt IO
  • Interface with Google home?
  • alarms are like timers but require you to shut them off

*Need Hardware

  • Interface with z-wave
  • Make Oled display worker? (need parts)
  • Any additional sensors (could use part donations)

Non Core Tasks

  • Passive Nodes Can be Provisioned over BLE automaticially
  • Update config on site
  • Make Solarbeam proto page
  • Push assistant changes with solarbeam account
  • Fix configs on solarbeam dashboard

Mudpi Gateway / Sensors

MudPi Gateway & Firmware

  • Create MudPi Gateway
    • 433MHZ | 915MHZ | BLE | LORA
    • Wifi
    • Socket
      • Port 7007
    • Websockets
    • MQTT
  • Create MudPi Passive sensors firmware
    • Bluetooth | 433MHZ | 915MHZ | BLE?
    • Wifi?
    • Allow Wifi to be configured
    • Fall back to hotspot
    • Update passive node to support lora
  • Look into ESP-MESH

Fixes in v0.10.0 to do

  • Investigate the displays

  • Make dynamic messages in displays work with substate (i.e. . parsing in tag)

  • Make toggles listen to events

  • Fix typos on docs about actions

  • Allow actions to accept data in the configs

    action: 'example.toggle'
    data: 
    	component_id: 'example'
    	state: true
  • Add analog to nanpy sensor docs

  • Restore states for components is not called

  • Make sun sensor check for time on last reading after restore to adjust next update

  • Add UUID to events to prevent issues

  • Fix the GPIO button edge detect

  • Add way to send message to front of display queue

  • Check state_keys to make sure component is loaded before restoring

  • Fix the node reconnect (There is bad self.config['name'] in debug print)