Modern, type-safe Homey app for Renault and Dacia electric vehicles built with TypeScript.
- β Full TypeScript support with strict type checking
- β Homey SDK 4.x - Latest platform support
- β Node.js 25+ - Modern JavaScript runtime
- β TypeScript 7-ready - Future-proof module configuration
- β Comprehensive test coverage with Jest
- β Modern API client based on renault-api Python library
- β Automatic token management and caching
- β Model-specific capabilities detection
- β Fallback mechanisms for API changes
- β ESLint + Prettier for code quality
- Renault Zoe Phase 1 (X101VE)
- Renault Zoe Phase 2 (X102VE)
- Renault Megane E-Tech (XCB1VE)
- Dacia Spring (XBG1VE)
- Renault Kangoo EV (XJA1VP)
- Node.js >= 25.0.0 (we recommend using nvm)
- Homey CLI:
npm install -g homey
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run tests
npm test
# Deploy to Homey
homey app runsrc/
βββ api/ # API client implementation
β βββ renault-api-client.ts
β βββ __tests__/
βββ config/ # Configuration files
β βββ renault-config.ts
βββ drivers/ # Homey device drivers
β βββ renault-zoe/
β βββ dacia-spring/
βββ types/ # TypeScript type definitions
βββ renault-api.types.ts
npm run build # Compile TypeScript
npm run watch # Auto-rebuild on changes
npm test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Generate coverage report
npm run lint # Check code quality
npm run lint:fix # Fix linting issues
npm run format # Format code with Prettier
npm run format:check # Check code formatting
npm run type-check # Type check without building
npm run clean # Clean build artifacts
npm run validate # Validate Homey app
npm run ci # Run all checks (CI pipeline)Tests are written using Jest with 50%+ coverage threshold:
# Run all tests
npm test
# Run specific test file
npm test -- renault-api-client.test.ts
# Coverage report
npm run test:coverageA complete Postman collection is available in the postman/ directory for testing all Renault API endpoints:
- π Authentication flow (Gigya login, JWT tokens)
- π Vehicle data endpoints (battery, location, HVAC, etc.)
- ποΈ Control commands (charge mode, climate control, etc.)
- π Pre-configured environments for 7+ countries
See postman/README.md for setup instructions.
- TypeScript 5.9 - Type safety with
nodenextmodule resolution - ESLint 9 - Code quality and consistency
- Prettier 3 - Automatic code formatting
- Jest 29 - Comprehensive testing framework
- EditorConfig - Consistent coding styles across editors
Vehicle capabilities are automatically detected based on model code. The app supports multiple locales including:
- Sweden (sv-SE)
- Norway (nb-NO, no-NO)
- Denmark (da-DK)
- Finland (fi-FI)
- UK (en-GB)
- Germany (de-DE)
- France (fr-FR)
- Netherlands (nl-NL)
- Italy (it-IT)
- Spain (es-ES)
- Install the app on your Homey
- Add a new device and select Renault/Dacia
- Login with your My Renault credentials
- Select your vehicle from the list (identified by VIN)
- The app will sync battery status, location, charging state, etc.
Note: This app uses the unofficial Renault API which may change without notice. Updates will be made as quickly as possible if changes occur.
Having problems? Check these common issues:
Solution: Restart the app in Homey settings or run homey app restart
Most common cause: Wrong locale/region selected!
Each country has different API keys. Using Swedish API key with Norwegian account will fail immediately.
Solution:
- Default is now Norway (
nb-NO). If you're in Sweden, Denmark, or Finland, you may need to change this in the code - Verify you can log in to my.renault.no (or your country's site)
- Check that your account region matches the selected locale
- See TROUBLESHOOTING.md for detailed debugging steps
Important: The authentication must follow exact API order:
- Login β Get Account Info β Get JWT β Get Person Details
Wrong order will cause immediate failure. The app now follows correct Postman flow (v3.0+).
Some features depend on your vehicle model. Not all Renault/Dacia models support all features.
π Full troubleshooting guide: TROUBLESHOOTING.md
π§ͺ Test API manually: See postman/QUICKSTART.md
- Fork the repository
- Create a feature branch
- Write tests for new features
- Ensure all tests pass
- Submit a pull request
For detailed file structure and development guidelines, see FILE_GUIDE.md.
LGPL-3.0-only
- Jonathan Cohen - Original app (jonathan@cohen.se)
- Oreste Dimaggio - Contributions (oreste@dimaggio.it)
- Reidar Gran - v3.0 TypeScript rewrite
Special thanks to:
- hacf-fr/renault-api - Python library inspiration
- jamesremuscat/pyze - Original API research
- Homey community for support and testing
- Renault API Documentation
- Homey Apps SDK3
- FILE_GUIDE.md - Detailed file structure guide