v0.14.20
This commit is contained in:
Generated
+1
-1
@@ -700,7 +700,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "gree-controller"
|
||||
version = "0.14.19"
|
||||
version = "0.14.20"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"aes-gcm",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "gree-controller"
|
||||
version = "0.14.19"
|
||||
version = "0.14.20"
|
||||
edition = "2021"
|
||||
authors = ["GREE Controller contributors"]
|
||||
description = "Standalone local GREE HVAC controller with Web UI, SQLite and Home Assistant sensor support"
|
||||
|
||||
+10
-10
@@ -1,17 +1,17 @@
|
||||
8c09c8a2203e7b42ba62cbf7a354e57cb70941a5ecc77949368770e65fe9c8f7 ./.dockerignore
|
||||
de0793949cf01d27d903653226ecc9b5f72523d8711f20bcab022cf42c4c4ed0 ./.env.example
|
||||
a4ec3874a2e3ab1bad28fb40bb620f7b01f64d01ad9b699306bf70ada31227db ./.gitignore
|
||||
dedaf21f819781eec228f2c0157763cede750924702188a0364c8ebb9883fd5c ./Cargo.lock
|
||||
8d55d4634d79e78441cfbc4ffb7b4670b72e3db5479635b1c00c1a8b457c0c11 ./Cargo.toml
|
||||
1cef28b62ca6f6a01736fc67d9639c909274b2a244c9276ebaacb51ffc662a3a ./Cargo.lock
|
||||
6e563ec8c215326660c9e63ec7f079e5b892cfb58abd72cf55ac127f02ae3938 ./Cargo.toml
|
||||
19b2943504acb8f8de280f873a8dbec4bb6ebbe3870b158f5655d4fb8c298f5f ./LICENSE
|
||||
31e586f1b862749e1b84b9377e84a4c7782b926b8750a32288c450b8f585e0b8 ./README.md
|
||||
261aaaca41949e089df4a9534a81963f773e30f34e19969c1c0ca1ca6a8af13f ./SOURCE_MANIFEST.sha256
|
||||
046205c6a991bca9b514e507a35cebb875d3152d09a7cb02dfb69b5ac16eb640 ./README.md
|
||||
7f9303a802cd5a7e23fdbe95b4625c39878f0331f3eb7b5f196255af46d0a2c5 ./SOURCE_MANIFEST.sha256
|
||||
5302570299af2c2650bada12e123f598c5db8009949c75761385f73ed57343c5 ./build.rs
|
||||
5dfcac9595844437fbc8f0bc18919cfced53b3d54983cddaa0cad6668614dd7b ./docs/API.md
|
||||
5a673f26300c50aa393690332aed3ff6c8266a119d6a24dd4908ca6b19aa12a0 ./docs/API.md
|
||||
f21d732eb1147f8f3167d2172cdf0b57e61edabdfecbaf97811d46c5bff7e47a ./docs/FLOW.md
|
||||
46530da47203469fd6212fe6d77381204a8d3d6947e8c0554245a90c4206c824 ./docs/openapi.json
|
||||
8350a8466a1a9fec13cfc925ed8ecc3f441e4408c091aef2b820b53e1fa0e408 ./docs/openapi.json
|
||||
c65aa543d2e99f8f7d52736307b07ebd182597d80124661d53a16bb23f6f1118 ./ha-addon/.env.example
|
||||
8e500c57acbd92551c503cb010ae992c1aac524b3720b1d40043d1c8a22ccac5 ./ha-addon/Dockerfile
|
||||
ef8ee116505962c7e32c269c5131a99ed58da24e529246ed7e7118614fdbded8 ./ha-addon/Dockerfile
|
||||
adf7ff248d782a3b1cba82b8789c57b6849ddaaaf5fbc108af75e18b1534a885 ./ha-addon/README.md
|
||||
dd9291b12afade6fc20d66e80a5513251270e18e4c265260b2bbbe393a5a94c4 ./ha-addon/build.sh
|
||||
082dfeb6326f3e1b9841ccf7f2954117ecdf0aa1a90b0aef1e6a1960dacdecbf ./ha-addon/home-assistant/README.md
|
||||
@@ -23,7 +23,7 @@ b7f0873109c52be9d7f09bea3dffc416103c50085e1f0680d11661a969479898 ./ha-addon/hom
|
||||
41a8958a6fe6d10e5679c95ac34832583a2a15ecfd67d09b4e094a83d06f5c47 ./ha-addon/home-assistant/custom_components/gree_controller/coordinator.py
|
||||
5a96fe8f5c035c34f1339370270cd078056202d09e236dec75735be11de92a7d ./ha-addon/home-assistant/custom_components/gree_controller/entity_map.py
|
||||
c4fb75c246db651087900ebfc2291ff41ac87652cd6194fc0b776b0005c1cbcf ./ha-addon/home-assistant/custom_components/gree_controller/icon.png
|
||||
55d35c83df15e87c1e8a44120dc4bf8187b29cc880d8817d857bc15976114c51 ./ha-addon/home-assistant/custom_components/gree_controller/manifest.json
|
||||
e5ae5e7c1659ba7555801a35e8542f4b8b89d00e4b3d14eae2794fc731a226c5 ./ha-addon/home-assistant/custom_components/gree_controller/manifest.json
|
||||
c52a484b671ce738ecc00228a1db19a5d703f69ab27530c2896a5c2ae3b4a96f ./ha-addon/home-assistant/custom_components/gree_controller/number.py
|
||||
39c4309001b75abb56234f05662bc06e077054986876f1927937edbce528ec95 ./ha-addon/home-assistant/custom_components/gree_controller/select.py
|
||||
cca65482e36d48035aca178121a378fe7d578d600acff267ae81a6399c0da653 ./ha-addon/home-assistant/custom_components/gree_controller/sensor.py
|
||||
@@ -31,10 +31,10 @@ cca65482e36d48035aca178121a378fe7d578d600acff267ae81a6399c0da653 ./ha-addon/hom
|
||||
6bddb7b4620021ecd2099a86a77ef5c7f2c2dcd3d07d5db4e7b4c4ce6d3e8c03 ./ha-addon/home-assistant/custom_components/gree_controller/translations/en.json
|
||||
13f30e2dcdcedbd1b6c3f99c2335e0487108fd72c8e86922368b84f2fa2038ae ./ha-addon/home-assistant/custom_components/gree_controller/translations/pl.json
|
||||
c5fc5c87273d82d2834a0a5a365c821a416413ed509613441e24e4dc3507c4d2 ./ha-addon/home-assistant/generated/gree_controller_entities.example.json
|
||||
88e6f4f911b3454fbdfc7d5cb9ea405d850f476f95f261e2fce03f45d4e4d6e7 ./ha-addon/repository/gree-controller/CHANGELOG.md
|
||||
a256854c7b0200b3458e9ebdbc56c3f61c0dd8c62cc61a442ff038a6bdf40af8 ./ha-addon/repository/gree-controller/CHANGELOG.md
|
||||
1b5599195329cc3e643c23aa1caadcec80f133e8e515eec7d92b9f3cbda5b80b ./ha-addon/repository/gree-controller/DOCS.md
|
||||
c3db302f38d26dc9f8caf37a1a8a07a1334cc07ae301d452f2940a5ec5915719 ./ha-addon/repository/gree-controller/README.md
|
||||
78898b62a10a4929fee6f1ccd1778620397a2aa55eb639d99e2061a7b58a57d6 ./ha-addon/repository/gree-controller/config.yaml
|
||||
756a47c16ff9e52daa5ae6c539c8eba6b3bdb31aa932ac677c1c721d24c9dc09 ./ha-addon/repository/gree-controller/config.yaml
|
||||
3aae6cdae4c3aaab7786a9575e7093b7e2c5b69288167075f4b7475611691a6b ./ha-addon/repository/gree-controller/topologia-ha-vlan-gree-pl.png
|
||||
0d0b42a7639b128946eec379175436fa1f150294f39d2dfd169077bfa87fd14d ./ha-addon/repository/gree-controller/topology-ha-vlan-gree-en.png
|
||||
2272740b185e9520e948f74b8f45cf98b8b5fd28c93bdee760da626f91fe5c2a ./ha-addon/repository/gree-controller/translations/en.yaml
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
Self-hosted controller for GREE-compatible air conditioners with a local Web UI, thermostat zones, schedules, Home Assistant integration, history, notifications and a documented HTTP/WebSocket API.
|
||||
|
||||
**Version: 0.14.19**
|
||||
**Version: 0.14.20**
|
||||
|
||||
Version 0.14.19 speeds up amd64/arm64 Home Assistant image builds by cross-compiling Rust on the build host with persistent Cargo caches while preserving the selected Alpine or Debian Trixie target runtime. It also deduplicates the GREE Cloud runtime-status request during the initial HTTP/WebSocket bootstrap.
|
||||
Version 0.14.20 fixes the ARM cross-build bootstrap and improves Docker cache reuse: target Rust stdlib/toolchain setup is cached before source changes, dependency fetching is shared across architectures, and compiled target caches are separated per target architecture. Alpine/musl and Debian Trixie/glibc remain selected through `DISTRO` in the existing `build.sh` workflow.
|
||||
|
||||
> [Full API reference](docs/API.md) — authentication, every endpoint, request bodies, response models, WebSocket events and examples.
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
8c09c8a2203e7b42ba62cbf7a354e57cb70941a5ecc77949368770e65fe9c8f7 ./.dockerignore
|
||||
de0793949cf01d27d903653226ecc9b5f72523d8711f20bcab022cf42c4c4ed0 ./.env.example
|
||||
a4ec3874a2e3ab1bad28fb40bb620f7b01f64d01ad9b699306bf70ada31227db ./.gitignore
|
||||
dedaf21f819781eec228f2c0157763cede750924702188a0364c8ebb9883fd5c ./Cargo.lock
|
||||
8d55d4634d79e78441cfbc4ffb7b4670b72e3db5479635b1c00c1a8b457c0c11 ./Cargo.toml
|
||||
1cef28b62ca6f6a01736fc67d9639c909274b2a244c9276ebaacb51ffc662a3a ./Cargo.lock
|
||||
6e563ec8c215326660c9e63ec7f079e5b892cfb58abd72cf55ac127f02ae3938 ./Cargo.toml
|
||||
19b2943504acb8f8de280f873a8dbec4bb6ebbe3870b158f5655d4fb8c298f5f ./LICENSE
|
||||
31e586f1b862749e1b84b9377e84a4c7782b926b8750a32288c450b8f585e0b8 ./README.md
|
||||
046205c6a991bca9b514e507a35cebb875d3152d09a7cb02dfb69b5ac16eb640 ./README.md
|
||||
5302570299af2c2650bada12e123f598c5db8009949c75761385f73ed57343c5 ./build.rs
|
||||
5dfcac9595844437fbc8f0bc18919cfced53b3d54983cddaa0cad6668614dd7b ./docs/API.md
|
||||
5a673f26300c50aa393690332aed3ff6c8266a119d6a24dd4908ca6b19aa12a0 ./docs/API.md
|
||||
f21d732eb1147f8f3167d2172cdf0b57e61edabdfecbaf97811d46c5bff7e47a ./docs/FLOW.md
|
||||
46530da47203469fd6212fe6d77381204a8d3d6947e8c0554245a90c4206c824 ./docs/openapi.json
|
||||
8350a8466a1a9fec13cfc925ed8ecc3f441e4408c091aef2b820b53e1fa0e408 ./docs/openapi.json
|
||||
c65aa543d2e99f8f7d52736307b07ebd182597d80124661d53a16bb23f6f1118 ./ha-addon/.env.example
|
||||
8e500c57acbd92551c503cb010ae992c1aac524b3720b1d40043d1c8a22ccac5 ./ha-addon/Dockerfile
|
||||
ef8ee116505962c7e32c269c5131a99ed58da24e529246ed7e7118614fdbded8 ./ha-addon/Dockerfile
|
||||
adf7ff248d782a3b1cba82b8789c57b6849ddaaaf5fbc108af75e18b1534a885 ./ha-addon/README.md
|
||||
dd9291b12afade6fc20d66e80a5513251270e18e4c265260b2bbbe393a5a94c4 ./ha-addon/build.sh
|
||||
082dfeb6326f3e1b9841ccf7f2954117ecdf0aa1a90b0aef1e6a1960dacdecbf ./ha-addon/home-assistant/README.md
|
||||
@@ -22,7 +22,7 @@ b7f0873109c52be9d7f09bea3dffc416103c50085e1f0680d11661a969479898 ./ha-addon/hom
|
||||
41a8958a6fe6d10e5679c95ac34832583a2a15ecfd67d09b4e094a83d06f5c47 ./ha-addon/home-assistant/custom_components/gree_controller/coordinator.py
|
||||
5a96fe8f5c035c34f1339370270cd078056202d09e236dec75735be11de92a7d ./ha-addon/home-assistant/custom_components/gree_controller/entity_map.py
|
||||
c4fb75c246db651087900ebfc2291ff41ac87652cd6194fc0b776b0005c1cbcf ./ha-addon/home-assistant/custom_components/gree_controller/icon.png
|
||||
55d35c83df15e87c1e8a44120dc4bf8187b29cc880d8817d857bc15976114c51 ./ha-addon/home-assistant/custom_components/gree_controller/manifest.json
|
||||
e5ae5e7c1659ba7555801a35e8542f4b8b89d00e4b3d14eae2794fc731a226c5 ./ha-addon/home-assistant/custom_components/gree_controller/manifest.json
|
||||
c52a484b671ce738ecc00228a1db19a5d703f69ab27530c2896a5c2ae3b4a96f ./ha-addon/home-assistant/custom_components/gree_controller/number.py
|
||||
39c4309001b75abb56234f05662bc06e077054986876f1927937edbce528ec95 ./ha-addon/home-assistant/custom_components/gree_controller/select.py
|
||||
cca65482e36d48035aca178121a378fe7d578d600acff267ae81a6399c0da653 ./ha-addon/home-assistant/custom_components/gree_controller/sensor.py
|
||||
@@ -30,10 +30,10 @@ cca65482e36d48035aca178121a378fe7d578d600acff267ae81a6399c0da653 ./ha-addon/hom
|
||||
6bddb7b4620021ecd2099a86a77ef5c7f2c2dcd3d07d5db4e7b4c4ce6d3e8c03 ./ha-addon/home-assistant/custom_components/gree_controller/translations/en.json
|
||||
13f30e2dcdcedbd1b6c3f99c2335e0487108fd72c8e86922368b84f2fa2038ae ./ha-addon/home-assistant/custom_components/gree_controller/translations/pl.json
|
||||
c5fc5c87273d82d2834a0a5a365c821a416413ed509613441e24e4dc3507c4d2 ./ha-addon/home-assistant/generated/gree_controller_entities.example.json
|
||||
88e6f4f911b3454fbdfc7d5cb9ea405d850f476f95f261e2fce03f45d4e4d6e7 ./ha-addon/repository/gree-controller/CHANGELOG.md
|
||||
a256854c7b0200b3458e9ebdbc56c3f61c0dd8c62cc61a442ff038a6bdf40af8 ./ha-addon/repository/gree-controller/CHANGELOG.md
|
||||
1b5599195329cc3e643c23aa1caadcec80f133e8e515eec7d92b9f3cbda5b80b ./ha-addon/repository/gree-controller/DOCS.md
|
||||
c3db302f38d26dc9f8caf37a1a8a07a1334cc07ae301d452f2940a5ec5915719 ./ha-addon/repository/gree-controller/README.md
|
||||
78898b62a10a4929fee6f1ccd1778620397a2aa55eb639d99e2061a7b58a57d6 ./ha-addon/repository/gree-controller/config.yaml
|
||||
756a47c16ff9e52daa5ae6c539c8eba6b3bdb31aa932ac677c1c721d24c9dc09 ./ha-addon/repository/gree-controller/config.yaml
|
||||
3aae6cdae4c3aaab7786a9575e7093b7e2c5b69288167075f4b7475611691a6b ./ha-addon/repository/gree-controller/topologia-ha-vlan-gree-pl.png
|
||||
0d0b42a7639b128946eec379175436fa1f150294f39d2dfd169077bfa87fd14d ./ha-addon/repository/gree-controller/topology-ha-vlan-gree-en.png
|
||||
2272740b185e9520e948f74b8f45cf98b8b5fd28c93bdee760da626f91fe5c2a ./ha-addon/repository/gree-controller/translations/en.yaml
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
# GREE Controller API reference
|
||||
|
||||
HTTP and WebSocket API for GREE Controller **0.14.19**.
|
||||
HTTP and WebSocket API for GREE Controller **0.14.20**.
|
||||
|
||||
[← Main documentation](../README.md)
|
||||
|
||||
@@ -239,7 +239,7 @@ Response:
|
||||
{
|
||||
"status": "ok",
|
||||
"name": "gree-controller",
|
||||
"version": "0.14.19",
|
||||
"version": "0.14.20",
|
||||
"uptime_seconds": 1234,
|
||||
"control_ready": true,
|
||||
"time": "2026-08-30T06:54:00Z"
|
||||
@@ -302,7 +302,7 @@ Returns the initial Web UI snapshot:
|
||||
"control_plan": {"generated_at": "2026-09-04T08:00:00Z", "zones": [], "rules": []},
|
||||
"control_plan_revision": 42,
|
||||
"system": {
|
||||
"version": "0.14.19",
|
||||
"version": "0.14.20",
|
||||
"uptime_seconds": 1234,
|
||||
"auth_required": false,
|
||||
"control_ready": true,
|
||||
|
||||
+3
-3
File diff suppressed because one or more lines are too long
+27
-11
@@ -9,17 +9,28 @@ FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
|
||||
FROM --platform=$BUILDPLATFORM rust:${RUST_VERSION}-trixie AS builder-trixie
|
||||
COPY --from=xx / /
|
||||
WORKDIR /src
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends clang lld llvm file pkg-config
|
||||
ARG TARGETPLATFORM
|
||||
RUN xx-apt-get update \
|
||||
&& xx-apt-get install -y --no-install-recommends xx-c-essentials \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& xx-cargo --version >/dev/null
|
||||
&& apt-get install -y --no-install-recommends clang lld llvm file pkg-config \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Fetch Rust dependencies before TARGETPLATFORM enters the cache chain, so the
|
||||
# same registry/git cache is reused by amd64 and arm64 builds.
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
RUN --mount=type=cache,id=gree-controller-cargo-registry,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,id=gree-controller-cargo-git,target=/usr/local/cargo/git \
|
||||
cargo fetch --locked
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG TARGETARCH
|
||||
# Prepare the target C sysroot and Rust stdlib in a stable layer. Do not call
|
||||
# the xx-cargo version probe: xx-cargo is a build wrapper and that invocation
|
||||
# makes Cargo receive a target option without a subcommand.
|
||||
RUN xx-apt-get update \
|
||||
&& xx-apt-get install -y --no-install-recommends xx-c-essentials \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& rustup target add "$(xx-cargo --print-target-triple)"
|
||||
|
||||
COPY build.rs ./
|
||||
COPY src ./src
|
||||
COPY web ./web
|
||||
@@ -28,7 +39,7 @@ COPY presets ./presets
|
||||
COPY docs/openapi.json ./docs/openapi.json
|
||||
RUN --mount=type=cache,id=gree-controller-cargo-registry,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,id=gree-controller-cargo-git,target=/usr/local/cargo/git \
|
||||
--mount=type=cache,id=gree-controller-target-trixie,target=/src/target \
|
||||
--mount=type=cache,id=gree-controller-target-trixie-${TARGETARCH},target=/src/target \
|
||||
set -eux; \
|
||||
xx-cargo build --locked --release --target-dir /src/target; \
|
||||
binary="/src/target/$(xx-cargo --print-target-triple)/release/gree-controller"; \
|
||||
@@ -40,13 +51,18 @@ FROM --platform=$BUILDPLATFORM rust:${RUST_VERSION}-alpine AS builder-alpine
|
||||
COPY --from=xx / /
|
||||
WORKDIR /src
|
||||
RUN apk add --no-cache clang lld llvm file pkgconf
|
||||
ARG TARGETPLATFORM
|
||||
RUN xx-apk add --no-cache xx-c-essentials \
|
||||
&& xx-cargo --version >/dev/null
|
||||
|
||||
# Keep dependency fetching architecture-independent here as well.
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
RUN --mount=type=cache,id=gree-controller-cargo-registry,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,id=gree-controller-cargo-git,target=/usr/local/cargo/git \
|
||||
cargo fetch --locked
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG TARGETARCH
|
||||
RUN xx-apk add --no-cache xx-c-essentials \
|
||||
&& rustup target add "$(xx-cargo --print-target-triple)"
|
||||
|
||||
COPY build.rs ./
|
||||
COPY src ./src
|
||||
COPY web ./web
|
||||
@@ -55,7 +71,7 @@ COPY presets ./presets
|
||||
COPY docs/openapi.json ./docs/openapi.json
|
||||
RUN --mount=type=cache,id=gree-controller-cargo-registry,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,id=gree-controller-cargo-git,target=/usr/local/cargo/git \
|
||||
--mount=type=cache,id=gree-controller-target-alpine,target=/src/target \
|
||||
--mount=type=cache,id=gree-controller-target-alpine-${TARGETARCH},target=/src/target \
|
||||
set -eux; \
|
||||
xx-cargo build --locked --release --target-dir /src/target; \
|
||||
binary="/src/target/$(xx-cargo --print-target-triple)/release/gree-controller"; \
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"domain": "gree_controller",
|
||||
"name": "GREE Controller",
|
||||
"version": "0.14.19",
|
||||
"version": "0.14.20",
|
||||
"config_flow": true,
|
||||
"integration_type": "hub",
|
||||
"iot_class": "local_polling",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## 0.14.20
|
||||
|
||||
- Fixes ARM cross-build startup by removing the invalid `xx-cargo --version` probe; `xx-cargo build` remains the cross-compilation entry point.
|
||||
- Installs the Rust target standard library in a cacheable layer before project sources are copied, so source-only changes do not redownload/reinstall it.
|
||||
- Fetches Cargo dependencies before target-specific setup so amd64/arm64 reuse the same registry/git cache.
|
||||
- Separates compiled `target/` caches by target architecture to avoid multi-platform build contention while retaining incremental dependency reuse.
|
||||
- Keeps the existing `build.sh` workflow and `DISTRO=alpine` (musl/Alpine) versus `DISTRO=trixie` (GNU/glibc Debian Trixie) runtime selection unchanged.
|
||||
|
||||
## 0.14.19
|
||||
|
||||
- Speeds up multi-architecture OCI builds by running Rust/Cargo on `BUILDPLATFORM` and cross-compiling to amd64/arm64 instead of compiling ARM under QEMU.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: "GREE Controller"
|
||||
version: "0.14.19"
|
||||
version: "0.14.20"
|
||||
slug: "gree_controller"
|
||||
description: "Local GREE HVAC controller with Web UI and Home Assistant integration"
|
||||
url: "https://git.linuxiarz.pl/gru/gree-controller-ha-addon/"
|
||||
|
||||
Reference in New Issue
Block a user