Testing that needs done #9

Closed
opened 2025-11-08 16:23:33 -05:00 by sickprodigy · 1 comment
Owner

🧪 Testing Checklist - Climate Control System

Overview

Complete testing checklist for the Pico W climate control system deployment. Test all features to ensure proper operation before production use.


📋 Pre-Deployment Verification

  • All files uploaded to Pico W
  • config.json exists (auto-created on first run)
  • secrets.py configured with WiFi credentials
  • Static IP configured: 192.168.86.43
  • Serial console connected for monitoring

🌐 1. Web Interface Testing

Basic Connectivity

Dashboard Display

  • Inside temperature displays correctly
  • Outside temperature displays correctly
  • AC status shows (ON/OFF)
  • Heater status shows (ON/OFF)
  • Schedule status displays
  • Schedule cards render (if schedules configured)

Mode Control Buttons

  • Mode buttons visible on dashboard
  • Current mode highlighted correctly (Automatic/Temporary Hold/Permanent Hold)
  • Buttons clickable and responsive

Schedule Editor

  • Click "⚙️ Edit Schedules" link
  • Schedule editor page loads (no auto-refresh warning shown)
  • All 4 schedule slots displayed
  • Time inputs accept HH:MM format
  • Schedule name inputs visible
  • AC target temp inputs visible
  • Heater target temp inputs visible
  • "💾 Save Schedule Configuration" button visible
  • "⬅️ Back to Dashboard" button visible

Form Validation

  • Invalid time format (e.g., 99:99) rejected
  • Heater temp > AC temp validation works
  • Successful save redirects to /schedule page
  • Error messages display properly

Manual Temperature Override

  • Change AC target on dashboard
  • Change heater target on dashboard
  • System enters Temporary Hold mode
  • New targets applied immediately
  • Discord notification sent

💬 2. Discord Notifications Testing

Startup Notifications

Periodic Temperature Reports (Every 30 seconds)

  • Inside temp report: 📊 Inside: XX.X°F | AC: ON/OFF | Heater: ON/OFF
  • Outside temp report: 📊 Outside: XX.X°F | AC: ON/OFF | Heater: ON/OFF
  • Reports arrive consistently every 30 seconds

Temperature Alerts

  • High temp alert when inside > 80°F: 🔥 Inside temp HIGH: XX.X°F
  • Low temp alert when inside < 70°F: ❄️ Inside temp LOW: XX.X°F
  • High temp alert when outside > 85°F: 🔥 Outside temp HIGH: XX.X°F
  • Low temp alert when outside < 68°F: ❄️ Outside temp LOW: XX.X°F
  • Alert cleared notification when temp returns to normal

AC/Heater Status Changes

  • AC turned ON notification
  • AC turned OFF notification
  • Heater turned ON notification
  • Heater turned OFF notification

Schedule Notifications

  • Schedule applied: Schedule Applied: [name]
  • Schedule configuration updated notification
  • Mode change notifications (Pause/Resume/Disable)

❄️ 3. Climate Control - AC Testing

AC Activation Logic

  • AC turns ON when temp > 78°F (target 77 + swing 1)
  • AC relay clicks/activates
  • Dashboard shows "AC: ON"
  • Discord notification sent
  • Minimum run time enforced (30 seconds)

AC Deactivation Logic

  • AC turns OFF when temp < 76°F (target 77 - swing 1)
  • AC relay clicks/deactivates
  • Dashboard shows "AC: OFF"
  • Discord notification sent
  • Minimum off time enforced (5 seconds)

AC Safety Checks

  • AC won't short-cycle (respects min run/off times)
  • AC turns off on system shutdown (Ctrl+C)
  • AC state persists through web page refreshes

🔥 4. Climate Control - Heater Testing

Heater Activation Logic

  • Heater turns ON when temp < 70°F (target 72 - swing 2)
  • Heater relay clicks/activates
  • Dashboard shows "Heater: ON"
  • Discord notification sent
  • Minimum run time enforced (30 seconds)

Heater Deactivation Logic

  • Heater turns OFF when temp > 74°F (target 72 + swing 2)
  • Heater relay clicks/deactivates
  • Dashboard shows "Heater: OFF"
  • Discord notification sent
  • Minimum off time enforced (5 seconds)

