> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nolongerevil.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NLE vs Google Nest Cloud

> How NoLongerEvil differs from the original Google Nest cloud implementation

## Overview

NoLongerEvil implements the same Nest Cloud Protocol that Google's servers use — the device firmware doesn't know the difference. However, the server internals are substantially simplified for home use.

***

## Authentication and Pairing

|                           | Google Nest Cloud                                              | NoLongerEvil                                               |
| ------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------- |
| **User auth**             | OAuth 2.0 + JWT tokens                                         | None (no user accounts on the device protocol layer)       |
| **Device auth**           | Full credential provisioning via `X-nl-set-client-credentials` | Accepts all credentials — serial extracted from Basic Auth |
| **Pairing flow**          | Mobile app ↔ cloud ↔ device OAuth exchange                     | 7-character alphanumeric entry code                        |
| **Credential management** | Provisioned device-specific credentials                        | No provisioning — default credentials accepted forever     |

**Why:** NLE skips credential provisioning entirely to avoid the credential loop bug and because home deployments don't need per-device auth secrets.

***

## Pairing States

NLE uses a 3-tier pairing model:

| State       | Meaning                                         |
| ----------- | ----------------------------------------------- |
| **Paired**  | Device has been claimed with a valid entry code |
| **Pending** | Entry key exists but hasn't been claimed yet    |
| **Unknown** | Device has connected but no entry key exists    |

Google's cloud uses a full OAuth + mobile app pairing flow that NLE replaces with the simpler entry code UI.

***

## Timestamp Sync

|                     | Google Nest Cloud                                   | NoLongerEvil                                      |
| ------------------- | --------------------------------------------------- | ------------------------------------------------- |
| **Sync resolution** | Timestamp + revision with complex conflict handling | **Timestamp-only** (simplified)                   |
| **Clock authority** | Cloud-authoritative via `X-nl-service-timestamp`    | Server-authoritative via `X-nl-service-timestamp` |

NLE's simplified timestamp-only sync is sufficient for single-server deployments. Google's cloud handles eventual consistency across distributed infrastructure.

***

## Features Not Implemented

These Google Nest cloud features are not available on the self-hosted server:

| Feature                                  | Status          |
| ---------------------------------------- | --------------- |
| Away Assist (AI occupancy prediction)    | Not implemented |
| EnergyIQ / Seasonal Savings              | Not implemented |
| Rush Hour Rewards / demand response      | Not implemented |
| Nest Aware video integration             | Not implemented |
| Person detection                         | Not implemented |
| Farsight / Rush Hour integration         | Not implemented |
| Multi-user account management            | Not implemented |
| Shared device permissions                | Not implemented |
| Nest Home / Works with Nest integrations | Not implemented |

***

## Persistence

|                   | Google Nest Cloud                            | NoLongerEvil                        |
| ----------------- | -------------------------------------------- | ----------------------------------- |
| **Storage**       | Distributed cloud databases (Bigtable, etc.) | SQLite (single file)                |
| **Consistency**   | Eventual consistency across regions          | Immediate (single process)          |
| **Structures**    | Multiple structures per account              | Single default structure per device |
| **User accounts** | Full Google account integration              | `homeassistant` user ID by default  |

***

## MQTT Integration

NLE adds MQTT support that the original Nest cloud does not expose:

* Device state changes are published to an MQTT broker
* Home Assistant and other MQTT-based systems can receive real-time updates
* MQTT is optional and configured separately from the core server

***

## What Stays the Same

The device protocol itself is identical. The thermostat firmware:

* Connects to the same endpoints with the same request format
* Receives the same chunked subscribe responses
* Uses the same bucket system and sync protocol
* Applies the same field ordering requirement
* Follows the same timing constraints

From the device's perspective, NLE is indistinguishable from Google's cloud.
