[APP][Pro] Eight Sleep — Pod temperature, presence, sleep data and smart bed automation

Hi all,

I’ve been working on a new Homey app for Eight Sleep.

The aim is to bring the Eight Sleep Pod properly into Homey, so each side of the bed can be used as its own device for temperature control, presence, sleep data and automations.

Homey App Store:

What does it do?

The app brings each side of an Eight Sleep Pod into Homey as a separate device.

It currently supports:

  • Side on/off

  • Target temperature

  • Bed temperature

  • Room temperature

  • Bed presence

  • Live heart rate

  • Resting heart rate

  • HRV

  • Breath rate

  • Sleep stage

  • Sleep fitness score

  • Sleep quality score

  • Sleep routine score

  • Time slept

  • Next alarm

  • Away mode

  • Water low status

  • Priming status

  • Pod power

  • Snooze / stop alarm buttons

  • Prime Pod button

It also includes support for an adjustable base, including base presets and head/feet angle controls where supported.

Flow support

This is where it gets useful inside Homey.

There are Flow cards for things like:

  • Someone got into bed

  • The bed became empty

  • A sleep session ended

  • Sleep stage changed

  • The alarm started ringing

  • The alarm stopped

  • Snore mitigation started/stopped

  • Water became low

  • Water was refilled

  • Priming started/finished

  • Daily sleep summary is ready

There are also conditions for:

  • Someone is in bed

  • Side is on

  • Away mode is on

  • All sides are away

And actions for:

  • Set target temperature

  • Turn a side on or off

  • Set temperature after a delay

  • Set temperature in Celsius or Fahrenheit

  • Start or stop away mode

  • Snooze or stop the alarm

  • Prime the Pod

  • Set adjustable base preset

  • Set head/feet angle

  • Set a one-off alarm

Example automations

A few examples of what I’m looking to do with it:

  • When someone gets into bed, dim the bedroom lights and set the room into night mode

  • When both sides are empty in the morning, turn off sleep mode and start morning routines

  • If the bed becomes empty overnight, trigger low-level lighting

  • Use sleep session data in Homey Insights

  • Use bed presence as a more reliable “in bed” signal than motion sensors

  • Trigger routines from alarms, sleep stage changes or daily sleep summaries

  • Automate Pod temperature changes during the evening or overnight

A note on the API

This is an independent community integration and is not affiliated with, authorised by, or endorsed by Eight Sleep.

It talks to Eight Sleep’s cloud service and requires an Eight Sleep account. The API is unofficial, so behaviour may change over time, but the goal is to make the integration as useful and stable as possible.

Data notes

Bed presence is based mainly on recent heart-rate samples, so it can sometimes lag slightly depending on when Eight Sleep publishes fresh data.

Live heart rate is treated as current-state data. Resting heart rate, HRV and breath rate are based on Eight Sleep’s processed sleep data and are more suitable for longer-term Insights.

Feedback welcome

I’d really welcome feedback from other Eight Sleep / Homey users.

I’m particularly interested in:

  • Which Pod versions people are using

  • Whether left/right side detection works as expected

  • How reliable presence feels in real use

  • Which Flow cards are useful

  • What other automations people would like to build

  • Any issues with alarms, away mode, priming or adjustable base controls

Thanks,
JZ

Very good ! . I have a pod 4 (not adjustable base)
I have set up presence to status in homey for both sides, it works, but ill try to measure the delay more accurate and report :slight_smile:
The temp in status seems very wrong, i’ve always just used ± in the eightsleep app because this.
We have an aircon set to 19 degrees, and the eightsleep app reports this accurate, but the side of the bed is usually in the high 20’s, so the status on my side now states 27-31 with room temp of 19.1.
So adjustable status fields to something else, and maybe ± instead of degrees in the adjustment would be nice.
Setting alarm or being able to trigger the alarm on the bed (then we can automate something else and dont have to rely on the eighsleep app anymore)

@plugg3n Thanks so much for the detailed feedback — really helpful! :folded_hands:

