https://github.com/sinricpro/nodejs-sdk
Nodejs library for https://sinric.pro
https://github.com/sinricpro/nodejs-sdk
sinricpro
Last synced: 5 months ago
JSON representation
Nodejs library for https://sinric.pro
- Host: GitHub
- URL: https://github.com/sinricpro/nodejs-sdk
- Owner: sinricpro
- Created: 2019-09-22T10:27:24.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-19T08:45:33.000Z (almost 2 years ago)
- Last Synced: 2025-04-13T15:13:48.527Z (about 1 year ago)
- Topics: sinricpro
- Language: JavaScript
- Homepage:
- Size: 336 KB
- Stars: 11
- Watchers: 6
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# SinricPro SDK for Node.js & TypeScript
[](https://www.npmjs.com/package/sinricpro)
[](LICENSE)
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
```bash
npm install sinricpro
```
Or with yarn:
```bash
yarn add sinricpro
```
---
## 🚀 Quick Start
### 1. Get Your Credentials
1. Sign up at [sinric.pro](https://sinric.pro)
2. Create a new device (e.g., "Switch")
3. Copy your credentials:
- `APP_KEY`
- `APP_SECRET`
- `DEVICE_ID`
### 2. Create a Simple Switch
```typescript
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
```bash
ts-node app.ts
```
### 4. Control with Voice
- "Alexa, turn on Switch"
- "OK Google, turn off Switch"
---
## 🤝 Contributing
Contributions welcome! Please:
1. Fork the repository
2. Create a feature branch
3. Add tests for new features
4. Submit a pull request
---
## 📄 License
This project is licensed under CC-BY-SA-4.0.
---
## 🔗 Links
- **Website:** [sinric.pro](https://sinric.pro)
- **Documentation:** [help.sinric.pro](https://help.sinric.pro)
- **GitHub:** [github.com/sinricpro](https://github.com/sinricpro)
- **Support:** [community.sinric.pro](https://community.sinric.pro)
---
## 💬 Support
- **Issues:** [GitHub Issues](https://github.com/sinricpro/nodejs-sdk/issues)
- **Community:** [SinricPro Community](https://community.sinric.pro)
- **Email:** support@sinric.pro
---
**Made with ❤️ by the SinricPro team**