Releases: yieldhog/sycamore-ha
Release list
v0.1.3
Sycamore School v0.1.3
Added
- School events calendar — the school calendar (
School/{id}/Events) as a
School events calendar entity (all-day and timed events), plus a Next
school event timestamp sensor. Turn it on with the School events calendar
option; needs a School ID (like lunch). - Student profile details — each student's device now shows their grade
level as its model, plus Grade level and Homeroom teacher diagnostic
sensors. Fetched with the normal refresh and degrades quietly if your token
can't read the profile.
Full changelog: https://github.com/yieldhog/sycamore-ha/blob/main/CHANGELOG.md
v0.1.1
Sycamore School v0.1.1
Packaging release — gets the Sycamore brand (icon + logo) to installed users.
Home Assistant renders them from the integration's own brand/ folder (2026.3+ /
HACS), since home-assistant/brands no longer accepts custom-integration PRs.
No functional changes to grades, homework, calendars, or the sync service —
everything from v0.1.0 is unchanged.
Changed
- Brand icon/logo now ship in-repo (
custom_components/sycamore/brand/). - HACS brand validation enabled; added a CHANGELOG; manifest version corrected.
Full changelog: https://github.com/yieldhog/sycamore-ha/blob/main/CHANGELOG.md
v0.1.0 — First stable release
Sycamore School v0.1.0 🌳
First stable (non-beta) release. A native Home Assistant integration for the
Sycamore School platform —
it polls the Sycamore API and exposes each child's grades, homework/tests, missing
work, attendance, and the school lunch menu as first-class Home Assistant entities,
with one device per student. HACS-installable; configured entirely in the UI.
Highlights
- One device per student, so entities group cleanly.
- Per-class grades — letter grade as the sensor state, plus a numeric
%
sensor (long-term statistics/graphable) and anup/down/stabletrend. - Analytics, computed from data already fetched — grade average, lowest class,
next assignment, and next test (timestamp sensors for automations). - Homework calendar — every assignment/test on its due date,
[TEST]/[QUIZ]
labelled. - Missing work — a read-only to-do list plus a Has missing work binary sensor.
- Test within 24 hours binary sensor for "study tonight" automations.
- Upcoming work / Upcoming tests count sensors over a configurable focus window.
- Attendance sensor, and an optional Today's lunch sensor + Lunch calendar.
- Calendar sync — the
sycamore.sync_calendarservice mirrors assignments,
tests, and quizzes into a writable calendar (e.g. Google): it adds new work and
removes cancelled/changed items, only ever touching events it created. Configure
a per-child target calendar in the options and optionally auto-sync after
every refresh — two children can even share one calendar safely. - UI setup with automatic student discovery, a reauthentication flow, and
per-integration options (poll interval, focus window, feature toggles).
Requirements
- Home Assistant 2024.12.0 or newer.
- A Sycamore access token (My Organizer → Applications). A Family ID enables
automatic student discovery; a School ID enables the lunch sensor. Both optional.
Install
HACS (custom repository): add https://github.com/yieldhog/sycamore-ha as an
Integration, install, and restart. Manual: copy custom_components/sycamore/
into your config and restart. Then add the integration from
Settings → Devices & Services → Add Integration → Sycamore.
What's changed since v0.1.0b1
- Calendar sync service (
sycamore.sync_calendar) — self-cleaning mirror of
assignments/tests/quizzes into a calendar, with a per-student calendar mapping in
the options and opt-in auto-sync. Student-scoped tags let children share a calendar. - Analytics sensors — grade average, lowest class, next assignment, next test.
Notes
- Polling is capped at a 60-minute minimum (Sycamore data changes at most daily).
- The calendar sync deletes stale events on any calendar that supports deletion
(Google does); calendars without delete support get new events and log the rest.
Full documentation: see the README.
v0.1.0b1 (beta)
First beta of the Sycamore School integration for Home Assistant — a native,
HACS-installable data layer that turns each child's Sycamore data into first-class
HA entities (a device per student). No MQTT bridge, no database.
Entities
Per student
- Per-class letter grade sensor (percent,
up/down/stabletrend, and last-updated as attributes) - Per-class grade percent sensor (
measurement→ long-term statistics/graphs) - Missing work count
- Upcoming work count over your focus window (each item tagged with
is_test/kind, by class) - Upcoming tests count over the focus window (tests/quizzes listed by class)
- Attendance events count (optional)
- Has missing work and Test within 24 hours binary sensors
- Homework calendar (assignments & tests by due date,
[TEST]/[QUIZ]prefixed) - Missing work to-do list (read-only)
School (with a School ID)
- Today's lunch sensor (today's meals as state; the full pulled week in the
menuattribute) - Lunch calendar (one all-day event per day)
Setup
- UI config flow: access token, optional Family ID (auto-discovers students), optional School ID (enables lunch). Manual student entry if you skip Family ID.
- Reauthentication flow, and options for poll interval (60 min default/min), focus window (days), and Attendance/Lunch toggles.
Requirements
- Home Assistant 2024.12 or newer.
Beta notes / known limitations
- Between terms (summer): the Grades/Homework endpoints return empty, so those sensors stay quiet until the school year starts — that's expected, not a bug.
- Families scope: if your token can't access the family list, leave Family ID blank and add students by Student ID — the per-student data uses endpoints that don't need that scope.
- No integration icon in Home Assistant yet — the brand logo submission to
home-assistant/brandsis still pending.
Unofficial project — not affiliated with or endorsed by Sycamore Education.