openccudata

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2026 License: MIT Imports: 4 Imported by: 0

README

go-openccu-data

openccu-data as a versioned Go artifact: the OCCU/OpenCCU metadata extracts (translations, easymodes, MASTER-paramset profiles, curated overlays, curated device semantics) embedded into a Go module with thin typed accessors.

The snapshot under data/ is regenerated automatically on every openccu-data release (repository_dispatch → regenerate workflow → version-bump PR); openccudata.SnapshotVersion records the upstream release it was taken from. Consumers decode the archives themselves — this module deliberately stays a data artifact, not a lookup framework.

Usage

import openccudata "github.com/SukramJ/go-openccu-data"

raw, err := openccudata.ReadFile("translation_extract.json.gz")
models := openccudata.DoorbellModels() // curated device semantics

Primary consumer: openccu-loom (internal/ccudata decodes the archives and layers its lookup semantics on top).

Versioning

Module tags are independent SemVer (v0.x); the embedded data stand is identified by SnapshotVersion (the openccu-data CalVer release).

Regeneration

script/regenerate.sh <path-to-openccu-data-checkout>

CI regeneration is triggered by openccu-data's release workflow via repository_dispatch (event data-release); manual fallback: workflow_dispatch with the release tag.

Licensing

Code is MIT. The extracted data inherits the eQ-3 HomeMatic Software License (free for private and non-commercial use) — see NOTICE.md.

Documentation

Overview

Package openccudata ships the OCCU/OpenCCU metadata extracts of the openccu-data project as a versioned Go artifact: the raw archives (translations, easymodes, MASTER-paramset profiles, curated overlays) plus thin typed accessors for the curated device-semantics classifications.

The data snapshot under data/ is regenerated on every openccu-data release (see script/regenerate.sh and the repository_dispatch workflow); SnapshotVersion records the upstream release it was taken from. Consumers decode the archives themselves — this module deliberately stays a data artifact, not a lookup framework.

Licensing is split: this module's code is MIT; the extracted data inherits the eQ-3 HomeMatic Software License (free for private and non-commercial use). See NOTICE.md.

Index

Constants

View Source
const SnapshotVersion = "2026.7.1"

SnapshotVersion is the openccu-data release this data snapshot was generated from. Stamped by script/regenerate.sh.

Variables

This section is empty.

Functions

func DoorbellModels

func DoorbellModels() map[string]struct{}

DoorbellModels returns the curated set of device models whose press/ring channel is a doorbell rather than a generic button. Consumers map the ring press of these devices onto their platform's doorbell semantics (e.g. Home Assistant's standard `ring` event type). Returns an empty set when the embedded document is missing or malformed — callers then fall back to generic button semantics.

func ReadDir

func ReadDir(name string) ([]string, error)

ReadDir lists one embedded snapshot directory ("." for the root), so consumers can enumerate profile archives and curated overlays without hardcoding the file set.

func ReadFile

func ReadFile(name string) ([]byte, error)

ReadFile returns one embedded artifact by its snapshot-relative name, e.g. "translation_extract.json.gz", "profiles/SWITCH_VIRTUAL_RECEIVER.json.gz", "translation_custom/device_models_de.json" or "device_semantics.json".

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL