root@eight-pod:/opt/opensleep# RUST_LOG=debug ./opensleep
[2026-03-29T00:30:03Z INFO opensleep] Starting opensleep...
[2026-03-29T00:30:03Z INFO opensleep] `config.ron` loaded
[2026-03-29T00:30:03Z INFO opensleep] Using timezone: America/Los_Angeles
[2026-03-29T00:30:03Z INFO opensleep::reset] Resetting Subsystems...
[2026-03-29T00:30:03Z INFO opensleep::mqtt] Initializing MQTT...
[2026-03-29T00:30:03Z INFO opensleep::mqtt] Connecting to MQTT broker at homeassistant.local:1883 as user 'eightsleep'
[2026-03-29T00:30:04Z INFO opensleep::mqtt] MQTT broker connected
[2026-03-29T00:30:04Z INFO opensleep::frozen::manager] Initializing Frozen Subsystem...
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribing to opensleep/actions/calibrate
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribed to opensleep/actions/calibrate
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribing to opensleep/actions/set_away_mode
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribed to opensleep/actions/set_away_mode
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribing to opensleep/actions/set_prime
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribed to opensleep/actions/set_prime
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribing to opensleep/actions/set_profile
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribed to opensleep/actions/set_profile
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribing to opensleep/actions/set_presence_config
[2026-03-29T00:30:04Z DEBUG opensleep::mqtt] Subscribed to opensleep/actions/set_presence_config
[2026-03-29T00:30:04Z DEBUG opensleep::config::mqtt] Publishing config..
[2026-03-29T00:30:04Z DEBUG mio_serial] opening serial port in synchronous blocking mode
[2026-03-29T00:30:04Z DEBUG mio_serial] setting O_NONBLOCK for /dev/ttyS1
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Subscribe. Topics = [Filter = opensleep/actions/calibrate, Qos = AtLeastOnce], Pkid = 1
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Subscribe. Topics = [Filter = opensleep/actions/set_away_mode, Qos = AtLeastOnce], Pkid = 2
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Subscribe. Topics = [Filter = opensleep/actions/set_prime, Qos = AtLeastOnce], Pkid = 3
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Subscribe. Topics = [Filter = opensleep/actions/set_profile, Qos = AtLeastOnce], Pkid = 4
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Subscribe. Topics = [Filter = opensleep/actions/set_presence_config, Qos = AtLeastOnce], Pkid = 5
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/timezone, Pkid = 6, Payload Size = 19
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/away_mode, Pkid = 7, Payload Size = 5
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/prime, Pkid = 8, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/led/idle, Pkid = 9, Payload Size = 3
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/led/active, Pkid = 10, Payload Size = 3
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/led/band, Pkid = 11, Payload Size = 5
[2026-03-29T00:30:04Z DEBUG opensleep::config::mqtt] Published config
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/mode, Pkid = 12, Payload Size = 7
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/profile/type, Pkid = 13, Payload Size = 4
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/profile/left/sleep, Pkid = 14, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/profile/left/wake, Pkid = 15, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/profile/left/temperatures, Pkid = 16, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/config/profile/left/alarm, Pkid = 17, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/availability, Pkid = 18, Payload Size = 6
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/device/name, Pkid = 19, Payload Size = 9
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/device/version, Pkid = 20, Payload Size = 5
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/device/label, Pkid = 21, Payload Size = 7
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::manager] -> Ping
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::manager] -> GetHardwareInfo
[2026-03-29T00:30:04Z INFO opensleep::frozen::state] Device mode: Unknown -> Firmware
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/mode, Pkid = 22, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::manager] -> SetTargetTemperature
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::manager] -> SetTargetTemperature
[2026-03-29T00:30:04Z INFO opensleep::frozen::state] Hardware info: SN (redacted) PN 20500 SKU 4 HWREV 0609 FACTORYFLAG 1 DATECODE 180a18
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/hwinfo, Pkid = 23, Payload Size = 67
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::state] Message: FW: [thermostat-left] started throttling (target: 0.000000, dew point: 12.407977, min allowed: 11.407977) [disabled]
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::state] Target update - Side: Left, Enabled: false, Temp: 0
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/left_target_temp, Pkid = 0, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::state] Message: FW: [top-fan] 0.253650 @ 396 rpm
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::state] Message: FW: [thermostat-right] started throttling (target: 0.000000, dew point: 12.407977, min allowed: 11.407977) [disabled]
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::state] Target update - Side: Right, Enabled: false, Temp: 0
[2026-03-29T00:30:04Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/right_target_temp, Pkid = 0, Payload Size = 8
[2026-03-29T00:30:04Z DEBUG opensleep::frozen::state] Message: FW: [bottom-fan] 0.000000 @ 0 rpm
[2026-03-29T00:30:05Z DEBUG opensleep::frozen::state] Message: FW: [solenoid] solenoid_current @ 0.004329A
[2026-03-29T00:30:05Z DEBUG opensleep::frozen::state] Message: FW: [float_valve] solenoid_current @ 0.000470A
[2026-03-29T00:30:06Z DEBUG opensleep::frozen::state] Message: FW: [flowrate] t0: 24.56, t1: 23.81
[2026-03-29T00:30:06Z ERROR opensleep::common::codec] Frozen got unexpected packet: b"T\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
[2026-03-29T00:30:07Z ERROR opensleep::common::codec] Frozen got unexpected packet: b"U\x01\x01\x01\0\0\0\0\0\0G\x7f\xfe\0G\x7f\xfe\0\xbf\x80\0\0\xbf\x80\0\0\xbf\x80\0\0\xbf\x80\0\0A\xc4\x80\0A\xbe\x80\0\x01\x92\0\0"
[2026-03-29T00:30:07Z ERROR opensleep::common::codec] Frozen/Heartbeat wrong size: expected 3, got 9. Buffer: b"S\0\0\x01?\x13\xe8\x80\x03"
[2026-03-29T00:30:07Z DEBUG opensleep::frozen::state] Message: FW: [stats] avg:0ms max:13ms min:0ms
[2026-03-29T00:30:12Z DEBUG opensleep::frozen::state] Temperature update - Left: 2362, Right: 2368, Heatsink: 2343, Error: 9
[2026-03-29T00:30:12Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/left_temp, Pkid = 0, Payload Size = 4
[2026-03-29T00:30:12Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/right_temp, Pkid = 0, Payload Size = 4
[2026-03-29T00:30:12Z DEBUG rumqttc::state] Publish. Topic = opensleep/state/frozen/heatsink_temp, Pkid = 0, Payload Size = 4
[2026-03-29T00:30:13Z DEBUG opensleep::frozen::state] Message: FW: pump[left] off @ 0% (0 rpm) [no water]
[2026-03-29T00:30:13Z DEBUG opensleep::frozen::state] Message: FW: pump[right] off @ 0% (0 rpm) [no water]
[2026-03-29T00:30:14Z DEBUG opensleep::frozen::state] Message: FW: [top-fan] 0.253650 @ 396 rpm
[2026-03-29T00:30:14Z DEBUG opensleep::frozen::state] Message: FW: [bottom-fan] 0.000000 @ 0 rpm
[2026-03-29T00:30:16Z DEBUG opensleep::frozen::state] Message: FW: [flowrate] t0: 24.56, t1: 23.81
[2026-03-29T00:30:16Z ERROR opensleep::common::codec] Frozen got unexpected packet: b"T\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
[2026-03-29T00:30:17Z ERROR opensleep::common::codec] Frozen got unexpected packet: b"U\x01\x01\x01\0\0\0\0\0\0G\x7f\xfe\0G\x7f\xfe\0\xbf\x80\0\0\xbf\x80\0\0\xbf\x80\0\0\xbf\x80\0\0A\xc4\x80\0A\xbe\x80\0\x01\x92\0\0"
[2026-03-29T00:30:17Z ERROR opensleep::common::codec] Frozen/Heartbeat wrong size: expected 3, got 9. Buffer: b"S\0\0\x01?\x14 `\x03"
[2026-03-29T00:30:22Z DEBUG opensleep::frozen::state] Temperature update - Left: 2362, Right: 2368, Heatsink: 2343, Error: 9
Hey, I'm investigating getting opensleep up and running on a Pod 4.
Running frankenfirmware I found:
Plugging in these paths, I was able to get opensleep running, with some errors repeating every 10 seconds. Note that there was no cover connected and I disabled the sensor task for the time being.
Maybe useful:
I'm wondering what you think of the unexpected messages; probably needs some reverse engineering.
Full debug log