On the temperature display
The Bed temperature tile is showing the actual measured water/surface temperature of the pod mattress, which is correct — once someone is in bed it naturally sits in the high 20s (body heat + the pod’s own circulation). It’s not the same as the room temperature or the set-point. The Eight Sleep app doesn’t show you this value at all, which is why it looks unexpectedly high.

What you’re used to seeing in the Eight Sleep app is the adjustment level (that ±10 scale). Good news — v1.0.8 (just pushed today) adds a new Heating/cooling level tile that shows exactly that: a number from −10 to +10, the same scale as the official app. It shows up alongside the temperature tiles on the device card.

On customising the device card
You can show/hide/reorder any tile by long-pressing a tile on the device card and tapping the pencil icon (Edit capabilities). So if the raw bed temperature isn’t useful to you, just hide it and keep the new level tile instead — no app update needed for that part.

On alarms
There were already Flow actions for Set a one-off alarm (schedule for a specific time) and Snooze/Stop alarm since v1.0.5, but v1.0.8 also adds Trigger the alarm now — a single action that fires the pod’s vibration + thermal alarm ~1 minute from now, perfect for automations where you want Homey to wake someone up immediately.

All three changes are submitted to the store in v1.0.8 — it should roll out to your Homey soon (i hope). Let me know how the presence delay tracking goes! :blush:

Nice :partying_face:

This mornings tracking was not good :roll_eyes:

Ive set each side to update sleep/awake status.

We both laid a bit after the alarm going off, see screenshot for the detail

@plugg3n thanks for flagging this and sharing the timeline screenshot — really helpful for diagnosing it! :folded_hands:

I could see exactly what was happening: after your alarm fired, the pod transitions out of its smart sleep state, and if your heart rate sample went slightly stale while you were lying awake, a single poll was enough to trigger “got out of bed” — even though you were still in bed. Then when you moved and a fresh HR sample came in, it’d flip back to “in bed” again. Classic lay-in false positive. :sweat_smile:

I’ve just pushed a fix in v1.0.9 — the “got out of bed” trigger now requires 2 consecutive polls without a presence signal before it fires (roughly 10 minutes with default polling). Getting into bed is still detected immediately. This should stop the oscillation for lay-ins after alarms.

The build is uploaded — just needs to clear the review queue to go live. I’ll update this thread when it’s available. Would love to hear back after a couple of mornings whether it feels better!

Hello @Zarbie question for you. Is there issues with the alarm trigger then card. I tried to create a flow triggering off the alarm and it hasn’t worked for me. Any suggestions?

@Jgalpine80 Thanks for flagging this — you’ve found a genuine bug! :bug:

After digging into the code I found two issues working against each other:

  1. The alarm was being silently dropped — when an alarm is actively ringing, the Eight Sleep API often doesn’t include an endTimestamp field. The app was treating that as “alarm already finished” and ignoring it entirely.
  2. The ringing check was too strict — even if the alarm made it through, the trigger logic required both startTimestamp and endTimestamp to be present. Both are optional fields in the API, so the condition would never be met.

Both have been fixed in v1.0.10, which is now live on the App Store. Updating the app should get your alarm_ringing and alarm_dismissed Flow triggers working correctly.

Sorry for the frustration — and thanks again for the report, it was a good one! Let me know if you’re still seeing any issues after updating. :folded_hands:

Thanks for your quick response. I am still experiencing this error message.

Sorry @Jgalpine80 i actually thought i replied to this after i addressed the code! Appologies

Thanks again for reporting this. The HTTP 400 was caused by the alarm time format sent to Eight Sleep. This has now been corrected in the current v1.0.13 release. Please update the app and try “Trigger the alarm now” again. If it still fails, please let me know your app version and send a Homey diagnostic report so I can inspect the new response.

Sorry for not following up, but
Line woke up and went out of bed about 06 as the timeline says, i remained in bed and got a false up/down.
It detected somehow that she was present about the time i woke up again as you can see, (the side was then empty)