API Documentation
Documentación API
Control your devices programmatically using standard HTTP requests. All responses are in JSON format.
BioLighting API
GET
/api/light
Get current light status.
Response
Respuesta
{
"r": 255,
"g": 100,
"b": 0,
"intensity": 80
}
Code Examples
Ejemplos de Código
import requests
url = "http://<ip_dispositivo>/api/light"
response = requests.get(url)
print(response.json())
const url = "http://<ip_dispositivo>/api/light";
fetch(url)
.then(res => res.json())
.then(data => console.log(data));
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class BioControl {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://<ip_dispositivo>/api/light"))
.GET()
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
using System.Net.Http;
var client = new HttpClient();
var response = await client.GetAsync("http://<ip_dispositivo>/api/light");
Console.WriteLine(await response.Content.ReadAsStringAsync());
import axios from 'axios';
axios.get('http://<ip_dispositivo>/api/light')
.then(res => console.log(res.data));
package main
import (
"net/http"
"fmt"
"io/ioutil"
)
func main() {
resp, err := http.Get("http://<ip_dispositivo>/api/light")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
#include
#include
int main() {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/api/light");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
import Foundation
let url = URL(string: "http://<ip_dispositivo>/api/light")!
let task = URLSession.shared.dataTask(with: url) { data, _, _ in
if let data = data {
print(String(data: data, encoding: .utf8)!)
}
}
task.resume()
#include
#include
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/api/light");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
POST
/api/light
Set light color and intensity.
Payload
Cuerpo de la Petición
| Parameter | Type | Description |
|---|---|---|
| r | int (0-255) | Red component |
| g | int (0-255) | Green component |
| b | int (0-255) | Blue component |
| intensity | int (0-100) | Brightness percentage |
Code Examples
Ejemplos de Código
import requests
url = "http://<ip_dispositivo>/api/light"
payload = {"r": 255, "g": 100, "b": 50, "intensity": 100}
response = requests.post(url, json=payload)
print(response.json())
const url = "http://<ip_dispositivo>/api/light";
const payload = { r: 255, g: 100, b: 50, intensity: 100 };
fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
})
.then(res => res.json())
.then(data => console.log(data));
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class BioControl {
public static void main(String[] args) throws Exception {
String json = "{\"r\":255,\"g\":100,\"b\":50,\"intensity\":100}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://<ip_dispositivo>/api/light"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
using System.Net.Http;
using System.Text;
using System.Text.Json;
var client = new HttpClient();
var payload = new { r = 255, g = 100, b = 50, intensity = 100 };
var json = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://<ip_dispositivo>/api/light", content);
Console.WriteLine(await response.Content.ReadAsStringAsync());
import axios from 'axios';
interface LightConfig {
r: number;
g: number;
b: number;
intensity: number;
}
const config: LightConfig = { r: 255, g: 100, b: 50, intensity: 100 };
axios.post('http://<ip_dispositivo>/api/light', config)
.then(res => console.log(res.data));
package main
import (
"bytes"
"net/http"
"fmt"
)
func main() {
json := []byte(`{"r":255,"g":100,"b":50,"intensity":100}`)
resp, err := http.Post("http://<ip_dispositivo>/api/light", "application/json", bytes.NewBuffer(json))
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Status:", resp.Status)
}
#include
#include
int main() {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/api/light");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"r\":255,\"g\":100,\"b\":50,\"intensity\":100}");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
255, 'g' => 100, 'b' => 50, 'intensity' => 100);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
import Foundation
let url = URL(string: "http://<ip_dispositivo>/api/light")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let body: [String: Any] = ["r": 255, "g": 100, "b": 50, "intensity": 100]
request.httpBody = try? JSONSerialization.data(withJSONObject: body)
let task = URLSession.shared.dataTask(with: request) { data, _, _ in
if let data = data {
print(String(data: data, encoding: .utf8)!)
}
}
task.resume()
#include
#include
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/api/light");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"r\":255,\"g\":100,\"b\":50,\"intensity\":100}");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
BioShaker API
GET
/rpm?value={rpm}
Set the target RPM speed.
Query Parameters
Parámetros de Consulta
| Parameter | Type | Description |
|---|---|---|
| value | float (0-510) | Target RPM value |
Code Examples
Ejemplos de Código
import requests
url = "http://<ip_dispositivo>/rpm?value=100"
response = requests.get(url)
print(response.status_code)
const url = "http://<ip_dispositivo>/rpm?value=100";
fetch(url)
.then(res => console.log(res.status));
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class BioControl {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://<ip_dispositivo>/rpm?value=100"))
.GET()
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
}
}
using System.Net.Http;
var client = new HttpClient();
var response = await client.GetAsync("http://<ip_dispositivo>/rpm?value=100");
Console.WriteLine(response.StatusCode);
import axios from 'axios';
axios.get('http://<ip_dispositivo>/rpm?value=100')
.then(res => console.log(res.status));
package main
import (
"net/http"
"fmt"
)
func main() {
resp, err := http.Get("http://<ip_dispositivo>/rpm?value=100")
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Status:", resp.Status)
}
#include
int main() {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/rpm?value=100");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
import Foundation
let url = URL(string: "http://<ip_dispositivo>/rpm?value=100")!
let task = URLSession.shared.dataTask(with: url) { _, response, _ in
if let httpResponse = response as? HTTPURLResponse {
print(httpResponse.statusCode)
}
}
task.resume()
#include
#include
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/rpm?value=100");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
GET
/status
Get current shaker status (RPM, WiFi, Mode).
Response
Respuesta
{
"currentRpm": 120,
"targetRpm": 120,
"wifi": true,
"ip": "192.168.1.50",
"mode": "Running"
}
Code Examples
Ejemplos de Código
import requests
url = "http://<ip_dispositivo>/status"
response = requests.get(url)
print(response.json())
const url = "http://<ip_dispositivo>/status";
fetch(url)
.then(res => res.json())
.then(data => console.log(data));
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class BioControl {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://<ip_dispositivo>/status"))
.GET()
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
using System.Net.Http;
var client = new HttpClient();
var response = await client.GetAsync("http://<ip_dispositivo>/status");
Console.WriteLine(await response.Content.ReadAsStringAsync());
import axios from 'axios';
axios.get('http://<ip_dispositivo>/status')
.then(res => console.log(res.data));
package main
import (
"net/http"
"fmt"
"io/ioutil"
)
func main() {
resp, err := http.Get("http://<ip_dispositivo>/status")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
#include
#include
int main() {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/status");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
import Foundation
let url = URL(string: "http://<ip_dispositivo>/status")!
let task = URLSession.shared.dataTask(with: url) { data, _, _ in
if let data = data {
print(String(data: data, encoding: .utf8)!)
}
}
task.resume()
#include
#include
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://<ip_dispositivo>/status");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}