Initialize sinric-n8n-bridge with Docker setup, environment configuration, and core functionality

This commit is contained in:
2026-05-11 04:17:54 +00:00
commit 4f386ee3ed
7 changed files with 93 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
const axios = require("axios");
const { SinricPro, SinricProSwitch } = require("sinricpro");
const APP_KEY = process.env.APP_KEY;
const APP_SECRET = process.env.APP_SECRET;
const DEVICE_ID = process.env.DEVICE_ID;
const N8N_WEBHOOK_URL = process.env.N8N_WEBHOOK_URL;
const N8N_TOKEN = process.env.N8N_TOKEN;
async function callN8n(action) {
try {
const res = await axios.post(
N8N_WEBHOOK_URL,
{ action },
{
headers: {
"X-Token": N8N_TOKEN,
"Content-Type": "application/json"
}
}
);
console.log(`[n8n] ${action} -> ${res.status}`);
} catch (err) {
console.error("[n8n error]", err.message);
}
}
const device = new SinricProSwitch(DEVICE_ID);
device.onPowerState(async (state) => {
const action = state ? "on" : "off";
console.log(`[sinric] ${action.toUpperCase()}`);
await callN8n(action);
return true;
});
const sinric = new SinricPro();
sinric.add(device);
sinric.onConnected(() => {
console.log("[bridge] Connected");
});
sinric.onDisconnected(() => {
console.log("[bridge] Disconnected");
});
sinric.begin({
appKey: APP_KEY,
appSecret: APP_SECRET,
server: "ws.sinric.pro",
port: 443
});