In a modern developer’s smart home, the workspace extends far beyond local source code. It spans the physical environment (climate, blinds, air quality), network routing infrastructure (routers, switches, APs), smart appliances (refrigerators, HVAC, printers, smart kitchen devices), personal vehicles, self-hosted web analytics, and off-grid radio meshes.
By linking these domains together and exposing them to Antigravity (agy), your developer AI assistant transforms from a simple compiler co-pilot into a unified, context-aware command center.
This blog post outlines all the integrations defined in Home Assistant, the network interfaces bridged by CLI scripts, and how agy is configured via workspace customizations to manage the entire ecosystem.
1. Summary of Active Home Assistant & IoT Integrations
Our smart environment consists of several key telemetry and control platforms integrated directly into Home Assistant:
A. Workspace Environment & Somfy Overkiz Blinds
- Somfy Blinds: Seven covers/blinds (including
cover.living,cover.bucatarie, bedroom, and office windows) powered by Somfy Overkiz (TaHoma) to manage solar glare. - Smart Gateway: The TaHoma Switch setup code (
sensor.tahoma_switch_sc_homekit_setup_code) connects Somfy’s ecosystem to Apple HomeKit and Home Assistant. - Radiator Valves & Thermostats: Climate controls (
climate.office,climate.livingroom) to regulate heating zones in the workspace.
B. Microclimate & Netatmo Security (Zorilor)
- Weather Station & Indoor Sensors: Track indoor temperature, carbon dioxide (CO2) concentrations, relative humidity, and battery health in the Bedroom, Living Room, Kitchen, and Office.
- Outdoor & Wind Gauges: Monitor outdoor temperature, relative humidity, and live wind speed (
sensor.wind_gauge_zorilor_wind_speed). - Security & Cameras: Video streaming status and security presence from Netatmo cameras (Smart Indoor Cameras:
camera.smart_indoor_zorilorandcamera.smart_indoor_camera; Smart Outdoor Camera:camera.smart_outdoor_camerawith integrated light). - Noise Monitoring: Exposes room noise levels (such as
sensor.office_noiseandsensor.livingroom_noise) to evaluate workplace acoustics.
C. Smart Refrigeration (Liebherr Zorilor)
- Fridge & Freezer Monitoring: Live temperatures for both top (fridge) and bottom (freezer) cooling zones.
- Temperature Setpoints: Read and adjust cooling setpoint values (
number.zorilor_top_zone_setpointandnumber.zorilor_bottom_zone_setpoint). - Appliance Modes: Smart toggles for Liebherr modes, including NightMode, PartyMode, SuperCool, and SuperFrost to optimize temperature regulation.
D. Smart Cooking & Planning (Cookidoo)
- Meal Planning: Exposes active Thermomix meal plans via
calendar.cookidoo_meal_plan. - Shopping Lists: Tracks ingredients and supplies via
todo.cookidoo_shopping_listandtodo.cookidoo_additional_purchases. - Subscription Status: Monitors account details (
sensor.cookidoo_subscriptionand subscription expiration dates).
E. Climate Control (Daikin Onecta)
- Heat Pumps & ACs: Native integration managing workspace heating, cooling, and fan states (such as
climate.ac_unit_birou_room_temperature), keeping the office at optimal working temperatures while recording daily/weekly/monthly electrical consumption.
F. Connected Car (Toyota Connected Services)
- Vehicle Telemetry: Tracks car lock states, cabin temperature, fuel level, battery voltage, and odometer telemetry. It supports remote start/heating controls to pre-condition the vehicle before trips.
G. Health Tracker Dashboard (Withings)
- Activity & Fitness Metrics: Syncs personal health targets (such as
sensor.withings_step_goalandsensor.withings_weight_goal) directly into Home Assistant to monitor wellness trends.
H. Smart Printing (Brother Integration)
- Office Equipment Status: Exposes printing status (
sensor.brother_mfc_l2710dw_series) and black ink/toner levels (sensor.brother_mfc_l2710dw_series_bk) to ensure local development resources are always online.
I. WordPress & Jetpack Analytics
- Site Telemetry: Pulls daily pageviews, unique visitors, and comment counts using REST sensors. A command-line binary sensor checks target domain uptime (
binary_sensor.blog_uptime_status).
J. Meshtastic (LoRa) Gateway
- Off-Grid Telemetry & Alerts: A custom component links our USB gateway (
vg-2456) on/dev/ttyACM0to Home Assistant. It exposes over 20 device sensors (uptime, voltage, channel utilization, airtime, environment temperature, lux) and exposes a broad array ofnotify.mesh_node_meshtastic_*services to dispatch off-grid alerts. - Assist Bridge: An automation (
meshtastic_assist_bridge) maps text packets from mobile nodevg-5ee8over channelvoinato the Home Assistant Assist parser, allowing complete offline home control.
2. Network Infrastructure Diagnostics
Beyond Home Assistant, network health is monitored via cloud-based APIs to track system uptime and traffic:
- UniFi Site Manager: Centralized cloud console polling (
api.ui.com) tracking active WAN links, Wi-Fi client counts, and device states. - UISP EdgeMAX Monitor: Edge router and switch telemetry (
voina.uisp.com) detailing CPU, RAM, and board temperature.
3. Exposing the API: The Script Bridge Library
Instead of requiring agy to interact with heavy, stateful client libraries, we expose our IoT and web services using simple, lightweight command-line interfaces. These scripts reside in the /home/gvoina/scripts/ directory:
| Script Name | Target System | Description |
|---|---|---|
| get_ha_sensor.sh | Home Assistant | Queries the local API to fetch the state/name of any entity (blinds, climate, Daikin, Toyota, Netatmo, Liebherr, Withings, Brother, Cookidoo, or Meshtastic sensors). |
| control_ha_cover.sh | Home Assistant | Controls Somfy blinds via the API (open, close, stop, or position values). |
| wp_stats.py | WordPress.com API | Pulls visitor analytics and verifies website HTTP status. |
| get_unifi_status.sh | UniFi Cloud API | Fetches WAN status, ISP info, local IPs, and wireless/wired client counts for active consoles. |
| get_uisp_status.sh | UISP API | Returns EdgeRouter/EdgeSwitch system stats (CPU, RAM, temp, uptime). |
| meshtastic_bot.py | Meshtastic USB Link | Persistent host daemon that pipes incoming LoRa messages to the agy CLI compiler and transmits replies back. |
4. Configuring Antigravity (agy)
To give agy the intelligence to read these scripts and know when to use them, we utilize the Workspace Customization framework.
When agy starts up, it reads the rulebook defined in .agents/AGENTS.md at the root of the workspace. By describing the scripts and target behaviors inside this file, we give the agent explicit context without modifying its underlying code.
Here is how the configuration links everything together:
Workspace Customization Rules (.agents/AGENTS.md)
# Custom rules for Antigravity (agy) in this workspace
You have access to a local CLI script library in `/home/gvoina/scripts/` to query states and control smart home devices, monitor site metrics, check network status, and communicate off-grid.
### 1. Home Assistant State & Control
You can retrieve the live state of any Home Assistant entity or control covers/blinds using the following scripts:
* **Query sensor/device state**: `bash /home/gvoina/scripts/get_ha_sensor.sh <entity_id>`
* *Example*: `bash /home/gvoina/scripts/get_ha_sensor.sh sensor.blog_daily_pageviews`
* *Tip*: Use this to check state for any entity, including climate/valves, smart switches, and status updates for:
* **Netatmo Climate, Weather & Security** (e.g., `sensor.bedroom_zorilor_temperature`, `sensor.office_zorilor_office_zorilor_co2_concentration`, `sensor.outdoor_zorilor_temperature`, `camera.smart_indoor_zorilor`, `camera.smart_outdoor_camera`, `sensor.office_noise`).
* **Liebherr Smart Fridge & Freezer** (e.g., `sensor.zorilor_top_zone`, `sensor.zorilor_bottom_zone`, `switch.zorilor_nightmode`, `switch.zorilor_top_zone_supercool`, `switch.zorilor_bottom_zone_superfrost`).
* **Withings Health Metrics** (e.g., `sensor.withings_step_goal`, `sensor.withings_weight_goal`).
* **Daikin Onecta HVAC** (e.g., `climate.ac_unit_birou_room_temperature`, `update.daikin_onecta_update`).
* **Toyota Connected Services** (e.g., `update.toyota_eu_community_integration_update`).
* **Brother Printer** (e.g., `sensor.brother_mfc_l2710dw_series`, `sensor.brother_mfc_l2710dw_series_bk`).
* **Cookidoo Integration** (e.g., `todo.cookidoo_shopping_list`, `sensor.cookidoo_subscription`, `calendar.cookidoo_meal_plan`).
* **Somfy Overkiz Blinds & Gateways** (e.g., `sensor.tahoma_switch_sc_homekit_setup_code`, `cover.living`, `cover.bucatarie`).
* **Control covers/blinds**: `bash /home/gvoina/scripts/control_ha_cover.sh <entity_id> <open|close|stop|position>`
* *Example*: `bash /home/gvoina/scripts/control_ha_cover.sh cover.living_fix_1 close`
### 2. Network Infrastructure Diagnostics (UniFi & UISP)
Retrieve centralized network infrastructure health metrics using:
* **UniFi Site Manager status**: `bash /home/gvoina/scripts/get_unifi_status.sh`
* **UISP EdgeMAX devices status**: `bash /home/gvoina/scripts/get_uisp_status.sh`
### 3. WordPress & Jetpack Analytics
You can fetch daily blog stats (views, visitors, comments) and check HTTP uptime using:
* **Get blog analytics & uptime**: `python3 /home/gvoina/scripts/wp_stats.py`
### 4. Meshtastic (LoRa) Gateway
The Meshtastic gateway (`vg-2456`) is linked to `/dev/ttyACM0` and communicates with the mobile node `vg-5ee8` on the private channel `voina` (channel index 0).
* A background daemon `/home/gvoina/scripts/meshtastic_bot.py` is running on the host system to listen for messages and execute `agy` CLI prompts.
5. The Agentic Flow in Action
The architecture uses a dual-interface approach:
- Interactive Shell Context: In your development terminal, you can chat with
agyand ask it to execute actions (e.g. “Close the blinds, it’s too sunny”). - Off-Grid Daemon Context: While you are away, the
meshtastic_bot.pydaemon acts as a proxy, passing off-grid messages to theagyCLI and sending back concise responses.

6. Security & Safety
Because agy has terminal execution privileges on your workspace, safety is paramount:
- Terminal Confirmation: When
agyinitiates a smart home control action in the workspace terminal, the execution engine halts and requests developer confirmation before running the script. - Input Sanitization: The LoRa daemon sanitizes incoming and outgoing messages, removing markdown syntax and keeping responses under 200 characters to optimize narrow-bandwidth radio airtime.
7. Conclusion
By wrapping complex API calls into simple scripts and documenting their parameters in AGENTS.md, we turn local command-line tools into cognitive extensions for the AI. This turns Antigravity (agy) into a fully integrated manager that keeps your workspace comfortable, monitors your network, and extends your connectivity off-grid.