Repository navigation
Releases: brunoga/sofabaton
Releases · brunoga/sofabaton
Release list
sofabaton 0.1.0
The first prerelease: reading a hub, and creating and editing IR devices
from YAML profiles. Verified on an X2 hub (firmware 9).
Added
sbx, the command-line tool:discover,info,list(devices, activities, a device's commands,
keys, sequences) anddump(the whole configuration as JSON, raw
bytes kept: a lossless backup).exportandapply: a device as a YAML profile, and a diffing apply
that changes only what differs (-nshows the plan,-pruneremoves
commands the profile lacks,-createmakes a new IR device).add-ir,remove-ir,send,remove-deviceandsync.proxy: stands between the official app and the hub, relaying and
recording every frame (-capture), with notes typed while it runs.-hubis optional everywhere: it defaults to$SBX_HUB, else to the
only hub that answers discovery. Devices are given by name or id.
- Package
profile: YAML device profiles with commands in the remote's
order, keys (short and long presses), power on/off commands and inputs;
plans against a hub's state, their application, and creating a device
from scratch in the app's order. Renaming a device or command keeps the
activities and keys that use it. IR codes as NEC, Denon-K or Denon
(Sharp) codes, per device or per command, or the hub's descriptors. - Profiles for the AWOL Vision Aetherion projector (from AWOL's IR list)
and the Denon AVR-X8500H receiver (from Denon's IR command chart). - Package
hub: the client. Connects, identifies the hub and reads
devices, activities and their members, command lists, keymaps, command
order, sequences and inputs; writes commands, key bindings, command
order, device records (create, update, delete), idle behavior,
sequences and inputs; sends commands; syncs the remotes. - Packages
wire(frames, stream decoding, paging, labels, the per-model
record dimensions),record(the hub's records, re-encoded
byte-identically),transport(discovery and CALL_ME),session
(serialized exchanges with typed acks and errors),proxy,capture
(JSON lines) andhubsim(a simulated hub for tests);
internal/mdns, a minimal mDNS browser and responder. - Protocol docs with a confidence level per fact, including the X2 app's
write flows learned from our own captures, and a roadmap. - Test data: frames from upstream's tests, vectors from the upstream
implementation (make oracle), our X2's dumps and the app captures
behind each write flow. make ciruns every CI job locally; releases are built with
GoReleaser for Linux, macOS and Windows.