aspic / breezectl
breezectl
breeze-core control for every machine that isn't
the server: your air conditioners from any terminal — Linux, macOS, the
BSDs, Termux, Windows — with saved logins you can revoke one by one.
# Linux, macOS, the BSDs, Termux curl -fsSL https://aspic.salataputarica.hr.eu.org/breezectl/install.sh | sh # Windows, in PowerShell irm https://aspic.salataputarica.hr.eu.org/breezectl/install.ps1 | iex
Either one checks every file against
SHA256SUMS before installing it, puts
breezectl on your PATH, sets up tab completion, and then
pairs this machine with your server: its address, its API key, and an
approval on its own network.
Installing
What the installers change, and nothing else:| Linux, macOS, BSD | ~/.local/bin/breezectl
and its completions; for root, /usr/local. One marked
block in your shell's startup file — zsh, bash, sh or fish — added only
when it is needed, with a copy of the file as it was beside it |
| Termux | $PREFIX/bin, which is already on
PATH: no startup file is touched |
| Windows | %LOCALAPPDATA%\Programs\breezectl,
and that folder's bin appended to your PATH — never
the system's. The value is read and written raw, so
%VARIABLES% stay unexpanded and nothing is cut short, and
it is saved to a file first. Tab completion goes into your profile only
if you say yes |
| taking it out | sh install.sh --uninstall, or
-Uninstall on Windows: every file, the block, the PATH
entry |
# read it first, then run it curl -fsSLO https://aspic.salataputarica.hr.eu.org/breezectl/install.sh less install.sh sh install.sh --dry-run # says what it would do, does none of it sh install.sh # options after `sh -s --` when piped: --no-login, --url ADDRESS, --bin DIR, --no-rc curl -fsSL https://aspic.salataputarica.hr.eu.org/breezectl/install.sh | sh -s -- --no-login # PowerShell with options & ([scriptblock]::Create((irm https://aspic.salataputarica.hr.eu.org/breezectl/install.ps1))) -NoLogin
By hand, it is one file: breezectl
(POSIX sh, needs curl) or
breezectl.ps1 (Windows PowerShell 5.1
or PowerShell 7). Check it against
SHA256SUMS, put it on your PATH, and
run breezectl login.
It needs a server. breezectl is a client of Breeze Core, which runs on your network and does the talking to the air conditioners. Pairing works the way the app's does: a code that an administrator approves on the server's network, then a credential for this machine alone.
What you get
breezectl status breezectl 'living room' cool 23 both auto turbo 30m breezectl kitchen off breezectl timers start bedroom 06:45 tomorrow breezectl diag
| the same words | as breeze-core control on the
server, and the same messages when a unit refuses something, so a
script written for one runs with the other |
| logins | one per server, several servers, each a device token of its own — readable only by you, encrypted for your account on Windows, and never on a command line where another user could see it |
| timers | off after a while, on at a set day and time, listed and cancelled |
| when it misbehaves | breezectl diag: the
server's own checks, from this machine's side of the network |
| tab completion | zsh, bash, fish and PowerShell: commands, settings, servers and your units' names |
| what it runs on | any POSIX sh — dash, bash, busybox, ksh, zsh — with curl; Windows PowerShell 5.1 and PowerShell 7 |