harbour-aira 0.1.0: client Sailfish per pompa di calore Aira (bridge HTTP + stato e comandi ACS)

This commit is contained in:
Carlo
2026-10-09 21:00:59 +02:00
commit 15963039ea
27 changed files with 1686 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
[Desktop Entry]
Name=Aira
Name[it_IT]=Aira
Comment=Control your Aira heat pump
Comment[it_IT]=Controlla la pompa di calore Aira
Exec=harbour-aira
Icon=harbour-aira
Type=Application
X-Nemo-Application-Type=silica-qt5
Categories=Utility;
# Profilo SailJail esplicito: senza [X-Sailjail] la sandbox di Sailfish 5.x usa
# il profilo di default, che NASCONDE ~/.config/harbour -> indirizzo e token
# non sarebbero persistenti quando l'app viene avviata dal launcher.
# OrganizationName/ApplicationName devono combaciare con
# QCoreApplication::setOrganizationName/setApplicationName in main.cpp.
# Internet e' necessario: l'app parla con il bridge via HTTP.
[X-Sailjail]
Permissions=Internet
OrganizationName=harbour
ApplicationName=aira
+67
View File
@@ -0,0 +1,67 @@
Name: harbour-aira
Summary: Control your Aira heat pump through a local bridge
Version: 0.1.0
Release: 1
Group: Qt/Qt
License: MIT
URL: https://git.hackatoniclife.com/kaneda/harbour-aira
Source0: %{name}-%{version}.tar.gz
Source1: %{name}.desktop
Requires: sailfishsilica-qt5 >= 0.10.9
BuildRequires: pkgconfig(sailfishapp) >= 1.0.2
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Qml)
BuildRequires: pkgconfig(Qt5Quick)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: desktop-file-utils
%global debug_package %{nil}
%description
Native Sailfish OS client for an Aira Home heat pump.
It does not talk to the Aira cloud directly: the cloud API is gRPC over HTTP/2
and Qt 5.6 has no HTTP/2. A small bridge on the user's server (Python,
pyairahome) keeps the credentials and exposes the plant as JSON over HTTP/1.1.
The app shows the current state and sends the hot-water commands.
Address and token of the bridge live in the app settings (AppConfigLocation);
no personal data is stored in the binary.
%changelog
* Fri Oct 09 2026 Carlo <carlo@carlobaratto.it> - 0.1.0-1
- prima release: stato impianto, obiettivo ACS, boost ACS
%prep
%setup -q -n %{name}-%{version}
%build
%qmake5
make %{?_smp_mflags}
%install
make install INSTALL_ROOT=%{buildroot}
mkdir -p %{buildroot}%{_datadir}/applications
# Il desktop file si cerca con find: sfdk usa i sorgenti live (shadow build) e
# la cartella sorgente puo' chiamarsi harbour-aira-0.1.0 (tarball), harbour-aira
# (clone) o harbour-aira-main (zip di Gitea).
DESKTOP=$(find %{_builddir}/.. -maxdepth 4 -name '%{name}.desktop' 2>/dev/null | head -1)
if [ -z "$DESKTOP" ] && [ -f %{SOURCE1} ]; then DESKTOP=%{SOURCE1}; fi
if [ -z "$DESKTOP" ]; then
echo "ERROR: %{name}.desktop not found" >&2
exit 1
fi
install -m 0644 "$DESKTOP" %{buildroot}%{_datadir}/applications/%{name}.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop || true
%files
%defattr(-,root,root,-)
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/86x86/apps/%{name}.png
%{_datadir}/icons/hicolor/108x108/apps/%{name}.png
%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
%{_datadir}/icons/hicolor/172x172/apps/%{name}.png
%{_datadir}/%{name}/qml