52 lines
1.8 KiB
JavaScript
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);
|
|
}
|
|
|