Below is a high level roadmap of features / design goals I want to complete on MudPi.
- Raspberry Pi Teperature Sensor
- Raspberry Pi Float Sensor
- Raspberry Pi LCD Screen
- Pump Support for Raspberry Pi using Relay
- Use Redis to Store Values / State
- Load system from a Config File
- Dynamically Load Sensors
- Create Main Process and use Multi-Threading
- Communicate to Arduino
- Create Arduino Sensor Support
- Arduino Soil Sensor
- Arduino Float Sensor
- Arduino Temperature / Moisture Sensor
- Arduino Onewire
- Implement event system and using Redis Pub/Sub
- Add camera support for raspberry pi cam
- Refactor Workers to better handle events
- Refactor Pump into more Configurable Dynamic Relays
- Fix temp sensor fot DHT11 and DHT22 [Bug]
- Fix relay not listening to
Switchevent with a value of0[Bug]
- Add "model" to sensor
Humiditytype config - Need to Install
Adafruit_DHT
- Create Arduino Wireless Sensor Node
- Wifi
-
Add Controls
- Buttons
- Momentary
- Latching ( Switch?)
- Switches
- Potentiometer
- Joystick (Its 2 pots and a button)
- Buttons
-
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
- Sensors
-
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 workerprint statement -
Make print statements depend on debug mode better
-
Fix import of
SwitchControlto make switches work onpi_control_worker -
Investigate
DHT22sensor 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
sequencesto 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
durationis set then you must pass this event to toggle next step
-
- Steps have an optional
delaybefore triggering actions - Emits event on start and end of sequence
-
SequenceStarted,SequenceEnded
-
- Emits event on each step of sequence
-
SequenceStepStarted,SequenceStepEnded
-
- Relay Refactoring
- The
topicis no longer required. This will default tomudpi/relays/[relay_key] - An exception is thrown if no
keyif found in config - A
namewill be generated from akeyif one is not provided
- The
- Sensors
-
keyis now be required - A
namewill be generated from akeyif one is not provided
-
- Controls
-
keyis now be required - A
namewill be generated from akeyif one is not provided
-
- Merge in Peerys Logger PR#12
- Increase debug logging capabilities
- Update sequences to use new logger
- Updated Socket
Serverto Allow Incoming Data- Make the socket server relay events
- Displays on Nodes
- Optimize workers to use new
waitmethod for faster responses- See how its used in
sequence_worker.py-ERIC NOTE
- See how its used in
- Relay Failsafe Durations
- Allow
Displaymessages to be added to front of the queue - Build
StateMachinethat stores state of everything - Look into making base
Componentclass that all controls and sensors inherit from - refactor
Workersto reduce code duplication - Change
eventsystem to work on adapter pattern-
Redisadapter -
MQTTadapter
-
- Update events to be more streamlined
- Changing event channels to more standard
- Trigger Groups needs
keypassed down properly - Add
before,afterandbetweentrigger types for datetime comparisons - Add
suntriggers that check time against sun data - Create a
timertrigger- 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
sensorfornfc
- Update custom actions configs
- Add
--clear_cacheflag to clear cache on run - Make a simple
api - Allow better
templatingin dynamic messages and other areas of system - Merge in the weather API from @icyspace
- Add a
Solarbeamclient 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??
- Remote control with infrared?
- Motion Sensors
- Motor Controls
- Interface with Homeassistnt IO
- Interface with Google home?
-
alarmsare like timers but require you to shut them off
- Interface with z-wave
- Make Oled display worker? (need parts)
- Any additional sensors (could use part donations)
- 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
- 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
-
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 configsaction: 'example.toggle' data: component_id: 'example' state: true
-
Addanalogto 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 -
Checkstate_keysto make sure component is loaded before restoring -
Fix thenodereconnect (There is bad self.config['name'] in debug print)