airthings-consumer-api
Version:
An unofficial Node.js client library for Airthings Air Quality Monitors via the Airthings Consumer API.
39 lines • 1.56 kB
JavaScript
import { AirthingsClient, RemoteControlMode, SensorUnits } from './module.js';
/**
* Entry point that initializes an Airthings client, validates required
* environment variables, and fetches and logs device and sensor data.
*
* Requires the `AIRTHINGS_CLIENT_ID` and `AIRTHINGS_CLIENT_SECRET`
* environment variables to be set for API authentication.
*/
async function main() {
const clientId = process.env.AIRTHINGS_CLIENT_ID;
const clientSecret = process.env.AIRTHINGS_CLIENT_SECRET;
if (!clientId || !clientSecret) {
console.error('Please set the AIRTHINGS_CLIENT_ID and AIRTHINGS_CLIENT_SECRET environment variables.');
process.exit(1);
}
const client = new AirthingsClient({
clientId: clientId,
clientSecret: clientSecret
});
const devicesResponse = await client.getDevices();
devicesResponse.devices.forEach((device) => {
console.log(device);
});
const sensorsResponse = await client.getSensors(SensorUnits.Metric);
sensorsResponse.results.forEach((sensor) => {
console.log(sensor);
});
console.log(client.getSensorsRateLimitMetrics());
const renewDevice = devicesResponse.devices.find(d => d.type === 'AP_1');
if (renewDevice) {
const state = await client.getRemoteControl(renewDevice.serialNumber);
console.log(state);
await client.setRemoteControl(renewDevice.serialNumber, {
mode: RemoteControlMode.Auto
});
}
}
main().catch(err => console.error(err));
//# sourceMappingURL=example.js.map