powersync-plugins/wheretheissat/integrationpluginwheretheis...

52 lines
1.8 KiB
JavaScript

import { getSatellites } from "./wheretheissat.mjs";
import { getSatelliteData } from "./wheretheissat.mjs";
var pluginTimer;
export function init() {
console.warn("JS init called!");
}
export function discoverThings(info) {
getSatellites( (response) => {
for (var i = 0; i < response.length; i++) {
var params = [];
var param = {};
param.paramTypeId = "1d10b8e2-aea4-495c-8b1f-f44ef088f667";
param.value = response[i].id
params.push(param)
info.addThingDescriptor("4bdedd0b-e268-4671-9b3e-948c853b7b9b", response[i].name, "Satellite", params);
};
info.finish(Thing.ThingErrorNoError);
});
}
export function setupThing(info) {
var device = info.thing;
var satelliteId = info.thing.paramValue("1d10b8e2-aea4-495c-8b1f-f44ef088f667");
if (satelliteId === undefined) {
console.warn("Could not find satelliteId in params")
info.finish(Thing.ThingErrorMissingParameter);
return;
}
getSatelliteData(satelliteId, (response) => {
device.setStateValue("d702143f-9454-412b-88df-83b5655a5000", response.latitude)
device.setStateValue("42d9b2a1-0e51-4a92-9804-8f6f68ed6fd1", response.longitude)
info.finish(Thing.ThingErrorNoError);
pluginTimer = hardwareManager.pluginTimerManager.registerTimer(5);
pluginTimer.timeout.connect(function() {
getSatelliteData(satelliteId, (response) => {
device.setStateValue("d702143f-9454-412b-88df-83b5655a5000", response.latitude)
device.setStateValue("42d9b2a1-0e51-4a92-9804-8f6f68ed6fd1", response.longitude)
})
})
});
}
export function thingRemoved(thing) {
hardwareManager.pluginTimerManager.unregisterTimer(pluginTimer);
}