Skip to content

v2.6.4 - CC2 Client ID Fix & Manual IP Flow Improvements

Choose a tag to compare

@danielcherubini danielcherubini released this 09 Feb 19:59

🎉 Major Release: CC2 Printer Support & Manual IP Flow Improvements

This release brings critical fixes for CC2 (Centauri Carbon 2) FDM printers and major improvements to the manual IP configuration flow.


🔧 Critical Bug Fixes

CC2 Client ID Format Fix (#329)

BREAKING FIX: Corrected client_id format to match official Elegoo web interface implementation.

Before (not working):

  • client_id: 1_PC_5234
  • request_id: 1_PC_5234_req

After (working):

  • client_id: 0clib9137a (exactly 10 chars)
  • request_id: UUID + timestamp format

This was causing registration timeouts and connection failures. CC2 printers will now connect successfully in LAN-only mode.

Confirmed working by community testing with Centauri Carbon 2 printers.


✨ New Features

Manual IP Flow Refactor

Complete redesign of the manual IP configuration flow:

  1. Discovery-first approach: Asks for IP address, then auto-detects printer type
  2. Smart routing: Automatically routes to appropriate setup flow based on printer type:
    • CC2 → CC2 authentication flow
    • MQTT → Auto-configured MQTT setup
    • FDM → Proxy configuration options
    • Resin → Camera configuration options
  3. External IP preservation: Maintains external IP setting across all flows
  4. Better user experience: No more guessing which flow to use

CC2 Discovery Improvements

  • Increased timeout: 5s → 10s for broadcast discovery
  • Retry logic: 2 automatic retry attempts for broadcast discovery
  • Port binding: Attempts to bind to port 52700 for better response handling
  • Comprehensive logging: Detailed debug logs for troubleshooting connection issues

📝 Documentation Updates

CC2 LAN-Only Mode

IMPORTANT: CC2 printers require LAN-Only mode to work with this integration.

Setup Instructions:

  1. On your printer: Settings → Network → LAN Only Mode
  2. Enable LAN Only Mode
  3. Save and restart if prompted

Why LAN-Only?
Cloud mode requires OAuth2 authentication and Elegoo's cloud relay infrastructure, which is not currently supported. This integration connects directly to your printer over your local network.

Network Requirements:

  • Printer and Home Assistant must be on the same network/VLAN/subnet
  • For Docker/K8s users: Use host networking or proper network bridging
  • Port 1883 (MQTT) must be accessible

New Documentation

  • Complete CC2 Protocol Documentation
  • Updated README with detailed CC2 setup instructions
  • Network troubleshooting guide for containerized setups

🐛 Other Improvements

  • Debug logging: Comprehensive logging around CC2 MQTT connection, registration, and heartbeat
  • Error handling: Better error messages for CC2 authentication failures
  • Password fallback: Tries user-provided access code, then empty string, then "123456"

⚠️ Important Notes

CC2 Printers

  • LAN-Only Mode Required - Cloud mode is NOT supported
  • Must be on same network as Home Assistant
  • Access code configuration now works correctly
  • Registration timeout issues resolved with correct client_id format

Network Requirements

For users running Home Assistant in containers (Docker, Kubernetes, TrueNAS Scale):

  • Use --network host mode OR
  • Configure proper network bridging/macvlan
  • Ensure printer and HA container can communicate on port 1883

Breaking Changes

None - all changes are backwards compatible for existing printer configurations.


🙏 Credits

Special thanks to:

  • @JoBanJo for extensive testing and patience during debugging
  • Community members in #323 and #329 for reporting issues and testing fixes

📦 Installation

HACS (Recommended):

  1. Go to HACS → Integrations
  2. Find "Elegoo Printers"
  3. Click "Update"
  4. Restart Home Assistant

Manual:

  1. Download the latest release
  2. Copy to custom_components/elegoo_printer/
  3. Restart Home Assistant

🔗 Links


📊 Full Changelog

CC2 Support:

  • Fix client_id format to match web interface (0cli prefix)
  • Fix request_id format (UUID + timestamp)
  • Increase discovery timeout to 10 seconds
  • Add discovery retry logic (2 attempts)
  • Add comprehensive debug logging
  • Implement password fallback strategy

Manual IP Flow:

  • Refactor to discovery-first approach
  • Add automatic printer type detection
  • Route to appropriate setup flow
  • Preserve external_ip across flows
  • Update translations

Documentation:

  • Add CC2 protocol documentation
  • Update README with LAN-only requirements
  • Add network troubleshooting guide
  • Document client_id format requirements

Files Changed:

  • custom_components/elegoo_printer/cc2/client.py
  • custom_components/elegoo_printer/cc2/discovery.py
  • custom_components/elegoo_printer/cc2/const.py
  • custom_components/elegoo_printer/config_flow.py
  • custom_components/elegoo_printer/translations/en.json
  • README.md
  • docs/CC2_PROTOCOL.md