Skip to content

Commit 42a2ee9

Browse files
authored
Added roadmap
Rough roadmap I have been using internally
1 parent 5a5875a commit 42a2ee9

File tree

1 file changed

+253
-0
lines changed

1 file changed

+253
-0
lines changed

ROADMAP.md

+253
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,253 @@
1+
# Roadmap to 1.0
2+
3+
Below is a high level roadmap of features / design goals I want to complete on MudPi.
4+
5+
## 0.1
6+
7+
- [x] Raspberry Pi Teperature Sensor
8+
- [x] Raspberry Pi Float Sensor
9+
- [x] Raspberry Pi LCD Screen
10+
11+
## 0.2
12+
13+
- [x] Pump Support for Raspberry Pi using Relay
14+
- [x] Use Redis to Store Values / State
15+
16+
## 0.3
17+
18+
- [x] Load system from a Config File
19+
- [x] Dynamically Load Sensors
20+
- [x] Create Main Process and use Multi-Threading
21+
22+
## 0.4
23+
24+
- [x] Communicate to Arduino
25+
- [x] Create Arduino Sensor Support
26+
- [x] Arduino Soil Sensor
27+
- [x] Arduino Float Sensor
28+
- [x] Arduino Temperature / Moisture Sensor
29+
- [x] Arduino Onewire
30+
31+
## 0.5
32+
33+
- [x] Implement event system and using Redis Pub/Sub
34+
35+
## 0.6
36+
37+
- [x] Add camera support for raspberry pi cam
38+
39+
## 0.7
40+
41+
- [x] Refactor Workers to better handle events
42+
- [x] Refactor Pump into more Configurable Dynamic Relays
43+
44+
### 0.7.1
45+
46+
- [x] Fix temp sensor fot DHT11 and DHT22 [Bug]
47+
48+
### 0.7.2
49+
50+
- [x] Fix relay not listening to `Switch` event with a value of `0` [Bug]
51+
52+
### 0.7.3 Pull Request & New Library
53+
54+
- [x] Add "model" to sensor `Humidity` type config
55+
- [x] Need to Install `Adafruit_DHT`
56+
57+
### 0.7.4
58+
59+
- [x] Create Arduino Wireless Sensor Node
60+
- [x] Wifi
61+
62+
## 0.8
63+
64+
- [x] Add Controls
65+
- [x] Buttons
66+
- [x] Momentary
67+
- [x] Latching ( Switch?)
68+
- [x] Switches
69+
- [x] Potentiometer
70+
- [x] Joystick (Its 2 pots and a button)
71+
- [x] Add Light intensity sensor
72+
- [x] Add support for relays on arduino slaves
73+
- [x] Add controls for solenoids
74+
- [x] Refactor config file
75+
- [x] Change key names to match syntax across the file
76+
- [x] Allow more configuration options
77+
- [x] Allow workers to be configured
78+
- [x] Allow channels to be configured
79+
- [x] Add support for buttons
80+
- [x] Add Actions
81+
- [x] Add Triggers
82+
- [x] Remove old LCD screen worker
83+
- [x] I2C Support?
84+
- [x] Sensors
85+
- [x] BME680
86+
- [x] Screens
87+
- [x] 20x4
88+
- [x] 16x2
89+
- [x] Catch for No Server Configs
90+
- [x] Check for KeyErrors in the Configs
91+
- [x] Allow more empty items in config as default
92+
- [x] Fix Sensor count on `pi sensor worker` print statement
93+
- [x] Make print statements depend on debug mode better
94+
- [x] Fix import of `SwitchControl` to make switches work on `pi_control_worker`
95+
- [x] Investigate `DHT22` sensor types
96+
- [x] Add ability to configure redis connection in `variables.py`
97+
98+
- [x] Update nanpy to support Software serial HC12 including channels
99+
- [x] Not as reliable as wifi
100+
- [x] Install Script to install all dependencies
101+
- [x] Add Batteries and Solar Charging
102+
- [x] Allow readings of charge level and battery percent
103+
- [x] Allow linked sensors and relays (like float sensor to turn off relay - pump)
104+
- [x] Allow soil readings on solar nodes
105+
106+
**v0.9.1**
107+
108+
- [x] Add way to trigger dynamic variables in messages to display
109+
- [x] snippet replacement to redis key lookup
110+
- [x] Provide a redis [key] between square brackets and it will be replaced with value
111+
- [x] Add action `sequences` to perform actions with delays between
112+
- [x] Each step in sequence can have thresholds of its own
113+
- [x] Can skip to next step using event
114+
- [x] `SequenceNextStep`, `SequencePreviousStep`
115+
- [x] If no `duration` is set then you must pass this event to toggle next step
116+
- [x] Steps have an optional `delay` before triggering actions
117+
- [x] Emits event on start and end of sequence
118+
- [x] `SequenceStarted`, `SequenceEnded`
119+
- [x] Emits event on each step of sequence
120+
- [x] `SequenceStepStarted`, `SequenceStepEnded`
121+
- [x] Relay Refactoring
122+
- [x] The `topic` is no longer required. This will default to `mudpi/relays/[relay_key]`
123+
- [x] An exception is thrown if no `key` if found in config
124+
- [x] A `name` will be generated from a `key` if one is not provided
125+
- [x] Sensors
126+
- [x] `key` is now be required
127+
- [x] A `name` will be generated from a `key` if one is not provided
128+
- [x] Controls
129+
- [x] `key` is now be required
130+
- [x] A `name` will be generated from a `key` if one is not provided
131+
- [x] Merge in Peerys Logger PR#12
132+
- [x] Increase debug logging capabilities
133+
- [x] Update sequences to use new logger
134+
135+
## 0.10.0
136+
137+
- [x] Updated Socket `Server` to Allow Incoming Data
138+
- [x] Make the socket server relay events
139+
- [x] Displays on Nodes
140+
- [x] Optimize workers to use new `wait` method for faster responses
141+
- [x] See how its used in `sequence_worker.py` -ERIC NOTE
142+
- [x] Relay Failsafe Durations
143+
- [x] Allow `Display` messages to be added to front of the queue
144+
- [x] Build `StateMachine` that stores state of everything
145+
- [x] Look into making base `Component` class that all controls and sensors inherit from
146+
- [x] refactor `Workers` to reduce code duplication
147+
- [x] Change `event` system to work on adapter pattern
148+
- [x] `Redis` adapter
149+
- [x] `MQTT` adapter
150+
- [x] Update events to be more streamlined
151+
- [x] Changing event channels to more standard
152+
- [x] Trigger Groups needs `key` passed down properly
153+
- [x] Add `before`, `after` and `between` trigger types for **datetime** comparisons
154+
- [x] Add `sun` triggers that check time against sun data
155+
- [x] Create a `timer` trigger
156+
- [x] reset the timer
157+
- [x] Does something while timer `active`
158+
- [x] Does something when timer finished
159+
- [x] Allow password for `redis`
160+
- [x] Allow password for `mqtt`
161+
- [x] Add triggers for `nfc`
162+
- [x] Add tag `sensor` for `nfc`
163+
164+
## 1.0
165+
166+
- [ ] Update custom actions configs
167+
- [ ] Add `--clear_cache` flag to clear cache on run
168+
- [ ] Make a simple `api`
169+
- [ ] Allow better `templating` in dynamic messages and other areas of system
170+
- [ ] Merge in the weather API from @icyspace
171+
- [ ] Add a `Solarbeam` client to connect online
172+
- [ ] Generic Event Trigger
173+
- [ ] MCP3208 Updates
174+
- [ ] Device discovery
175+
- [ ] Allow configurations to be posted on event system
176+
- [ ] MQTT
177+
- [ ] Redis
178+
- [ ] Socket
179+
- [ ] Additional Sensor Support
180+
- [ ] Add Flowmeter Support
181+
- [ ] Add in PH Sensor support
182+
- [ ] Add in EC sensor support
183+
- [ ] Debug the Onewire temp again
184+
- [ ] Voltage Meter
185+
- [x] Add in better defaults for float sensors.
186+
- [x] Allow nanpy to run over wireless serial??
187+
188+
## 1.0+
189+
190+
- [ ] Remote control with infrared?
191+
- [ ] Motion Sensors
192+
- [ ] Motor Controls
193+
- [ ] Interface with Homeassistnt IO
194+
- [ ] Interface with Google home?
195+
- [ ] `alarms` are like **timers** but require you to shut them off
196+
197+
### *Need Hardware
198+
199+
- [ ] Interface with z-wave
200+
- [ ] Make Oled display worker? (need parts)
201+
- [ ] Any additional sensors (could use part donations)
202+
203+
## Non Core Tasks
204+
205+
- [ ] Passive Nodes Can be Provisioned over BLE automaticially
206+
- [ ] Update config on site
207+
- [ ] Make Solarbeam proto page
208+
- [ ] Push assistant changes with solarbeam account
209+
- [ ] Fix configs on solarbeam dashboard
210+
211+
**Mudpi Gateway / Sensors**
212+
213+
[MudPi Gateway & Firmware](https://www.notion.so/MudPi-Gateway-Firmware-1cb3fc4416b04b5dbd2349a10cfc0fd8)
214+
215+
- [ ] Create MudPi Gateway
216+
- [ ] 433MHZ | 915MHZ | BLE | LORA
217+
- [x] Wifi
218+
- [x] Socket
219+
- [x] Port 7007
220+
- [x] Websockets
221+
- [x] MQTT
222+
- [x] Create MudPi Passive sensors firmware
223+
- [ ] Bluetooth | 433MHZ | 915MHZ | BLE?
224+
- [x] Wifi?
225+
- [ ] Allow Wifi to be configured
226+
- [ ] Fall back to hotspot
227+
- [ ] Update passive node to support lora
228+
- [ ] Look into ESP-MESH
229+
230+
231+
## Fixes in v0.10.0 to do
232+
233+
- ~~Investigate the displays~~
234+
- ~~Make dynamic messages in displays work with substate (i.e. `.` parsing in tag)~~
235+
- ~~Make toggles listen to events~~
236+
- ~~Fix typos on docs about actions~~
237+
- ~~Allow actions to accept data in the configs~~
238+
239+
```jsx
240+
action: 'example.toggle'
241+
data:
242+
component_id: 'example'
243+
state: true
244+
```
245+
246+
- ~~Add `analog` to nanpy sensor docs~~
247+
- ~~Restore states for components is not called~~
248+
- ~~Make sun sensor check for time on last reading after restore to adjust next update~~
249+
- ~~Add UUID to events to prevent issues~~
250+
- ~~Fix the GPIO button edge detect~~
251+
- ~~Add way to send message to front of display queue~~
252+
- ~~Check `state_keys` to make sure component is loaded before restoring~~
253+
- ~~Fix the `node` reconnect (There is bad self.config['name'] in debug print)~~

0 commit comments

Comments
 (0)