Home Assistant & Smart Infrastructure Setup (14) Unifying the Workspace, Connecting HomeAssistant, Networks, Vehicles, and LoRa to Antigravity (agy)

By | June 26, 2026

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_zorilor and camera.smart_indoor_camera; Smart Outdoor Camera: camera.smart_outdoor_camera with integrated light).
  • Noise Monitoring: Exposes room noise levels (such as sensor.office_noise and sensor.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_setpoint and number.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_list and todo.cookidoo_additional_purchases.
  • Subscription Status: Monitors account details (sensor.cookidoo_subscription and 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_goal and sensor.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/ttyACM0 to Home Assistant. It exposes over 20 device sensors (uptime, voltage, channel utilization, airtime, environment temperature, lux) and exposes a broad array of notify.mesh_node_meshtastic_* services to dispatch off-grid alerts.
  • Assist Bridge: An automation (meshtastic_assist_bridge) maps text packets from mobile node vg-5ee8 over channel voina to 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 NameTarget SystemDescription
get_ha_sensor.shHome AssistantQueries 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.shHome AssistantControls Somfy blinds via the API (open, close, stop, or position values).
wp_stats.pyWordPress.com APIPulls visitor analytics and verifies website HTTP status.
get_unifi_status.shUniFi Cloud APIFetches WAN status, ISP info, local IPs, and wireless/wired client counts for active consoles.
get_uisp_status.shUISP APIReturns EdgeRouter/EdgeSwitch system stats (CPU, RAM, temp, uptime).
meshtastic_bot.pyMeshtastic USB LinkPersistent 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:

  1. Interactive Shell Context: In your development terminal, you can chat with agy and ask it to execute actions (e.g. “Close the blinds, it’s too sunny”).
  2. Off-Grid Daemon Context: While you are away, the meshtastic_bot.py daemon acts as a proxy, passing off-grid messages to the agy CLI and sending back concise responses.

6. Security & Safety

Because agy has terminal execution privileges on your workspace, safety is paramount:

  • Terminal Confirmation: When agy initiates 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.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.