sinricpro
v5.1.0
Published
Official SinricPro SDK for Node.js and TypeScript - Control IoT devices with Alexa and Google Home
Maintainers
Readme
SinricPro SDK for Node.js & TypeScript
Official SinricPro SDK for Node.js and TypeScript. Control your IoT devices with Alexa and Google Home.
🎯 Features:
- ✅ Full TypeScript support with strong typing
- ✅ Modern async/await API
- ✅ WebSocket with automatic reconnection
- ✅ HMAC-SHA256 authentication
- ✅ Event rate limiting
- ✅ Multiple device types (Switch, Light, Thermostat, etc.)
- ✅ Comprehensive error handling
- ✅ Unit tested
📦 Installation
npm install sinricproOr with yarn:
yarn add sinricpro🚀 Quick Start
1. Get Your Credentials
- Sign up at sinric.pro
- Create a new device (e.g., "Switch")
- Copy your credentials:
APP_KEYAPP_SECRETDEVICE_ID
2. Create a Simple Switch
import SinricPro from 'sinricpro';
import { SinricProSwitch } from 'sinricpro/devices';
const config = {
appKey: 'YOUR-APP-KEY',
appSecret: 'YOUR-APP-SECRET',
};
async function main() {
// Create a switch device
const mySwitch = SinricProSwitch('YOUR-DEVICE-ID');
// Handle power state changes from Alexa/Google Home
mySwitch.onPowerState(async (deviceId, state) => {
console.log(`Device turned ${state ? 'ON' : 'OFF'}`);
// Control your hardware here
return true; // Return true if successful
});
// Add device to SinricPro
SinricPro.add(mySwitch);
// Connection events
SinricPro.onConnected(() => console.log('Connected!'));
SinricPro.onDisconnected(() => console.log('Disconnected!'));
// Initialize SDK
await SinricPro.begin(config);
// Send events when state changes locally
setTimeout(async () => {
await mySwitch.sendPowerStateEvent(true);
}, 5000);
}
main().catch(console.error);3. Run Your App
ts-node app.ts4. Control with Voice
- "Alexa, turn on Switch"
- "OK Google, turn off Switch"
🤝 Contributing
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new features
- Submit a pull request
📄 License
This project is licensed under CC-BY-SA-4.0.
🔗 Links
- Website: sinric.pro
- Documentation: help.sinric.pro
- GitHub: github.com/sinricpro
- Support: community.sinric.pro
💬 Support
- Issues: GitHub Issues
- Community: SinricPro Community
- Email: [email protected]
Made with ❤️ by the SinricPro team
