Open guyluz11 opened 1 year ago
Example code for chect chatGPT, it looks like nanoleaf is doing direct calls to the device using rust
import 'dart:convert';
import 'package:http/http.dart' as http;
const String baseUrl = 'http://192.168.1.100';
const String authToken = 'YourAuthToken';
class NanoleafAPI {
// Function to retrieve the current state of the lights
Future<Map<String, dynamic>> getState() async {
var url = '$baseUrl/state';
var headers = {
'Authorization': 'Bearer $authToken',
'Content-Type': 'application/json',
};
var response = await http.get(url, headers: headers);
if (response.statusCode != 200) {
throw Exception('Failed to retrieve state');
}
return jsonDecode(response.body);
}
// Function to turn the lights on
Future<void> turnOn() async {
var url = '$baseUrl/state';
var headers = {
'Authorization': 'Bearer $authToken',
'Content-Type': 'application/json',
};
var body = jsonEncode({'on': {'value': true}});
var response = await http.put(url, headers: headers, body: body);
if (response.statusCode != 200) {
throw Exception('Failed to turn on lights');
}
}
// Function to turn the lights off
Future<void> turnOff() async {
var url = '$baseUrl/state';
var headers = {
'Authorization': 'Bearer $authToken',
'Content-Type': 'application/json',
};
var body = jsonEncode({'on': {'value': false}});
var response = await http.put(url, headers: headers, body: body);
if (response.statusCode != 200) {
throw Exception('Failed to turn off lights');
}
}
}
Let's add support for Nanoleaf Lights
Currntly 1.3% of home assistant users are using it.