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
npm install sinricproOr with yarn:
yarn add sinricpro- Sign up at sinric.pro
- Create a new device (e.g., "Switch")
- Copy your credentials:
APP_KEYAPP_SECRETDEVICE_ID
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);ts-node app.ts- "Alexa, turn on Switch"
- "OK Google, turn off Switch"
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new features
- Submit a pull request
This project is licensed under CC-BY-SA-4.0.
- Website: sinric.pro
- Documentation: help.sinric.pro
- GitHub: github.com/sinricpro
- Support: community.sinric.pro
- Issues: GitHub Issues
- Community: SinricPro Community
- Email: support@sinric.pro
Made with ❤️ by the SinricPro team