How aleszupanc/palazzetti-stove-hub works
Palazzetti Stove Hub controls a Connection Box locally, with a Raspberry Pi serving the home dashboard and running weekly schedules. For remote use, the browser and Pi establish end-to-end encrypted sessions through a VPS relay; the VPS also provides accounts and push delivery. The graph preserves the documented app, pairing, and notification capabilities. Some app and cloud internals are unsampled, so their connections are shown only where the README or indexed source references support them.
Main entry points: stove_master.py Hub runtime · app.js Stove app · cloud.py Remote link · api.py Hub RPC
Components 30
Home Hub
- Hub runtime
stove_master.py - Hub configuration
stovemaster/config.py - Hub state store
stovemaster/db.py - Local WebSocket
stovemaster/lan.py - Hub RPC
stovemaster/api.py - URL controls
stovemaster/urlapi.py - Local discovery
stovemaster/mdns.py - Weekly scheduler
stovemaster/scheduler.py - Remote link
stovemaster/cloud.py - Encryption
stovemaster/e2e.py - Push encryption
stovemaster/webpush.py
Stove Control
- Stove service
stovemaster/stove.py - Box protocol
palazzetti.py
Remote Service
- Website service
www/stovecloud/web.py - Accounts
www/stovecloud/accounts.py - Encrypted relay
www/stovecloud/hub.py - Cloud WebSockets
www/stovecloud/ws.py - Cloud store
www/stovecloud/db.py - Push delivery
www/stovecloud/push.py
Browser App
- Stove app
www/app/app.js - Remote app access
www/app/cloud.js - Local app access
www/app/local.js - Schedule screen
www/app/schedule.js - Push client
www/app/push.js
Other components
- Home user
- Remote user
- Connection Box
- Pellet stove
- Push service
- Email service
Connections 36
- Home user → Stove app: uses locally
- Remote user → Stove app: uses remotely
- Stove app → Local app access: opens local
www/app/app.js - Stove app → Remote app access: opens remote
www/app/app.js - Local app access → Local WebSocket: connects by WebSocket
- Local WebSocket → Hub RPC: dispatches RPC
stovemaster/lan.py - Remote link → Hub RPC: dispatches RPC
stovemaster/cloud.py - Hub RPC → Weekly scheduler: handles schedule
stovemaster/api.py - Hub RPC → Stove service: handles controls
stovemaster/api.py - Weekly scheduler → Stove service: commands stove
stovemaster/scheduler.py - Stove service → Box protocol: uses box client
stovemaster/stove.py - Box protocol → Connection Box: sends HTTP
- Connection Box → Pellet stove: controls serial
- Hub runtime → Hub configuration: loads config
stove_master.py - Hub runtime → Hub state store: initializes store
stove_master.py - Hub runtime → Weekly scheduler: starts scheduler
stove_master.py - Hub runtime → Hub RPC: starts hub API
stove_master.py - Hub runtime → Local discovery: starts responder
stove_master.py - Hub runtime → Remote link: starts remote link
stove_master.py - Local discovery → Home user: advertises local name
- Remote link → Encryption: seals sessions
stovemaster/cloud.py - Remote link → Push encryption: encrypts notices
stovemaster/cloud.py - Remote app access → Website service: loads app and API
- Remote app access → Encryption: encrypts messages
- Website service → Accounts: routes account requests
www/stovecloud/web.py - Website service → Cloud WebSockets: serves WebSockets
www/stovecloud/web.py - Website service → Encrypted relay: routes hub sessions
www/stovecloud/web.py - Encrypted relay → Cloud WebSockets: handles socket sessions
www/stovecloud/hub.py - Encrypted relay → Cloud store: updates device state
www/stovecloud/hub.py - Remote link → Encrypted relay: forwards ciphertext
- Remote app access → Encrypted relay: forwards ciphertext
- Schedule screen → Stove app: renders schedule
- Push client → Stove app: registers notifications
- Push encryption → Push delivery: sends ciphertext
- Push delivery → Push service: delivers notification
- Accounts → Email service: requests email