Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Wayfinder: home automation service

Open
#118 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Active
Tech stack
postgresql, typescript

Research direction

Read the home feature branch glossary at services/home/GLOSSARY.md, then review the linked issues 120–123 and the referenced skills, CODING_STANDARDS.md and docs/adr/. The issue describes a hand-off-ready specification but leaves several decisions open and says implementation tickets still need to be sliced. Done means those remaining topics are resolved and the spec is divided into implementation issues; no specific files for the main specification are named.

Written by the indexing model from the issue text.

Description

wayfinder:map

Destination

A hand-off-ready spec for a new service home (this monorepo: galvyn/rorm, PWA, passkeys) that runs the household on top of the existing Zigbee2MQTT: lights, heating, sensors, shared lists, recurring reminders, a kiosk dashboard and a local voice assistant, sliced into implementation issues. Building it is not part of this map.

Notes

  • Service name home (services/home, frontend/home); glossary at services/home/GLOSSARY.md on the feature branch home.
  • Exactly one Household; all Members are equal, one admin issues Registration links (passkeys via libs/galvyn-identity).
  • Phones reach it at home and on the road via Tailscale only.
  • Zigbee2MQTT already runs and is the device boundary; the service never speaks Zigbee itself.
  • Lights and heating must work without internet and without the Ryzen box. Devices and core stack run on the Raspberry Pi; the voice stack runs on the Ryzen 7 1700 + GTX 1080 (8 GB), fully local (no cloud LLM).
  • Automations are fixed building blocks: heating schedule per Room, motion light per Room, timed Scene. No free rule engine.
  • Scenes belong to one Room (light on/off, brightness, colour temperature, target temperature); any Member may create them. House-wide only a built-in "all off".
  • One concept "List" for shopping and to-dos: any number, all shared, Items are just checked off. Due dates and recipients belong to Reminders.
  • Reminder: recurrence rule + recipients + acknowledgement; unacknowledged it re-notifies.
  • Sensors: live values plus history per sensor.
  • Dashboard: a kiosk view of the same PWA on a wall tablet/TV, one style done properly (Jarvis HUD or LCARS), no theme switching.
  • Voice is just another channel over the service API ("Computer, ..."), GLaDOS voice. Push-to-talk in app/dashboard first, room satellites later (ESPHome native API; Wyoming only links the pipeline to Whisper, Piper and openWakeWord).
  • Consult the grilling and domain-modeling skills on grilling tickets; read CODING_STANDARDS.md and docs/adr/ before deciding on anything that touches them.

Decisions so far

  • Zigbee2MQTT integration surface for the home service: small stable JSON surface (retained bridge/devices with typed exposes, /set|get, availability); native groups/scenes cover only lights; bindings only for controller-type sensors; NATS MQTT can replace Mosquitto but forbids spaces in names and hides retained messages in a JetStream stream; else rumqttc
  • Voice satellite hardware without Home Assistant: satellites (Voice PE, ReSpeaker Lite, S3-BOX-3, linux-voice-assistant) speak the ESPHome native API, not Wyoming; stock firmware works without HA if home implements the voice part of that API (one client per device, wake word only while a client is connected, TTS fetched via HTTP URL); a prop needs a custom "look at" channel
  • Web Push from the PWA behind Tailscale: works; phones receive pushes without the tunnel, the Pi needs outbound internet (push services, cert renewal); rp_id = the Tailscale host, fixed before the first passkey; iOS 16.4+ with Home Screen install; needs vite-plugin-pwa injectManifest; crate web-push-native; TLS via traefik's Tailscale cert resolver renews itself
  • Local voice stack on a GTX 1080: Pascal only runs on a frozen stack (driver 580, CUDA 12.x, cuDNN <= 9.10 or CTranslate2 >= 4.6.3), so llama.cpp/Ollama, not vLLM; Whisper turbo int8 + ~4B tool-calling LLM fit in 8 GB (or Gemma 4 E4B with audio in as one model); Piper on CPU with an unlicensed German GLaDOS voice (home use only); openWakeWord is English-only, so push-to-talk first; est. 2-5 s to reply, unmeasured

Not yet specified

  • Warnings (e.g. bathroom humidity > 70 %): probably built from Reminders or Automations once both are modelled.
  • How the kiosk Dashboard device signs in (device login, not a Member account).
  • Backups of the Postgres on the Pi.
  • Interface sounds for the Dashboard: synthesising the film/series sounds by ear did not sound right in the dashboard prototype; likely the user's own sound files per event, or a freely licensed pack.
  • Slicing the finished spec into implementation issues (the last step of this map).

Out of scope

  • The physical, moving GLaDOS prop (mechanics, servos, 3D printing): its own effort later. Only the interface a prop would plug into is in scope.
  • Non-Zigbee devices (Wi-Fi plugs, cameras), energy monitoring.
  • Multiple Households, guest or restricted roles.
  • A free-form rule engine, theme switching, Alexa / Google Assistant.
Dominant language
TypeScript
Stars
0
Forks
1
Avg merge
10h 56m
Merged PRs (30d)
34

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from myOmikron/code

All issues in myOmikron/code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.