Heater Safety Checks

  • Heater won't short-cycle (respects min run/off times)
  • Heater turns off on system shutdown (Ctrl+C)
  • Heater state persists through web page refreshes

Mutual Exclusion (AC/Heater)

  • AC and heater never run simultaneously
  • Proper handoff when transitioning between cooling/heating

5. Schedule System Testing

Schedule Configuration

  • Create 4 schedules with different times
  • Set different AC/heater targets per schedule
  • Name each schedule uniquely
  • Save successfully

Schedule Activation (Automatic Mode)

  • Enable schedules via "▶️ Enable Schedules" button
  • Dashboard shows " Automatic Mode"
  • Schedule applies at configured time
  • AC target changes to schedule value
  • Heater target changes to schedule value
  • Discord notification: Schedule Applied: [name]
  • Next schedule card highlighted

Temporary Hold Mode

  • Click "⏸️ Pause" button
  • Dashboard shows "⏸️ Temporary Hold"
  • Schedules do not auto-apply
  • Manual temp changes allowed
  • Click "▶️ Resume" to return to Automatic

Permanent Hold Mode

  • Click "🛑 Disable" button
  • Dashboard shows "🛑 Permanent Hold"
  • Schedules completely disabled
  • Manual control only
  • Click "▶️ Enable Schedules" to return to Automatic

Schedule Edge Cases

  • Midnight rollover (23:59 → 00:00) works
  • Missing schedules don't crash system
  • Invalid schedule times rejected during save
  • Config persists through reboot

🔄 6. Mode Change Testing

Automatic → Temporary Hold

  • Click "⏸️ Pause" button
  • Redirects to dashboard
  • Mode indicator changes
  • Schedules stop auto-applying
  • Manual changes allowed
  • Discord notification sent

Temporary Hold → Automatic

  • Click "▶️ Resume" button
  • Redirects to dashboard
  • Mode indicator changes to " Automatic Mode"
  • Schedules resume auto-applying
  • Discord notification sent

Automatic → Permanent Hold

  • Click "🛑 Disable" button
  • Redirects to dashboard
  • Mode indicator changes to "🛑 Permanent Hold"
  • Schedules disabled permanently
  • Discord notification sent

Permanent Hold → Automatic

  • Click "▶️ Enable Schedules" button
  • Redirects to dashboard
  • Mode indicator changes to " Automatic Mode"
  • Schedules resume
  • Discord notification sent

🛡️ 7. System Reliability Testing

