Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ images: the BidCoS-RF daemon `rfd`, the BidCoS-Wired daemon `hs485d`, their
libraries (`libXmlRpc`, `libelvutils`, `libhsscomm`, `libUnifiedLanComm`, …),
`multimacd`, the Tcl modules, the WebUI, device types and firmware. The
closed-source components (ReGaHss, the HmIP server) are shipped as binaries
only; `src/ReGaHss/` and `src/hmipserver/` contain just a `README.md`.
only; `src/ReGaHss/` and `src/hmipserver/` contain just a `README.md` and
their changelog.

OS-level changes (Buildroot, kernel, init scripts such as `S61rfd`, packages)
belong in [OpenCCU/OpenCCU](https://github.com/OpenCCU/OpenCCU), which picks up
Expand Down Expand Up @@ -69,13 +70,18 @@ what you could and could not test.
of the OpenCCU-Base libraries whose functions it calls, read from the loaded
libraries (check with `nm -D --undefined-only`, not only the link line).
A program links only the OpenCCU-Base libraries whose functions it calls.
- **Daemon changelogs:** a pull request with a user-visible change to `rfd` or
`hs485d` (including changes of the libraries they are built with) adds an
entry to `src/<daemon>/CHANGELOG.md` under `## Unreleased` (create the
heading at the top if it is missing), in the style of the existing entries:
what was wrong or what is new, written for users, with links to the pull
request and the fixed issue. A version bump renames `## Unreleased` to
`## <version> (<date>)`.
- **Component changelogs:** every component under `src/` (except `webui`) has
a `CHANGELOG.md`. The one of the closed-source `ReGaHss` (`ChangeLog` up to
R1.00.0388.0267) comes with its binaries from the Release workflow of the
ReGaHss repository and is not edited here. A pull request with a
Comment thread
jens-maus marked this conversation as resolved.
Resolved
user-visible change adds an entry under `## Unreleased` (create the heading
at the top if it is missing) to the changelog of every component it
changes, in the style of the existing entries: what was wrong or what is
new, written for users, with links to the pull request and the fixed
issue. A change of a library goes into the library's changelog, not into
those of the programs using it. A version bump renames `## Unreleased` to
`## <version> (<date>)`; for `devicetypes` and `hmipserver`, which have no
version of their own, the OpenCCU-Base release takes its place.
- WebUI, Tcl and ReGa code must escape every user-controlled value.
- Changes to the closed-source binaries come from eQ-3; do not patch them.

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ This repository is used as the common base package that delivers:
## Repository layout (high level)

- `src/` - source code and module-local build logic (Makefiles) for core components.
Closed-source components (`src/ReGaHss/`, `src/hmipserver/`) only contain a `README.md` (and a `ChangeLog`) there, their binaries are part of `bin/` and `opt/`.
Closed-source components (`src/ReGaHss/`, `src/hmipserver/`) only contain a `README.md` and their `CHANGELOG.md` there, their binaries are part of `bin/` and `opt/`.
- `bin/` - architecture-specific executable binaries and helper/startup scripts.
- `www/` - WebUI and Tcl-based runtime resources.
- `etc/` - configuration templates used during deployment/runtime setup.
Expand Down
4 changes: 2 additions & 2 deletions src/ReGaHss/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

`ReGaHss` ("Residential Gateway") is the logic engine of the CCU. It provides the device and system variable database, the program logic, the HomeMatic script interpreter and the backend of the WebUI.

ReGaHss is **closed source**: its source code cannot be published and is therefore not part of OpenCCU-Base. Only the ReGaHss binaries and its ChangeLog are provided here.
ReGaHss is **closed source**: its source code cannot be published and is therefore not part of OpenCCU-Base. Only the ReGaHss binaries and its changelog are provided here.

## Files

- `bin/<platform>/ReGaHss` - ReGaHss binaries for all supported platforms (`aarch64-linux-gnu`, `arm-linux-gnueabihf`, `i686-linux-gnu`, `x86_64-linux-gnu`).
- `src/ReGaHss/ChangeLog` - changes of every ReGaHss release. The topmost section describes the release of the binaries in `bin/<platform>/ReGaHss`; both are always updated together.
- `src/ReGaHss/CHANGELOG.md` (`src/ReGaHss/ChangeLog` up to R1.00.0388.0267) - changes of every ReGaHss release, in the format of the other component changelogs. The topmost section describes the release of the binaries in `bin/<platform>/ReGaHss`; both are always updated together.
Comment thread
jens-maus marked this conversation as resolved.
Resolved

The parts of ReGaHss that are available as source code are maintained in OpenCCU-Base:

Expand Down
19 changes: 19 additions & 0 deletions src/SetInterfaceClock/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# SetInterfaceClock ChangeLog

Changes of `SetInterfaceClock`, the tool that sets the clock of the radio
interfaces. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 1.0.0 (2026-11-02)

* first version with a version string (`version.sh`): `-v` / `--version`
prints it together with the versions of libXmlRpc and libelvutils.
SetInterfaceClock no longer links libhsscomm and libxmlparser, which it
does not use. [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
16 changes: 16 additions & 0 deletions src/bcm2835_raw_uart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# bcm2835_raw_uart ChangeLog

Changes of `bcm2835_raw_uart`, the kernel module for the UART of the radio
module on the Raspberry Pi. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`MODULE_VERSION`).

## 1.12

* version at the start of this changelog.

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
18 changes: 18 additions & 0 deletions src/crypttool/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# crypttool ChangeLog

Changes of `crypttool`, the tool for the AES keys of the BidCos devices.
Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 1.0.0 (2026-11-02)

* first version with a version string (`version.sh`): `--version` prints it
together with the version of libelvutils (`-v` stays "validate").
[#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
21 changes: 21 additions & 0 deletions src/devicetypes/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# devicetypes ChangeLog

Changes of `devicetypes`, the device descriptions of the BidCos-RF and
BidCos-Wired devices. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
OpenCCU-Base release they are part of when it is published.

## Unreleased

* fix the limits of `SET_TEMPERATURE` (4.5 to 30.5 °C instead of 5.0 to
30.0 °C) of the HM-CC-RT-DN-BoM, as in the HM-CC-RT-DN, and of the virtual
heating group HM-CC-VG-1: setting 30.5 °C (on) or 4.5 °C (off) caused
warnings in integrations such as ioBroker or Home Assistant. [#221](https://github.com/OpenCCU/OpenCCU-Base/pull/221)
* fix the long-press action of the CFM-TW LED profile writing the
short-press register (`LONG_ACT_TYPE` at 0xA4 instead of 0x24). [#63](https://github.com/OpenCCU/OpenCCU-Base/pull/63)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
25 changes: 25 additions & 0 deletions src/eq3_char_loop/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# eq3_char_loop ChangeLog

Changes of `eq3_char_loop`, the kernel module that provides the device nodes
through which multimacd shares the radio module. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`MODULE_VERSION`).

## 1.6 (2026-10-03)

* hang up the connections of rfd and the HmIP server when multimacd (the
master) exits: they got attached to the next multimacd without it knowing,
wrote into a buffer nobody read and could block for ever, even against
SIGKILL. Such a connection now fails with `ENODEV`/`POLLHUP` until it is
opened again. [#112](https://github.com/OpenCCU/OpenCCU-Base/pull/112)

## 1.5 (2026-09-05)

* update to version 1.5, including compatibility with Linux 6.
[#22](https://github.com/OpenCCU/OpenCCU-Base/pull/22)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
17 changes: 17 additions & 0 deletions src/eq3configcmd/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# eq3configcmd ChangeLog

Changes of `eq3configcmd`, the command line tool for the configuration of
LAN gateways and radio modules. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 1.0.0 (2026-11-02)

* first version with a version string (`version.sh`): `-v` / `--version`
prints it together with the version of libeq3config. [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
18 changes: 18 additions & 0 deletions src/eq3configd/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# eq3configd ChangeLog

Changes of `eq3configd`, the daemon that answers the network configuration
protocol of eQ-3's tools (e.g. the finder of LAN gateways). Newest version
first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 1.0.0 (2026-11-02)

* first version with a version string (`version.sh`): `-v` / `--version`
prints it together with the version of libelvutils. [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
18 changes: 18 additions & 0 deletions src/hmipserver/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# hmipserver ChangeLog

Changes of `hmipserver`, the HmIP server (`HMIPServer.jar`) of eQ-3, which
is only provided as a binary. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
OpenCCU-Base release they are part of when it is published.

## Unreleased

* update `HMIPServer.jar` to the build of 2026-10-08 (build 5936, version
1.5.1-SNAPSHOT) from eQ-3: avoid a security counter update with invalid
values.

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
8 changes: 4 additions & 4 deletions src/hs485d/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# hs485d ChangeLog

Changes of `hs485d`, the BidCos-Wired interface process, including the
changes of the libraries it is built with (libXmlRpc, libhsscomm,
libelvutils, libLanDeviceUtils, libUnifiedLanComm, libxmlparser). Newest
version first.
Changes of `hs485d`, the BidCos-Wired interface process. Newest version
first. Up to 1.4.0 the entries include the changes of the libraries it is
built with; since then these are in the changelogs of the libraries
(`src/lib*/CHANGELOG.md`).

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh` and
Expand Down
18 changes: 18 additions & 0 deletions src/hs485dLoader/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# hs485dLoader ChangeLog

Changes of `hs485dLoader`, the loader that writes the Wired interfaces into
`InterfacesList.xml` and starts hs485d. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 1.0.0 (2026-11-02)

* first version with a version string (`version.sh`): `-v` / `--version`
prints it together with the version of libelvutils. hs485dLoader no longer
links libxmlparser, which it does not use. [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
30 changes: 30 additions & 0 deletions src/hss_led/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# hss_led ChangeLog

Changes of `hss_led`, the LED controller and status monitor of the CCU
(`hss_ledctl` is its client invocation). Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 2.3.0 (2026-11-02)

* first version kept in `version.sh` (the version was a fixed "2.3" before).
`--version` / `-V` also prints the versions of the libraries it uses
(libXmlRpc, libelvutils); hss_led no longer links libxmlparser, which it
does not use. [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)
* fix the UDP channel no longer working once its socket got a file
descriptor of 1024 or more: it waits with `poll()` instead of `select()`.
([#285](https://github.com/OpenCCU/OpenCCU-Base/pull/285), fixes [#178](https://github.com/OpenCCU/OpenCCU-Base/issues/178))
* report an active `/etc/config/disableLED` lock in the radio LED status
(`disabled=0|1` in the RPI-RF-MOD status reply) and mention it in the
`hss_ledctl` help: with the lock, the LED stays off, manual overrides
included. ([#203](https://github.com/OpenCCU/OpenCCU-Base/pull/203), refs
[OpenCCU/OpenCCU#4443](https://github.com/OpenCCU/OpenCCU/issues/4443))
* run the LED controller and the status calculation in one process, with
`hss_ledctl` as its client invocation, explicit LED-class target selection
and a minimal recovery build of the same controller. [#59](https://github.com/OpenCCU/OpenCCU-Base/pull/59)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
20 changes: 20 additions & 0 deletions src/libLanDeviceUtils/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# libLanDeviceUtils ChangeLog

Changes of `libLanDeviceUtils`, the library for the LAN devices (gateways)
of rfd, hs485d and eq3configcmd. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 1.0.0 (2026-11-02)

* first version with a version string (`version.sh`), returned by
`landeviceutils_version()`. [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)
* fix the UDP datagram sender failing once a descriptor was 1024 or more: it
waits with `poll()` instead of `select()`.
([#285](https://github.com/OpenCCU/OpenCCU-Base/pull/285), fixes [#178](https://github.com/OpenCCU/OpenCCU-Base/issues/178))

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
17 changes: 17 additions & 0 deletions src/libUnifiedLanComm/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# libUnifiedLanComm ChangeLog

Changes of `libUnifiedLanComm`, the library for the connection to the LAN
gateways (HM-LGW, HMW-LGW) of rfd and hs485d. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`version.sh`).

## 1.0.0 (2026-11-02)

* first version with a version string (`version.sh`), returned by
`unifiedlancomm_version()`. [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
48 changes: 48 additions & 0 deletions src/libXmlRpc/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# libXmlRpc ChangeLog

Changes of `libXmlRpc`, the XML-RPC and BIN-RPC library of rfd, hs485d,
hss_led, SetInterfaceClock, tclrpc and ReGaHss. Newest version first.

Changes not yet released are collected under `Unreleased` and get the
version and date with the next version bump (`XMLRPC_VERSION_NUMBER` in
`src/xmlrpc_version.h`).

## Unreleased

* add `xmlrpc_version()`, which returns the version of the loaded library
(`XMLRPC_VERSION` still reads "XMLRPC++ 0.12"). [#294](https://github.com/OpenCCU/OpenCCU-Base/pull/294)
* fix the RPC server no longer answering, or the process aborting, once a
socket got a file descriptor of 1024 or more: the dispatcher waits with
`poll()` instead of `select()`. ([#285](https://github.com/OpenCCU/OpenCCU-Base/pull/285), fixes [#178](https://github.com/OpenCCU/OpenCCU-Base/issues/178))
* an interrupted `select()` (e.g. by a stop signal) is no longer logged as an
error. [#281](https://github.com/OpenCCU/OpenCCU-Base/pull/281)
* fix an RPC method reading freed memory when a call has fewer arguments than
the method reads: room for 8 more arguments is reserved before every call,
so missing arguments can no longer move earlier ones.
([#271](https://github.com/OpenCCU/OpenCCU-Base/pull/271), fixes [#167](https://github.com/OpenCCU/OpenCCU-Base/issues/167))

## 0.12 (2026-10-13)

* fix a crash (SIGSEGV) of the server on a deeply nested value, reachable
with a single unauthenticated request: arrays and structs are parsed up to
64 levels deep, a deeper value is rejected. [#189](https://github.com/OpenCCU/OpenCCU-Base/pull/189)
* fix out-of-bounds reads of the BIN-RPC deserializer on invalid length
fields: such a request is rejected instead of crashing the server.
[#140](https://github.com/OpenCCU/OpenCCU-Base/pull/140)

## 0.11 (2026-10-07)

* fix a crash (SIGSEGV) of the server on a `system.multicall` nested in
another one: a nested `system.multicall` is rejected with a fault, as the
specification requires. [#138](https://github.com/OpenCCU/OpenCCU-Base/pull/138)

## 0.10 (2026-09-07)

* fix a crash of the RPC client when a reconnect failed: the connection was
removed twice from the dispatcher.
([#27](https://github.com/OpenCCU/OpenCCU-Base/pull/27), fixes [OpenCCU/OpenCCU#4138](https://github.com/OpenCCU/OpenCCU/issues/4138))

## Older versions

Changes of earlier versions are only recorded in the git history of this
repository.
Loading