homies.id
Back to Home

Developer Documentation

Local protocols, open interfaces.

Connect directly over Web BLE or subscribe to local MQTT topics. Zero vendor lock-in, zero cloud dependencies.

1. Web BLE Browser Commissioning

Commission and test microcontrollers directly from your browser without installing third-party mobile apps or cloud authentication tokens.

// GATT Service & Characteristic UUIDs

SERVICE: 19b10000-e8f2-537e-4f6c-d104768a1215

RELAY_CTRL: 19b10002-e8f2-537e-4f6c-d104768a1215

SENSOR_DATA: 19b10001-e8f2-537e-4f6c-d104768a1215

Web Bluetooth API Snippet
const device = await navigator.bluetooth.requestDevice({
  filters: [{ namePrefix: 'Homies-' }],
  optionalServices: ['19b10000-e8f2-537e-4f6c-d104768a1215']
});

const server = await device.gatt.connect();
const service = await server.getPrimaryService(
  '19b10000-e8f2-537e-4f6c-d104768a1215'
);
const relay = await service.getCharacteristic(
  '19b10002-e8f2-537e-4f6c-d104768a1215'
);
await relay.writeValue(new Uint8Array([0x01]));

2. Local MQTT Telemetry Topics

esp32/shower/status

Real-time state of the solid-state pump relay. Payload returns 1 (active) or 0 (idle).

esp32/status

MQTT Last Will payload. Retained broker message for immediate disconnection detection.

esp32/reboot/trigger

Inbound recovery topic. Commands an isolated 1-second pulse on GPIO 6 to cold-reset attached peripheral buses.

Explore Open Repositories

All firmware and KiCad schematics are available on GitHub.

Request Hardware Evaluation Kit