Exception Recovery

  • Simulate error in main loop (causes exception)
  • System prints error to serial
  • System pauses 5 seconds
  • System resumes operation (doesn't crash)
  • AC/Heater continue operating

Graceful Shutdown

  • Press Ctrl+C in serial console
  • AC turns off
  • Heater turns off
  • LED turns off
  • Clean exit message displayed
  • No errors during shutdown

Network Recovery

  • Disconnect WiFi router
  • WiFi monitor detects disconnection
  • LED blinks indicating reconnection attempts
  • Reconnect WiFi router
  • System reconnects automatically
  • Discord notifications resume
  • Web page becomes accessible again

NTP Time Sync

  • Initial sync on startup (or failure message)
  • Retry attempts (up to 5) if initial fails
  • Success message: NTP sync succeeded on retry #X
  • Schedules use correct time after sync
  • System works with RTC time if NTP unavailable

Memory Management

  • Monitor free memory in serial output
  • Memory usage stable over 1 hour
  • No memory leaks detected
  • Garbage collection running

📊 8. Serial Console Monitoring

Expected Startup Output

# 🧪 Testing Checklist - Climate Control System ## Overview Complete testing checklist for the Pico W climate control system deployment. Test all features to ensure proper operation before production use. --- ## 📋 Pre-Deployment Verification - [x] All files uploaded to Pico W - [x] `config.json` exists (auto-created on first run) - [x] `secrets.py` configured with WiFi credentials - [x] Static IP configured: `192.168.86.43` - [x] Serial console connected for monitoring --- ## 🌐 1. Web Interface Testing ### Basic Connectivity - [x] Navigate to http://192.168.86.43 - [x] Page loads within 2 seconds - [x] No timeout errors ### Dashboard Display - [x] Inside temperature displays correctly - [x] Outside temperature displays correctly - [x] AC status shows (ON/OFF) - [x] Heater status shows (ON/OFF) - [x] Schedule status displays - [x] Schedule cards render (if schedules configured) ### Mode Control Buttons - [x] Mode buttons visible on dashboard - [x] Current mode highlighted correctly (Automatic/Temporary Hold/Permanent Hold) - [x] Buttons clickable and responsive ### Schedule Editor - [x] Click "⚙️ Edit Schedules" link - [x] Schedule editor page loads (no auto-refresh warning shown) - [x] All 4 schedule slots displayed - [x] Time inputs accept HH:MM format - [x] Schedule name inputs visible - [x] AC target temp inputs visible - [x] Heater target temp inputs visible - [x] "💾 Save Schedule Configuration" button visible - [x] "⬅️ Back to Dashboard" button visible ### Form Validation - [x] Invalid time format (e.g., `99:99`) rejected - [x] Heater temp > AC temp validation works - [x] Successful save redirects to `/schedule` page - [x] Error messages display properly ### Manual Temperature Override - [x] Change AC target on dashboard - [x] Change heater target on dashboard - [x] System enters Temporary Hold mode - [x] New targets applied immediately - [x] Discord notification sent --- ## 💬 2. Discord Notifications Testing ### Startup Notifications - [x] "Pico W online at http://192.168.86.43 ✅" received on boot ### Periodic Temperature Reports (Every 30 seconds) - [x] Inside temp report: `📊 Inside: XX.X°F | AC: ON/OFF | Heater: ON/OFF` - [x] Outside temp report: `📊 Outside: XX.X°F | AC: ON/OFF | Heater: ON/OFF` - [ ] Reports arrive consistently every 30 seconds ### Temperature Alerts - [x] High temp alert when inside > 80°F: `🔥 Inside temp HIGH: XX.X°F` - [x] Low temp alert when inside < 70°F: `❄️ Inside temp LOW: XX.X°F` - [x] High temp alert when outside > 85°F: `🔥 Outside temp HIGH: XX.X°F` - [x] Low temp alert when outside < 68°F: `❄️ Outside temp LOW: XX.X°F` - [x] Alert cleared notification when temp returns to normal ### AC/Heater Status Changes - [x] AC turned ON notification - [x] AC turned OFF notification - [x] Heater turned ON notification - [x] Heater turned OFF notification ### Schedule Notifications - [x] Schedule applied: `Schedule Applied: [name]` - [x] Schedule configuration updated notification - [x] Mode change notifications (Pause/Resume/Disable) --- ## ❄️ 3. Climate Control - AC Testing ### AC Activation Logic - [x] AC turns ON when temp > 78°F (target 77 + swing 1) - [x] AC relay clicks/activates - [x] Dashboard shows "AC: ON" - [x] Discord notification sent - [x] Minimum run time enforced (30 seconds) ### AC Deactivation Logic - [x] AC turns OFF when temp < 76°F (target 77 - swing 1) - [x] AC relay clicks/deactivates - [x] Dashboard shows "AC: OFF" - [x] Discord notification sent - [x] Minimum off time enforced (5 seconds) ### AC Safety Checks - [x] AC won't short-cycle (respects min run/off times) - [x] AC turns off on system shutdown (Ctrl+C) - [x] AC state persists through web page refreshes --- ## 🔥 4. Climate Control - Heater Testing ### Heater Activation Logic - [x] Heater turns ON when temp < 70°F (target 72 - swing 2) - [x] Heater relay clicks/activates - [x] Dashboard shows "Heater: ON" - [x] Discord notification sent - [x] Minimum run time enforced (30 seconds) ### Heater Deactivation Logic - [x] Heater turns OFF when temp > 74°F (target 72 + swing 2) - [x] Heater relay clicks/deactivates - [x] Dashboard shows "Heater: OFF" - [x] Discord notification sent - [x] Minimum off time enforced (5 seconds) ### Heater Safety Checks - [x] Heater won't short-cycle (respects min run/off times) - [x] Heater turns off on system shutdown (Ctrl+C) - [x] Heater state persists through web page refreshes ### Mutual Exclusion (AC/Heater) - [x] AC and heater never run simultaneously - [x] Proper handoff when transitioning between cooling/heating --- ## ⏰ 5. Schedule System Testing ### Schedule Configuration - [ ] Create 4 schedules with different times - [ ] Set different AC/heater targets per schedule - [ ] Name each schedule uniquely - [ ] Save successfully ### Schedule Activation (Automatic Mode) - [ ] Enable schedules via "▶️ Enable Schedules" button - [ ] Dashboard shows "✅ Automatic Mode" - [ ] Schedule applies at configured time - [ ] AC target changes to schedule value - [ ] Heater target changes to schedule value - [ ] Discord notification: `Schedule Applied: [name]` - [ ] Next schedule card highlighted ### Temporary Hold Mode - [ ] Click "⏸️ Pause" button - [ ] Dashboard shows "⏸️ Temporary Hold" - [ ] Schedules do not auto-apply - [ ] Manual temp changes allowed - [ ] Click "▶️ Resume" to return to Automatic ### Permanent Hold Mode - [ ] Click "🛑 Disable" button - [ ] Dashboard shows "🛑 Permanent Hold" - [ ] Schedules completely disabled - [ ] Manual control only - [ ] Click "▶️ Enable Schedules" to return to Automatic ### Schedule Edge Cases - [ ] Midnight rollover (23:59 → 00:00) works - [ ] Missing schedules don't crash system - [ ] Invalid schedule times rejected during save - [ ] Config persists through reboot --- ## 🔄 6. Mode Change Testing ### Automatic → Temporary Hold - [ ] Click "⏸️ Pause" button - [ ] Redirects to dashboard - [ ] Mode indicator changes - [ ] Schedules stop auto-applying - [ ] Manual changes allowed - [ ] Discord notification sent ### Temporary Hold → Automatic - [ ] Click "▶️ Resume" button - [ ] Redirects to dashboard - [ ] Mode indicator changes to "✅ Automatic Mode" - [ ] Schedules resume auto-applying - [ ] Discord notification sent ### Automatic → Permanent Hold - [ ] Click "🛑 Disable" button - [ ] Redirects to dashboard - [ ] Mode indicator changes to "🛑 Permanent Hold" - [ ] Schedules disabled permanently - [ ] Discord notification sent ### Permanent Hold → Automatic - [ ] Click "▶️ Enable Schedules" button - [ ] Redirects to dashboard - [ ] Mode indicator changes to "✅ Automatic Mode" - [ ] Schedules resume - [ ] Discord notification sent --- ## 🛡️ 7. System Reliability Testing ### Exception Recovery - [ ] Simulate error in main loop (causes exception) - [ ] System prints error to serial - [ ] System pauses 5 seconds - [ ] System resumes operation (doesn't crash) - [ ] AC/Heater continue operating ### Graceful Shutdown - [ ] Press Ctrl+C in serial console - [ ] AC turns off - [ ] Heater turns off - [ ] LED turns off - [ ] Clean exit message displayed - [ ] No errors during shutdown ### Network Recovery - [ ] Disconnect WiFi router - [ ] WiFi monitor detects disconnection - [ ] LED blinks indicating reconnection attempts - [ ] Reconnect WiFi router - [ ] System reconnects automatically - [ ] Discord notifications resume - [ ] Web page becomes accessible again ### NTP Time Sync - [ ] Initial sync on startup (or failure message) - [ ] Retry attempts (up to 5) if initial fails - [ ] Success message: `NTP sync succeeded on retry #X` - [ ] Schedules use correct time after sync - [ ] System works with RTC time if NTP unavailable ### Memory Management - [ ] Monitor free memory in serial output - [ ] Memory usage stable over 1 hour - [ ] No memory leaks detected - [ ] Garbage collection running --- ## 📊 8. Serial Console Monitoring ### Expected Startup Output
sickprodigy added the help wanted label 2025-11-08 17:25:25 -05:00
Author
Owner

Everything here check out, not getting notifications every 30 seconds anymore though. Few things I kind of question why chatgpt suggested to check over that. So may want to go back in code and look what we got going.

Everything here check out, not getting notifications every 30 seconds anymore though. Few things I kind of question why chatgpt suggested to check over that. So may want to go back in code and look what we got going.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sickprodigy/Auto-Garden#9