API Documentation

Documentación API

Control your devices programmatically using standard HTTP requests. All responses are in JSON format.

Controle sus dispositivos programáticamente usando solicitudes HTTP estándar. Todas las respuestas están en formato JSON.

BioLighting API

GET /api/light

Get current light status.

Obtener estado actual de la luz.

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.

Establecer color e intensidad de la luz.

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.

Establecer la velocidad RPM objetivo.

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).

Obtener estado actual del agitador (RPM, WiFi, Modo).

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;
}