Skip to content

Releases: yieldhog/sycamore-ha

v0.1.3

Choose a tag to compare

@yieldhog yieldhog released this 01 Aug 13:41
b21572f

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

Choose a tag to compare

@yieldhog yieldhog released this 31 Jul 23:55
ad673de

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

Choose a tag to compare

@yieldhog yieldhog released this 31 Jul 23:25
b42dece

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 an up/down/stable trend.
  • 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_calendar service 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)

v0.1.0b1 (beta) Pre-release
Pre-release

Choose a tag to compare

@yieldhog yieldhog released this 31 Jul 04:20
aebb0d4

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/stable trend, 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 menu attribute)
  • 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/brands is still pending.

Unofficial project — not affiliated with or endorsed by Sycamore Education.