Initial commit: Home automation docs and CODESYS project
- Reorganized project: codesys/, docs/codesys|redesign|integration|reference/, scripts/ - CODESYS project and exports in codesys/ - Documentation index in docs/README.md - Redesign and light naming configuration - Water boiler control and safety design Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
239
docs/redesign/redesign-implementation-roadmap.md
Normal file
239
docs/redesign/redesign-implementation-roadmap.md
Normal file
@@ -0,0 +1,239 @@
|
||||
# Redesign Implementation Roadmap
|
||||
|
||||
## Overview
|
||||
|
||||
This document provides a step-by-step roadmap for implementing the redesigned structure based on the light naming configuration.
|
||||
|
||||
## Phase 1: Configuration & Planning
|
||||
|
||||
### Step 1.1: Review Light Naming Configuration
|
||||
- [ ] Review `light-naming-configuration.md`
|
||||
- [ ] Modify light names per room based on actual installation
|
||||
- [ ] Remove unused lights from structure
|
||||
- [ ] Add any missing lights
|
||||
- [ ] Document relay-to-light mapping
|
||||
|
||||
### Step 1.2: Map Relays to Lights
|
||||
- [ ] Create mapping table: Relay # → Room → Light Name
|
||||
- [ ] Document in `relay-mapping.md`
|
||||
- [ ] Verify all relays are accounted for
|
||||
|
||||
**Example Mapping**:
|
||||
```
|
||||
Relay 1 → kitchen → main
|
||||
Relay 2 → kitchen → under_cabinet
|
||||
Relay 3 → kitchen → island
|
||||
Relay 4 → master_bedroom → main
|
||||
Relay 5 → master_bedroom → bedside_left
|
||||
...
|
||||
```
|
||||
|
||||
### Step 1.3: Water Boiler Configuration
|
||||
- [ ] Review water boiler safety requirements
|
||||
- [ ] Configure temperature limits
|
||||
- [ ] Configure time limits (max ON, min OFF)
|
||||
- [ ] Identify sensor inputs (temperature, flow, pressure)
|
||||
- [ ] Map boiler relay output
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: CODESYS Structure Implementation
|
||||
|
||||
### Step 2.1: Create New Data Structures
|
||||
- [ ] Create `struct_light_control` type
|
||||
- [ ] Create `struct_water_boiler` type
|
||||
- [ ] Create room-specific structures
|
||||
- [ ] Create global `rooms` structure
|
||||
|
||||
### Step 2.2: Create Function Blocks
|
||||
- [ ] Create `fb_lightControl` function block
|
||||
- [ ] Create `fb_waterBoiler` function block
|
||||
- [ ] Test function blocks in simulation
|
||||
|
||||
### Step 2.3: Update Network Variables
|
||||
- [ ] Update `NVL_Sender` with new structure
|
||||
- [ ] Update `NVL_Receiver` with new structure
|
||||
- [ ] Add water boiler network variables
|
||||
- [ ] Configure network variable properties
|
||||
|
||||
### Step 2.4: Implement Control Logic
|
||||
- [ ] Replace `fb_switch` with new structure
|
||||
- [ ] Implement light control per room
|
||||
- [ ] Implement water boiler control
|
||||
- [ ] Add relay output mapping
|
||||
- [ ] Add relay status readback
|
||||
|
||||
### Step 2.5: Testing
|
||||
- [ ] Test in simulation
|
||||
- [ ] Test individual light control
|
||||
- [ ] Test water boiler control
|
||||
- [ ] Test safety measures
|
||||
- [ ] Verify network variable transmission
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: Node-RED Integration
|
||||
|
||||
### Step 3.1: Update Network Variable Nodes
|
||||
- [ ] Update CODESYS network variable nodes
|
||||
- [ ] Configure new variable structure
|
||||
- [ ] Test bidirectional communication
|
||||
|
||||
### Step 3.2: Create Transformation Functions
|
||||
- [ ] Create function to flatten room structure for HA
|
||||
- [ ] Create function to convert HA commands to CODESYS format
|
||||
- [ ] Create function for Zigbee edge detection
|
||||
- [ ] Test transformations
|
||||
|
||||
### Step 3.3: Update MQTT Flows
|
||||
- [ ] Update MQTT topics to new naming convention
|
||||
- [ ] Configure Home Assistant auto-discovery
|
||||
- [ ] Update Zigbee switch flows
|
||||
- [ ] Add water boiler MQTT flows
|
||||
|
||||
### Step 3.4: Testing
|
||||
- [ ] Test HA → CODESYS commands
|
||||
- [ ] Test Zigbee → CODESYS commands
|
||||
- [ ] Test CODESYS → HA status updates
|
||||
- [ ] Test water boiler control
|
||||
- [ ] Verify MQTT message flow
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Home Assistant Configuration
|
||||
|
||||
### Step 4.1: Entity Configuration
|
||||
- [ ] Create light entities for all lights
|
||||
- [ ] Configure entity names and icons
|
||||
- [ ] Set up areas/rooms in HA
|
||||
- [ ] Create water boiler entity
|
||||
|
||||
### Step 4.2: Dashboard Setup
|
||||
- [ ] Create lighting dashboard
|
||||
- [ ] Group lights by room
|
||||
- [ ] Add water boiler control
|
||||
- [ ] Add status indicators
|
||||
|
||||
### Step 4.3: Automations
|
||||
- [ ] Update existing automations
|
||||
- [ ] Create new automations if needed
|
||||
- [ ] Test automations
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Migration & Deployment
|
||||
|
||||
### Step 5.1: Backup Current System
|
||||
- [ ] Backup CODESYS project
|
||||
- [ ] Export Node-RED flows
|
||||
- [ ] Backup Home Assistant configuration
|
||||
- [ ] Document current state
|
||||
|
||||
### Step 5.2: Parallel Testing
|
||||
- [ ] Deploy new structure in test mode
|
||||
- [ ] Run parallel with old system
|
||||
- [ ] Compare behavior
|
||||
- [ ] Fix any issues
|
||||
|
||||
### Step 5.3: Gradual Migration
|
||||
- [ ] Migrate one room at a time
|
||||
- [ ] Test each room thoroughly
|
||||
- [ ] Migrate water boiler
|
||||
- [ ] Complete migration
|
||||
|
||||
### Step 5.4: Validation
|
||||
- [ ] Test all lights from HA
|
||||
- [ ] Test all lights from Zigbee switches
|
||||
- [ ] Verify status feedback
|
||||
- [ ] Test water boiler control
|
||||
- [ ] Test all safety measures
|
||||
- [ ] Verify no regressions
|
||||
|
||||
---
|
||||
|
||||
## Implementation Checklist
|
||||
|
||||
### CODESYS
|
||||
- [ ] New data structures defined
|
||||
- [ ] Function blocks created and tested
|
||||
- [ ] Network variables updated
|
||||
- [ ] Control logic implemented
|
||||
- [ ] Relay mapping configured
|
||||
- [ ] Status readback implemented
|
||||
- [ ] Water boiler safety measures implemented
|
||||
- [ ] Code tested in simulation
|
||||
|
||||
### Node-RED
|
||||
- [ ] Network variable nodes updated
|
||||
- [ ] Transformation functions created
|
||||
- [ ] MQTT flows updated
|
||||
- [ ] HA auto-discovery configured
|
||||
- [ ] Zigbee integration updated
|
||||
- [ ] Water boiler flows added
|
||||
- [ ] All flows tested
|
||||
|
||||
### Home Assistant
|
||||
- [ ] All light entities created
|
||||
- [ ] Water boiler entity created
|
||||
- [ ] Areas/rooms configured
|
||||
- [ ] Dashboard updated
|
||||
- [ ] Automations updated
|
||||
- [ ] All entities tested
|
||||
|
||||
### Documentation
|
||||
- [ ] Light naming configuration finalized
|
||||
- [ ] Relay mapping documented
|
||||
- [ ] Network variable structure documented
|
||||
- [ ] MQTT topics documented
|
||||
- [ ] Safety measures documented
|
||||
- [ ] Troubleshooting guide updated
|
||||
|
||||
---
|
||||
|
||||
## Key Files Reference
|
||||
|
||||
1. **Light Configuration**: `light-naming-configuration.md`
|
||||
2. **Structure Analysis**: `structure-redesign-analysis.md`
|
||||
3. **Visual Comparison**: `structure-comparison-visual.md`
|
||||
4. **Function Block Redesign**: `fb_switch-redesign-recommendation.md`
|
||||
5. **This Roadmap**: `redesign-implementation-roadmap.md`
|
||||
|
||||
---
|
||||
|
||||
## Estimated Timeline
|
||||
|
||||
- **Phase 1** (Planning): 1-2 days
|
||||
- **Phase 2** (CODESYS): 2-3 days
|
||||
- **Phase 3** (Node-RED): 1-2 days
|
||||
- **Phase 4** (Home Assistant): 1 day
|
||||
- **Phase 5** (Migration): 2-3 days
|
||||
|
||||
**Total**: ~7-11 days (depending on complexity and testing)
|
||||
|
||||
---
|
||||
|
||||
## Risk Mitigation
|
||||
|
||||
### Risks
|
||||
1. **Network Variable Changes**: May break existing Node-RED flows
|
||||
- **Mitigation**: Test thoroughly, have rollback plan
|
||||
|
||||
2. **State Synchronization**: During migration, states may be inconsistent
|
||||
- **Mitigation**: Migrate during low-usage period, verify all states
|
||||
|
||||
3. **Water Boiler Safety**: Critical system, must work correctly
|
||||
- **Mitigation**: Extensive testing, manual override available
|
||||
|
||||
4. **Home Assistant Entities**: May need to recreate entities
|
||||
- **Mitigation**: Use unique_id to preserve entity history
|
||||
|
||||
### Rollback Plan
|
||||
- Keep old CODESYS project as backup
|
||||
- Keep old Node-RED flows as backup
|
||||
- Document rollback procedure
|
||||
- Test rollback procedure
|
||||
|
||||
---
|
||||
|
||||
**Status**: Planning Phase
|
||||
**Next Step**: Review and modify `light-naming-configuration.md` with actual light configuration
|
||||
Reference in New Issue
Block a user