Short: Home Assistant for MUI, with guide Author: radi777 Uploader: thomas radeck gmail com (radi777, see note below) Type: comm/tcp Version: 0.9.1 Requires: dev/mui/MCC_NList-0.128.lha Architecture: m68k-amigaos Distribution: Aminet Kurz: Home Assistant am Amiga, mit Anleitung AmiHomeassist - your smart home from a real Amiga ================================================= Lights, sockets, blinds, sensors and thermostats from Home Assistant, arranged on dashboards of your own. A sidebar on the left with an icon per page, the contents of the selected page on the right in framed groups. One click on the switch flips the device. States are polled, so changes made elsewhere show up by themselves. You decide what appears and how it looks. A large Home Assistant setup easily has 900 entities and you want a dozen or two. So there is a picker with a suggestion you can overrule, and an editor where pages, groups and devices are put together freely. NEW IN 0.9.1 A manual: AmiHomeassist.guide, English and German in one file, with screenshots in the Pics drawer. Search in both device lists. All, None and Suggest act only on what the list shows. Apply no longer rebuilds your pages - newly chosen devices go onto the page of their room, unchosen ones go, everything else stays as you arranged it. It asks before more than 100 devices, and every save keeps the previous file as .bak. Crash when removing a page fixed. Currencies Latin-1 lacks now show as their ISO code (EUR, INR, RUB ...) instead of "?". NEW IN 0.9 History charts. A new widget kind for meters such as your power consumption: a bar chart of the last 30 days or 12 months, like the statistics cards in Home Assistant. The values come from Home Assistant's long-term statistics, which are only available over its WebSocket interface - so AmiHomeassist now speaks a small piece of WebSocket. One query is 1 to 3 KB and takes half a second on a 68030 with a plipbox. Charts are fetched at start, on Refresh and every ten minutes. They are drawn by a MUI class of their own - no third-party class to install, no FPU. The grid adapts to the height available, the date labels to the width. In the editor pick "History (days)" or "History (months)" as the kind. The shell version lists the same values: AmiHomeassistCLI HISTORY=sensor.energy MONTH Freeze on quit fixed. 0.8 switched to a larger stack through the C library; started from Workbench, the Amiga froze hard on quitting, no Guru. The program now switches the stack itself and switches it back before it ends. If you run 0.8, please update. Editor and main window stay on the same page: the editor opens where you are, and after closing it you are where you last worked. Refresh no longer jumps back to the first page. ALSO SINCE 0.8 Labels right-aligned with a colon and buttons of equal width in columns, a setting for "unknown"/"unavailable" values (show, grey out, hide), drag and drop in the editor, and a stack fix for real 68030 machines. WIDGET KINDS Switch light and switch - the toggle you click Indicator binary_sensor - window open or closed Number sensor with its unit Bar sensor with a fixed range, per cent or watts Blind cover - up, stop, down, and the position Thermostat climate - current and target temperature, colder, warmer, and the operating mode Text a caption History sensor - bar chart of the last 30 days or 12 months, for sensors with long-term statistics (a state_class) When you add a device the program suggests a kind, from its domain and device class. The editor lets you change it. EASY ON THE WIRE The full catalogue is fetched once. After that only the states of the devices actually on screen are polled. In a setup with 941 entities that is 1.4 KB instead of 55 KB per poll - 98 per cent less. On an A500 over a slow link that is the difference between usable and not. Memory grows on demand instead of sitting in fixed tables. REQUIREMENTS AmigaOS 2.0 or newer, 68020 or better, no FPU needed MUI 3.8 or newer NList.mcc and NListview.mcc from dev/mui/MCC_NList a TCP/IP stack offering bsdsocket.library Home Assistant reachable over plain http - https is not supported a long-lived access token from Home Assistant A shell version is included that works without MUI: list and switch devices, for scripts. The interface speaks English, German, Italian and Spanish. English is built in; the other three ship as catalogues and are loaded through locale.library. Device names, room names, units and states come from Home Assistant, so those are in your own language anyway. Full source is included, MIT licence - except muistubs.c, which comes from the amimcp project and is Apache 2.0; its licence text is in the archive. MUI's own developer headers are NOT included, as MUI's licence permits redistribution of the complete original archive only; the README says where to get them. Icons are Material Design Icons (Apache 2.0). The house logo belongs to the Home Assistant project, which is separate from and unaffiliated with this program. Italian and Spanish were not written by native speakers. The translation files are plain text in the Source drawer - corrections are welcome and need no recompilation. Tested on an A500 with PiStorm (Emu68), OS 3.2.3, MUI 3.8. This program is vibe coded. I described what it should do, an AI wrote the code, and I read, tested and decided what stayed in. The full source is in the archive, so you can judge for yourself. Note on the uploader address: it is written without the @ and the dot to keep address harvesters out. Put an @ before "gmail" and a dot in front of "com" and you have it. AmiHomeassist - dein Smarthome vom Amiga aus ============================================ Lampen, Steckdosen, Rollaeden, Sensoren und Heizungen aus Home Assistant, geordnet in eigenen Dashboards. Links eine Seitenleiste mit Symbolen, rechts der Inhalt der gewaehlten Seite in umrandeten Gruppen. Ein Klick auf den Schalter legt das Geraet um; der Zustand wird zyklisch nachgefuehrt, so dass Aenderungen von aussen von selbst erscheinen. Welche Geraete auftauchen und wie sie aussehen, bestimmst du. Eine grosse Home-Assistant-Installation hat schnell 900 Entitaeten, davon willst du ein bis zwei Dutzend. Also gibt es eine Auswahl mit einem Vorschlag zum Ueberstimmen und einen Editor, in dem Seiten, Gruppen und Geraete frei zusammengestellt werden. NEU IN 0.9.1 Eine Anleitung: AmiHomeassist.guide, Englisch und Deutsch in einer Datei, mit Bildschirmfotos in der Schublade Pics. Suche in beiden Geraetelisten. Alle, Keine und Vorschlag wirken nur auf das, was die Liste zeigt. Uebernehmen baut deine Seiten nicht mehr neu - neu gewaehlte Geraete kommen auf die Seite ihres Raums, abgewaehlte gehen, alles andere bleibt, wie du es angeordnet hast. Ab 100 Geraeten fragt es nach, und jedes Speichern hebt die alte Datei als .bak auf. Absturz beim Entfernen einer Seite behoben. Waehrungen, die Latin-1 nicht kennt, erscheinen als ISO-Code (EUR, INR, RUB ...) statt als "?". NEU IN 0.9 Verlaeufe. Eine neue Darstellungsart fuer Zaehler wie den Stromverbrauch: ein Balkendiagramm der letzten 30 Tage oder 12 Monate, wie die Statistik-Karten in Home Assistant. Die Werte kommen aus der Langzeitstatistik von Home Assistant, die es nur ueber die WebSocket-Schnittstelle gibt - AmiHomeassist spricht dafuer jetzt ein kleines Stueck WebSocket. Eine Abfrage ist 1 bis 3 KB gross und dauert auf einem 68030 mit plipbox eine halbe Sekunde. Geholt wird beim Start, bei "Aktualisieren" und alle zehn Minuten. Gezeichnet wird von einer eigenen MUI-Klasse - keine Fremdklasse, keine FPU. Das Raster passt sich der Hoehe an, die Datumsbeschriftung der Breite. Im Editor "Verlauf (Tage)" oder "Verlauf (Monate)" als Art waehlen. Die Shell-Fassung listet dieselben Werte: AmiHomeassistCLI HISTORY=sensor.strom MONTH Einfrieren beim Beenden behoben. 0.8 schaltete ueber die C-Bibliothek auf einen groesseren Stapel um; von der Workbench gestartet fror der Amiga beim Beenden hart ein, ohne Guru. Jetzt schaltet das Programm selbst um und vor dem Ende selbst zurueck. Wer 0.8 benutzt, sollte wechseln. Editor und Hauptfenster zeigen dieselbe Seite: der Editor oeffnet dort, wo man gerade ist, und nach dem Schliessen steht man dort, wo man zuletzt gearbeitet hat. "Aktualisieren" springt nicht mehr an den Anfang. AUSSERDEM SEIT 0.8 Beschriftungen rechtsbuendig mit Doppelpunkt, gleich breite Knoepfe in Spalten, eine Einstellung fuer "unknown"/"unavailable" (anzeigen, ausgrauen, ausblenden), Ziehen und Ablegen im Editor und die Stapel-Korrektur fuer echte 68030. DARSTELLUNGSARTEN Schalter light und switch Laempchen binary_sensor - Fenster offen oder zu Zahl sensor mit Einheit Balken sensor mit festem Bereich, etwa Prozent oder Watt Rollladen cover - Auf, Stop, Zu und die Stellung Thermostat climate - Ist- und Solltemperatur, kaelter, waermer und die Betriebsart Text eine Zwischenueberschrift Verlauf sensor - Balkendiagramm der letzten 30 Tage oder 12 Monate, fuer Sensoren mit Langzeitstatistik (state_class) Beim Hinzufuegen schlaegt das Programm eine Art vor, aus Domain und Geraeteklasse; im Editor laesst sie sich aendern. SPARSAM AM NETZ Den vollen Katalog holt das Programm nur einmal. Im Sekundentakt kommen danach bloss die Zustaende der Geraete, die tatsaechlich angezeigt werden. In einer Anlage mit 941 Entitaeten sind das 1,4 KB statt 55 KB je Abfrage - 98 Prozent weniger. Auf einem A500 an einer langsamen Leitung entscheidet das darueber, ob das Programm benutzbar ist. Auch der Speicher waechst nach Bedarf, statt feste Tabellen zu belegen. VORAUSSETZUNGEN AmigaOS 2.0 oder neuer, 68020 oder besser, keine FPU noetig MUI 3.8 oder neuer NList.mcc und NListview.mcc aus dev/mui/MCC_NList ein TCP/IP-Stack mit bsdsocket.library Home Assistant, ueber http erreichbar - https geht nicht ein Long-Lived Access Token aus Home Assistant Eine Shell-Fassung liegt bei, die ohne MUI auskommt. Die Oberflaeche spricht Englisch, Deutsch, Italienisch und Spanisch. Englisch steckt fest im Programm, die anderen drei liegen als Katalog bei und werden ueber locale.library geladen. Geraete- und Raumnamen, Einheiten und Zustaende kommen aus Home Assistant und sind damit ohnehin in deiner Sprache. Der Quelltext liegt vollstaendig bei, MIT-Lizenz - ausser muistubs.c, das aus dem Projekt amimcp stammt und unter Apache 2.0 steht; der Lizenztext liegt im Archiv. MUIs eigene Entwickler-Header liegen NICHT bei, weil MUIs Lizenz nur die Weitergabe des vollstaendigen Originalarchivs erlaubt; die README sagt, woher man sie bekommt. Die Symbole stammen aus den Material Design Icons (Apache 2.0). Das Haus-Logo gehoert dem Home-Assistant-Projekt; Home Assistant ist ein eigenstaendiges Projekt und hat mit diesem Programm nichts zu tun. Italienisch und Spanisch stammen nicht von Muttersprachlern. Die Uebersetzungsdateien sind reiner Text im Source-Verzeichnis - Korrekturen sind willkommen und brauchen keine Neuuebersetzung. Getestet auf A500 mit PiStorm (Emu68), OS 3.2.3, MUI 3.8. Dieses Programm ist vibe-coded. Ich habe beschrieben, was es koennen soll, geschrieben hat den Code eine KI, und gelesen, getestet und entschieden habe ich. Der Quelltext liegt vollstaendig bei - schau selbst hinein. Hinweis zur Uploader-Adresse: sie steht ohne @ und ohne Punkt da, damit Adresssammler nichts davon haben. Ein @ vor "gmail", ein Punkt vor "com", fertig.