A simple implementation of SwitchBotAPI (v1.1) client with dio library.
Note: This is a 3rd party library
- ✅ Get device list
- ✅ Get device status
- ✅ Send device control command
- ✅ Get scene list
- ✅ Execute manual scenes
- ❌ Webhook
Details of each API endpoint are described in SwitchBotAPI docs.
Add switchbot_api_dio
package to your pubspec dependencies.
User token and secret are required for api authorization.
These credentials are available in developer options of SwitchBot official app.
Please follow the steps described in SwitchBotAPI docs.
import 'package:switchbot_api_dio/switchbot_api_dio.dart';
final api = SwitchBotApi(
userToken: 'token',
userSecret: 'secret',
);
void main() async {
final collection = await api.getDevices();
// A list of physical devices
print(collection.deviceList);
// A list of virtual infrared remote devices
print(collection.infraredRemoteList);
// Almost all devices support 'turnOn' command
await api.controlVirtualDevice(
device: collection.infraredRemoteList[0],
command: VirtualDeviceCommand.turnOn(),
);
// Send 'press' command to physical device 'Bot'
await api.controlPhysicalDevice(
device: collection.deviceList[0],
command: PhysicalDeviceCommand.bot.press(),
);
}
void main() async {
final scenes = await api.getScenes();
await api.executeScene(sceneId: scenes[0].id);
}
void main() async {
try {
await api.getDevices();
} on SwitchBotException catch (e) {
// Depending on the type of error,
// each subclass of `SwitchBotException` will be thrown
print(e);
}
}