mirror of
https://github.com/koush/scrypted.git
synced 2026-02-07 16:02:13 +00:00
26 lines
1.1 KiB
TypeScript
26 lines
1.1 KiB
TypeScript
import { ScriptDevice } from "@scrypted/common/src/eval/monaco/script-device"; // SCRYPTED_FILTER_EXAMPLE_LINE
|
|
import sdk, { HttpRequest, HttpRequestHandler, HttpResponse, ScryptedDeviceBase, ScryptedInterface } from "@scrypted/sdk"; // SCRYPTED_FILTER_EXAMPLE_LINE
|
|
declare const device: ScriptDevice & ScryptedDeviceBase; // SCRYPTED_FILTER_EXAMPLE_LINE
|
|
const { endpointManager } = sdk; // SCRYPTED_FILTER_EXAMPLE_LINE
|
|
|
|
class WebhookExample implements HttpRequestHandler {
|
|
timeout: any;
|
|
|
|
async onRequest(request: HttpRequest, response: HttpResponse) {
|
|
response.send('OK');
|
|
// scrpyted uses metric for all units, so this must be celsius
|
|
device.temperature = parseFloat(request.body!);
|
|
}
|
|
}
|
|
|
|
device.handleTypes(ScryptedInterface.Thermometer);
|
|
|
|
endpointManager.getLocalEndpoint(device.nativeId, { insecure: true, public: true })
|
|
.then(endpoint => {
|
|
console.log('motion webhook:', endpoint);
|
|
console.log('example:');
|
|
console.log(' curl -H "Content-Type: text/plain" --data 25 ', endpoint);
|
|
});
|
|
|
|
export default WebhookExample;
|