The Problem
My Daikin Skyport thermostat is a cloud-only device — the SkyportHome app on my phone is the only official way to control it. No local API, no direct HomeKit support. I wanted full Apple Home integration: Siri voice control, automations, the whole workflow.
The path: Skyport Cloud → Home Assistant → HomeKit Bridge → Apple Home.
Running Home Assistant on Apple Silicon Mac
Instead of a Raspberry Pi or a NUC, I'm running Home Assistant OS as a VM under UTM on my Mac. ARM64 native — no emulation penalty.
- HA OS version: 17.3 (Home Assistant 2026.5.4)
- Architecture: aarch64 (Apple Silicon native)
- Resources: 2 CPU cores, 2 GB RAM
- IP: 192.168.1.195 (static, shared network via UTM)
- SSH: enabled via public key authentication
The VM disk is the official haos_generic-aarch64 image imported as qcow2. UTM's config.plist needed a manual fix — the <key>IsolateFromHost</key> tag was missing its <false/> value, which prevented the network adapter from initializing properly.
Installing the Daikin Skyport Integration
The built-in "Daikin AC" integration in HA only works with local WiFi adapter modules (BRP069A41/B41). It asks for a host IP and API key — not what the Skyport uses.
The Skyport thermostat communicates with Daikin's cloud API at daikinone.com. The app authenticates with email + password and receives a JWT access token + refresh token.
The solution: apetrycki/daikinskyport — a HACS custom component that talks to the Daikin cloud API:
- Install HACS (Home Assistant Community Store) via the add-on store
- In HACS, add the custom repository:
https://github.com/apetrycki/daikinskyport - Restart HA core
- Go to Settings → Devices & Services → + Add Integration → Daikin Skyport
- Enter your Skyport/Daikin account email and password
v1.1.2 installed clean. The integration uses cloud polling to fetch thermostat state every 30–60 seconds.
What Shows Up in Home Assistant
After authenticating, the integration created a full device tree:
- climate.daikin_hallway — the thermostat entity. Modes: auto, heat, cool, off. Fan: auto, on, low, medium, high, Schedule. Presets: Away, Manual, Schedule, Temp Hold.
- sensor.daikin_hallway_indoor_temperature — current indoor temp
- sensor.daikin_hallway_outdoor_temperature — outdoor temperature
- sensor.daikin_hallway_outdoor_humidity — outdoor humidity
- sensor.daikin_hallway_outdoor_power — power consumption (W)
- Plus demand sensors for fan, cooling, heat pump, and fault code monitoring
Bridging to Apple HomeKit
With the climate entity working, the last step is exposing it to Apple Home:
- Settings → Devices & Services → + Add Integration → HomeKit
- Name it "HomeKit Bridge"
- Filter: include only the
climatedomain, specificallyclimate.daikin_hallway - HA displays a QR code + 8-digit setup code
- In the Apple Home app: + → Add Accessory → More Options → Scan QR Code
The thermostat appears in Apple Home as "Thermo Jab". Full control: temperature setpoints, heat/cool/auto/off mode, fan speed, presets.
Siri and Automations
Once it's in HomeKit, everything just works:
- "Hey Siri, set the temperature to 72 degrees"
- "Hey Siri, turn on the heat"
- Automations: "Set to 68°F at 10 PM" or "Turn off HVAC when I leave home"
- Scenes: "Good Morning" scene that sets the thermostat along with lights
Latency Note
Because the Skyport integration uses cloud polling (not local push), there's a 30–60 second delay between a command in Apple Home and the thermostat physically responding. The command goes: Apple Home → HA HomeKit bridge → HA Skyport integration → Daikin cloud API → thermostat. Not instant, but perfectly usable for scheduled and voice control.
Architecture Summary
Apple Home / Siri ↔ HA HomeKit Bridge ↔ Daikin Skyport Integration (HACS) ↔ Daikin Cloud API ↔ Physical Thermostat. All running inside a UTM VM on Apple Silicon — HA OS 17.3, Home Assistant 2026.5.4.
Credits
This entire setup was worked through with Deep Thought — an AI assistant running on the Hermes agent framework. Every step — from fixing the UTM plist to finding the right HACS repository to configuring the HomeKit bridge — was done collaboratively through Telegram. The kind of multi-step technical troubleshooting where having an AI that can SSH into machines, edit config files, search GitHub, and retry when APIs fail actually makes a difference.
// no comments on this post.