HOME
Home Assistant
Home Assistant@wikipedia ist ein Projekt das Quasi das Herz einer Heim-Automatisierung erfüllen soll..
Im Gegensatz zu *professionellen* Ansätzen soll es offen und unabhängig von üblichen Cloudlösungen sein, da ein (Mini) Rechner lokal alle Daten erfasst und steuert.
Hier lege ich einige unsortierte Gedankenfetzen zu der "Heim-Automatisierung" ab.
Einige Vorgehensweisen werden laufend verändert daher.. sind diese Infos möglicherweise inzwischen sogar irreführend!
Wenn es wem nützt: Freut mich.
Wenn es schadet: Nicht mein Problem, sorry..
Installation
NEU-Installation Konfiguration
Anders als üblich wird hier kein PROGRAMM(doofdeutsch: App -.-) installiert sondern eine ganze UMGEBUNG.
Verwedet werden könnte jeder PC wobei das bereitgestellte IMAGE alle Daten auf einer vorhandenen Festplatte überschreibt/LÖSCHT!
Praktischerweise läuft diese Heim-Automatisierung 24h am Tag.. blöd wer dazu einen stromdurstigen PC verwendet..
Angeblich reichen Raspberrys der 3 bzw. 4 Generation aus. Deren 5-8 Watt summieren sich zwar auch aber im Vergleich mit 300-400W für "stärkere" PCs ist das vernachlässigbar.
Das momentan verbaute System nutzt den "Arch"-Zweig von Linux.
LEIDER ist es nicht gewollt das man andere Befehle nachinstallieren kann -.- z.B. midnight commander..
Selbst Versuche mit den "typischen" Installationsbefehlen wie apt, yum, pacman.. führen ins Leere -.-
Wozu kann man diese Automation nutzen?
Verschiedene Hersteller nutzen komischerweise verschiedene Protokolle = man müsste DEREN Komponenten nutzen und keine anderen..
Zentrale Steuerungens-"Zentralen" sprechen dann auch meist nur mit den eigenen Produkten..
Home Assistant soll eine Brücke schlagen indem man übergreifend die Produkte verschiedener Hersteller zentral steuern kann.
Ideal wäre ein Start mit Haushalten die sowieso schon eine Fritzbox nutzen(und damit an deren "DECTxxx" Produkten gebunden sind).
Blöd wenn man sich umentscheidet und dann diese FritzDect Dinger nicht weiter nutzen kann -.-(DECT-gesteuerte Heizungsregler/Lampen/Taster).
Andere Hersteller nutzen Funkstandarts wie ZigBee, Philips z.B. nutzt "HUE". (Vielleicht ist das nur der Marketingname??)
Neben WLAN kommt sogar Bluetooth vereinzelt zum Einsatz..
Es gibt z.B. zur Zeit KEINE weiteren Sensoren für FritzDECT.. die Telecom bietet aber Kippsensoren(Fenster offen/geschlossen) an.. die wieder anders angesteuert werden -.-
Discounter wie Lidl und Aldi vertreiben hin und wieder auch Eigenmarken(mit "Zentralen") die alleine EIGENTLICH wertlos wären.
Eine "Lidl-Zentrale" wurde erfolgreich gehackt.. als Privatmensch braucht man eine ruhige Hand, einen Lötkolben und weitere Meßtechnik um die aus der CLOUD zu befreien..
Hat das geklappt kann man diese umgerüsteten Zentralen OHNE Cloud auch über Home Assistant ansteuern und z.B. die Lidl-Lampen steuern.
Neben Zeitplänen kann man auch anhand von "Sensoren" Steuerungsereignisse auslösen:
Das Handy von Tochter wird im WLAN erkannt(via Addon "Fritzboxtools" oder so) und die Heizung in ihrem Zimmer wird auf ANWESENHEIT gestellt.
Umgekehrt wenn das Handy das WLAN verlassen hat.. wird die Heizung zurück auf Sparflamme gestellt.
SEHR praktisch.
Ein anderes Add-on (SUN! lol) berechnet für den angegebenen Ort die aktuellen Sonnenaufgänge/Sonnenuntergänge und könnte damit Flurbeleuchtungen auslösen.
Fenster-Offen-Sensoren stellen die Heizungen ab.(die Lösung von FritzDect302 funktioniert.. nicht wirklich gut).
Zwischenstecker(z.B. FritzDect 200) schalten nicht nur via DECT, sie messen auch netterweise den momentanen Verbrauch des angeschlossenen Gerätes und geben das an die Zentrale zurück..
Und:
Wenn man genau hinschaut findet man auch alle Verläufe(wie lange das Licht im Flur an war(wenn Smart-LED verbaut!))
So speichert Home Asssistant alle verfügbaren Parameter in einer Datenbank, die später beliebig durchsucht werden kann..
Add-ons
Alleine kann Home Assistant aber nicht allzu viel..
Unter dem Punkt Einstellungen-Add-ons werden bereits INSTALLIERTE Add-ons angezeigt, der Button Add-on Store führt zu weiteren installierbaren Add-ons(Auszug):
* Terminal & SSH | Konsolenzugriff auf Home Assistant via Weboberfläche |
* File editor | Einfacher Texteditor(Zugriff auf Home Assistant) via Weboberfläche |
* Samba share | Freigabe von Dateien über das Netzwerk |
Einige Module sind nur verfügbar wenn unter dem eigenen Profil der erweiterte Modus aktiviert ist!
Um das Leben nicht zu komplizieren sollte man sich nur auf die hier angebotenen Add-ons einlassen.
So braucht man nur einen Klick und etwas Wartezeit und schon hat man die neuen Add-ons installiert.
FEHLT z.B. die Unterstützung eigener Hardware(Solaranlagen-Inverter, USVs, etc. ..) wird die Sache kompliziert..(siehe folgenden Abschnitt..)
Manuelle Installation weiterer Add-ons..
So, es wurde eine Github/whatever Seite gefunden die die Unterstützung deiner exotischen Hardware unterstützt.. aber was nun?
Beispiel:
Diese Dinger die immer stärker die Hausdächer/Wände verschandeln.. die Photovoltaik!
Discounter bieten inzwischen Balkonkraftwerke an im Bundle mit Microinvertern von Deye(SUN600G3-EU-230).
Dessen Hersteller bietet die "Solarman"-APP für Smartphones an, allerdings setzt das zwingend eine Anmeldung beim Hersteller und die Freigabe für Zugriff auf das Internet voraus..
Am 4.3.2023 verursachte ein fehlerhaftes Herstellerupdate den tagelangen Ausfall tausender Solaranlagen in Deutschland, ca 80% der Kunden dieses Herstellers waren betroffen..
20% der Anlagen die NICHT mit dem Internet verbunden waren.. liefen klaglos weiter..
Wie es aussieht müssen allen Ernstes die Inverter ausgetauscht werden?!
Auch wenn der Hersteller die kostenfrei zuschickt ist das.. sehr ärgerlich für diejenigen, deren Solarstrom momentan weder gespeichert noch abgerufen werden kann..
Blöd das diese Ausführung von Deye nicht nativ von Home Assistant unterstützt werden, aber es gibt Abhilfe:
Unter StephanJoubert@github.com werden die nötigen Skripte vorgehalten, die ZIP Datei herunterladen.
Den in der Zip-Datei enthaltenen Ordner solarman in das Verzeichnis /config/custom_components/ kopieren.
Ist der Unterordner /config/custom_components/ nicht vorhanden eben schnell anlegen:
mkdir /config/custom_components
Hah! Den Link bei ZIP kopieren, in das UNTERVERZEICHNIS /config/custom_components/ wechseln und dort
wget https://github.com/StephanJoubert/home_assistant_solarman/archive/refs/heads/main.zip ausführen!
Ohne weitere Angabe wird der Dateiname der heruntergeladenen Datei zu main.zip geändert!
Da es arge Probleme gibt einen verdammten Ordner einzeln zu entpacken.. einfach den ganzen Mist entpacken:
unzip -d "weg" main.zip (entpackt die ZIP Datei nach /config/custom_components/weg/)
cd weg/home_assistant_solarman-main/custom_components/
ls (Dateien/Ordner anzeigen..)
Der "Prompt" von Home Assistant ist.. gelinde gesagt echt SCHEISSE eingestellt!!
Angezeigt wird NICHT der ganze aktuelle Pfad, sondern nur ein TEIL davon..
.. was uns glauben lässt.. wir hätten alles schon richtig entpackt. NEIN!
pwd zeigt eindeutig die Verschachtelung:
/config/custom_components/weg/home_assistant_solarman-main/custom_components
Daher noch der Befehl um ENDLICH den blöden Ordner "solarman" zu verschieben:
mv solarman/ /config/custom_components/solarman
Und schnell noch den Hilfsordner löschen:
rm -r weg
und die Zip-Datei auch noch entfernen:
rm main.zip
WAS für ein KRAMPF! Warum wird mc nicht installiert? Zwei-Fenster-Dateimanager? In der Lage Dateien aus Zip-Archiven zu entpacken? auch einzelne ORDNER?!!! -.-
Noch ist dieses "Add-on" nicht unter Geräte und Dienste Integration hinzufügen nicht zu finden.
Zuerst muss der Home Assistant einmal neugestartet werden(evtl. reicht nur Skripte neu starten?)
Nach dem Neustart kann die Integration "Solarman" gefunden und konfiguriert werden. Doch ganz einfach ;)
Probleme bei der Konfiguration:
* PreFix-Name für alle Werte: Solarman
* Host(ip oder hostname): 192.168.1.3(die IP des Inverters im Netzwerk)
*Device Serial Number: 41????????? NICHT die aufgedruckte Nummer, die im Web-Frontend angezeigte Seriennummer des Microinverters!!
*Port 8899
* ?Slave No?: 1
* yaml file: deye_hybrid.yaml (für Zuordnung der Werte, eventuell ändern?)
Irgendwie soll man die Dateien also auf den Home Assistant Server bekommen, doch wie?
Verwirrend hier:
ssh -v -L 8000:localhost:8123 bossman@192.168.1.3
(wenn die Adresse im Netzwerk 192.168.1.3 lautet und der Benutzername des ZUERST angemeldeten Benutzers bossman lauten würde..)
Obwohl ein Zugriff via ssh möglich WÄRE.. werden die Passwörter nicht erkannt.
Nach einigen Falschversuchen wird man dauerhaft ausgesperrt??!!
somit bleibt entweder das Laufwerk aus dem Home Assistant Server auszubauen und in einem anderen Rechner zu "bearbeiten" oder eben Terminal & SSH als Zugriff zu nutzen..
Einige in der Konsole nutzbare Befehle:
| |
ls | Listet Dateien/Ordner im aktuellen Pfad(ls -a ls -l bzw. ls -la |
free | Speicherbelegung anzeigen |
uptime | Aktuelle Uhrezeit/Gesamtlaufzeit/Last des Servers anzeigen |
uname -a | Systeminformation anzeigen(Linuxversion, etc.) |
cd .. | Pfad eine Ebene höher(cd "test" wechselt in Unterordner "test") |
mkdir test | Verzeichnis "test" im aktuellen Pfad erstellen |
| |
Unter youtube.com ist ein anderer Weg um die Installation der fehlenden Komponenten via Github-Access durchzuführen..
Quasi automatisiert HACS die Installation von Github "Add-ons".
Aber momentan möchte ich lieber auf "sauberen" Weg den Home Assistant nutzen..
Hacs hinzufügen
Hacs ist mit Vorsicht zu genießen.. dennoch sehen die dort verfügbaren "Änderungen" an dem UI einfach schick aus!
@smarthomeyourself.de
In der Home Assistant Konsole ausführen:
wget -q -O - https://install.hacs.xyz | bash -
(github Account nötig..)
Home Assistant einrichten
Die (erste) Installation ist abgeschlossen, der Server läuft und man hat sich angemeldet.. und was jetzt?
Hier wurden schon einige Sensoren hinzugefügt, normalerweise ist die Übersicht recht.. leer.
Punkt | Erläuterung |
01 | Zeigt die HOME Seite an(wie dargestellt); neu entdeckte Sensoren werden AUTOMATISCH hinzugefügt.. wenn man diese "Karte" nicht anrührt.. |
02 | Energie(EINE Seite); wird erstellt wenn Verbrauchssensoren "entdeckt" wurden, |
03 | Karte(manuelle Koordinateneingabe nötige) des "Homes" mit variablen Reichweitenkreis |
04 | Logbuch, Sensorenzustände und Fehlermeldungen laufen hier auf |
05 | Im Verlauf können mehrere Sensoren ausgewählt werden und auch der zeitliche Rahmen gesetzt werden. |
06 | Add-on: Kalender. Sperrig zu bedienen und.. naja. Immerhin das Datum stimmt.. |
07 | Add-on: File-Editor: Etwas komfortabler als mit der Konsole zu hantieren.. |
08 | Wenn via Router Freigaben vorhanden sind können Medien wie Filme oder auch Internetradios abgespielt werden, sehr schön!! |
09 | Add-on: Studio Code Server.. mh. Naja. Braucht man nicht wirklich, zu lahm, .. besser als nichts.. |
10 | Add-on: lokaler Zugriff auf die Systemkonsole(admin-Zugriff) |
11 | Anzeige aller Sensoren(-zustände), hier kann der Server neu gestartet bzw. heruntergefahren werden |
12 | Zentrale Einstellungen der Add-ons, Dashboards, Sensoren,.. |
13 | Benachrichtigungen: Updates, neu erkannte Geräte, fehlerhafte Zugriffsversuche.. |
14 | Einstellungen für den aktiven Benutzer, Passwortänderung, Profilbild, .. |
Editiert man aus Neugier die Seite "Home" (Dashboard bearbeiten) erscheint ein Warnhinweis den man beachten sollte:
Wenn du die Kontrolle übernimmst, wird dieses Dashboard nicht mehr automatisch aktualisiert
Die EINZIGE Möglichkeit danach noch die Automatik zu reaktivieren ist etwas tricky:
1.) RAW-Mode wählen(die drei Punkte in der Zeile HOME ganz rechts klicken)
2.) CTRL+a drücken(alles markieren) und löschen
3.) Speichern klicken (wurde z.B. eine Leerzeile belassen erscheint jetzt eine Fehlermeldung, daher wirklich ALLES bis zum letzten Leerzeichen löschen!!)
4.) Frage Dashboard-Konfiguration entfernen mit Klick auf ENTFERNEN bestätigen
5.) Die nächste Frage Übernehme die Kontrolle jetzt mit ABBRECHEN bestätigen
Voilà: Die Übersicht ist zurück
*Früher* musste man diesen Weg gehen. Inzwischen wird jedes neu erstellte Dashboard automatisch mit dieser Automatik befüllt.
Dashboard hinzufügen
Links auf das Zahnrad(12=Einstellungen) klicken
Debugging?
Der Zugriff auf den Home-Assistant via SSH ist nicht leicht durchzuführen:
@home-assistant.io (Einige Hinweise aus der Community)
Alternativ KANN man es auch via "Konsole" versuchen: Ein Add-on wird hinzugefügt und man hat dann via Browser Zugriff auf die Home-Assistant Instanz.
Aaaaber:
* Man kann KEINE anderen Befehle nachrüsten! Also nichts mit inxi/mc/.. -.-
* Man muss sich allen Ernstes mit cd durch die Verzeichnisse wühlen..
* Zu allem Überfluss wird der (aktuelle) Pfad beschnitten.. so dass man nie weiß wo man eigentlich unterwegs ist!! (pwd hilft da etwas..)
* es scheint keine bashrc Datei zu geben.. also muss man ständig mit ls -ahl arbeiten ..
Normalerweise werden nutzerspezifische Einstellungen unter ~/.bash_rc abgelegt(Debian Linux).
Home Assistant enthält einen symbolischen Link im /root Verzeichnis auf /data/.bash_profile.
Änderungen hier werden tatsächlich beim Einloggen durchgeführt!
Dazu /data/.bash_profile mit nano öffnen und die folgenden Zeilen hinzufügen:
export PS1='${debian_chroot:+($debian_chroot)}\[\033[31m\]\u@\h\[\033[m\]:\[\033[36m\]$PWD\[\033[m\]$ '
alias ls="ls -ahl"
Nun ist der Prompt vernünftig lesbar und man kann mit ls die Verzeichnisse besser durchsuchen(auch versteckte Dateien).
Farben ändern..
Eigentlich auch ganz einfach:
In der Datei /root/config/configuration.yaml Änderungen hinzufügen:
# Load frontend themes from the themes folder
frontend:
themes:
happy:
primary-color: cyan
accent-color: black
sad:
primary-color: steelblue
accent-color: darkred
Somit hat man dann diese beiden "Themes" zusätzlich zur Auswahl.
Es reicht die Datei zu ändern(via In-Browser-Terminal-Ding) und dann in den Entwicklungswerkzeugen ALLE YAML-Konfigurationen neu zu laden.
Die beiden angegebenen Farbdefinitionen betreffen NUR den oberen Rahmen im Hauptmenü. Andere Farben-Namen muss man sich selber suchen -.-
Einige "Identitäten" werden fälschlicherweise als wird nicht mehr von der Integration xyz bereitgestellt angezeigt.
Das System bietet dann an diese unnützen Identitäten zu löschen..
Manchmal liegt das nur daran, das die Verbindung zu den Sensoren verloren gegangen ist, besonders betrifft dieses Solaranlagen(aka Balkonkraftwerke) die nach Sonnenuntergang keinen Strom mehr erhalten und dann automatisch "offline" sind..
Hat man eine Integration/deren Identitäten falsch benannt und möchte dieses später ändern keinesfalls die Integration LÖSCHEN und dann neu hinzufügen, dabei gehen deren Daten verloren!
Einfacher über Einstellungen-Geräte und Dienste und dann bei dem betreffenen Geräte/Integration auf Konfigurieren gehen und dort den Namen ändern.
Aber:
Die Namensänderung wird nicht umgehend angepasst!
Nach einem Neustart des HomeAssistant ist die neue Benennung dann aktiv. Kann ein paar Minuten dauern.. aber alle Daten bleiben dann erhalten.
ABER: Die INTERNE Bezeichnung bleibt bei dem Namen der ersten Erstellung, nur so kann weiterhin auf die gespeicherten Werte zugegriffen werden.
Nur der "friendly name" wird geändert.
Dashboards
Auch hier ist die Bearbeitung etwas ungewohnt:
Das "Übersicht"-Dashboard wird anfangs automatisch mit neu entdeckten Sensoren befüllt(meist auch mit passenden "Karten")
Man sollte es NICHT anrühren um immer eine(wenn auch völlig überfüllte) Demonstrationsseite zu behalten um nach eigenen Geschmack passende Karteninspirationen zu sammeln..
Neue Dashboard hinzufügen kann man mit Einstellungen-Dashboard-Dashboard hinzufügen
* TITEL der Seitenleiste gibt den Namen in der Seitenleiste an: Soll der Punkt dort TESTDashboard heißen.. eben so benennen.
* Seitenleistensymbol kann aus einer Vielzahl von Symbolen ausgewählt werden
Nicht wundern: JEDES neue Dashboard wird nun automatisch befüllt..
Will man das nicht kann man das Dashboard in der Seitenleiste anklicken, dann den HAMBURGER(3 Punkte) klicken, DemoDashboard bearbeiten klicken und mit leerem Dashboart auswählen.
Schon ist das Ding LEER.
Aber was nun?
Jetzt kann man sich für eine KARTE entscheiden die dort hinzugefügt werden soll.
Bezeichnung | code | Hinweis |
Alarmzentrale | type: alarm-panel | Ohne passende Integration auch keine passenden Identitäten.. |
Schaltfläche | type: button | Ein/Aus/Umschalten von Schaltern/Steckdosen [gelb ist an/blau ist aus. Doofe Farben!] |
Kalender | type: calendar | Ohne Kalender keine passenden Identitäten.. |
Entitäten | type: entities | Mehrere Identitäten werden untereinander dargestellt(Zahlenwerte/Personenanwesenheit,..) |
Entität | type: entity | Der Status EINZELNER Identitäten(IDs/Pfade zum Userbild?!, source(tracker!)) wird angezeigt |
Messgerät | type: gauge | Zahlenwerte wahlweise mit Zeiger/Farbskala anzeigen |
Übersicht | type: glance | Werte relativ dicht nebeneinander darstellen |
Verlaufsdiagramm | type: history-graph | waagerechte Balkendarstellung, z.B. Sonnenstand(über/unter dem Horizont), blöde Farben |
Statistikdiagramm | type: statistics-graph | 5min/h/Tag/Woche/Monat, n-Tage, Linie/Balkengrafik |
| | |
Schnippsel zur Farbe:binary_sensor.back_door_20:
templates:
icon: mdi:icon
rgb_color: "if (state === 'Closed') return [13, 212, 112]; else return [191, 22, 10];"
weiter Schnippsel:
<font color='#03a9f4 '><ha-icon icon=mdi:alert-circle></ha-icon></font> **Trafikinformation:**
{{ state_attr('sensor.sl_train_status_sensor_hasl_trafik','events')[0].Message}}
Um die vorhandenen "Namen" der einzelnen Farbdefinitionen zu finden ist ein Besuch von @github sehr hilfreich.
Ein paar Auszüge:
--primary-text-color: #212121;
--error-color: #db4437;
--primary-background-color: #fafafa;
--energy-solar-color: #ff9800;
--state-light-active-color: var(--amber-color);
wobei die "benannten" Farben zuvor mit --amber-color: #ffc107; definiert wurden.
Nach einer Umbenennung eines Microinverters(PV) sind die Farbzuordnungen in den Statistiken verworren:
Wie bisher bleibt die Farbe eines EINZELNEN Wertes(PV1) blau. Wird eine weitere "Identität"(PV2) hinzugefügt wechselt die Farbe von PV1 zu lila und PV2 wird nun blau angezeigt -.-
Es gibt aber davon Ausnahmen:
Ist der "Startwert" von PV2 zu Messbeginn höher als der von PV1 DANN bleibt PV2 lila und PV1 blau.
Irgendwie sinnfrei -.-
Alternativ: PV2 trennen, den verdammten Inverter WIEDER umbenennen, HA neu starten, etwas laufen lassen(mit PV1) und dann PV2 später dazuschalten?
Oder gar umgekehrt nur PV2 angeschlossen lassen??
Konfiguration "reparieren"
Beim Anmelden der Mikroinverter fiel mir ein Fehler lange nicht auf:
Die "Identitäten" PV1..PV4 CURRENT waren vorhanden.. aber nur PV2 CURRENT konnte in den Statistik genutzt werden..
..weil in der dazugehörigen Konfiguration ein paar Einträge fehlten -.-
Via Konsole(Addon?) kann man von root in das Verzeichnis config/custom_components/solarman/inverter_definitions/
Via nano (hier war es deye_4mppt.yaml) die verwendete Kofigurationsdatei öffnen.. und siehe da..
- name: "PV1 Current"
class: "current"
state_class: "measurement"
Bei PV1, PV3 und PV4 CURRENT fehlte die Zeile state_class: "measurement"!
Trägt man das nach.. und startet dann den HA einmal komplett neu.. tauchen diese Identitäten auch bei den Statistiken als nutzbare Einträge auf!
Nicht ungeduldig werden!
Es DAUERT bis die Änderungen sichtbar sind und das hängt NICHT mit dem HA/Restart zusammen:
Jede Identität bekommt eine eindeutige ID. Löscht man die EINE Instanz von Solarman um z.B. mehrfache(falsch geschriebene) Sensoren wieder loszuwerden..
.. verliert man nicht die Messdaten, wohl aber deren ID. Eine NEU vergebene ID fängt also quasi FRISCH und Sauber an..
Und es dauert durchaus schon mal eine halbe Stunde bis die neuen Werte ENDLICH angezeigt werden.
Dieses.. yaml ist sehr fehlerträchtig..
Versehentlich hatte ich an einer Stelle statt des Doppelpunktes ein Gleichheitszeichen verwendet..
Ergebnis: Ohne Fehlermeldung wurde GAR nichts davon geändert.. Also genau aufpassen..
Bugs
Ein lustiger Bug betrifft das manuelle Editieren von Karten("Quelldaten bearbeiten" oder so)
Hat man eine Markdown "Karte" in einem Stapel.. und schaltet von dem visuellen Editor auf "Quellcode" um..
werden Tasteneingaben RÜCKWÄRTS eingegeben..
Tippt man also dann z.B. - type:Markdown .. kommt am Ende ERNSTHAFT!! nwodkraM:epyt raus!!!!
Ein weiterer SINNLOSER "BUG" der aber keiner ist sondern eigene Dummheit:
Nach einer sauberen Neuinstallation tauchen alle 4 Sekunden fehlerhafte Anmeldeversuche vom eigenen Rechner auf.
Eindeutig immer der Rechner von dem aus auf das Web-Interface zugegriffen wurde. Nur..
.. es ließ sich einfach nicht herausfinden, welche Ursache diese ständigen Abfragen(mit falschem?! Passwort) hatten.
Die Passwörter waren gar nicht verändert worden.. und die Anmeldung klappte ja auch korrekt im Web-Interface.
Ein (mit dem ALTEN System vergebenes) langlebiges Zugangstoken für ein Streamdeck(via Companion) war natürlich dem neuen System nicht bekannt..
So fragte das Streamdeck immer wieder nach Daten..
Allerdings nutzte das Deaktivieren des Zugriffs auf HA(auf Seiten von companion) gar nichts, selbst das LÖSCHEN der HA Integration(wieder auf Seiten des Streamdecks) beendeten diese Anfragen nicht!
Erst als auch companion beendet wurde war endlich Ruhe.
Unter Einstellungen-Entities sind.. alle Entities WEG?!!
Komsicherweise sind die alle noch sichtbar unter den develpment tools..
Umgestellt auf ENGLISCH.. hat nichts gebracht.
Neustart - keine Veränderung.
Dann eingeloggt via http://192.168.1xx.xxx:8123 und sie sind wieder da?!
Witzigerweise sind nun auch wieder Texte auf den Markdown-Tafeln sichtbar ?? Zauberei!
Wieso-weshalb-warum.. keine Ahnung, aber:
via http://IP-Adresse:8123 (statt http://homeassistant.local:8123) eingeloggt.. kann man die Konsole NICHT öffnen!
Ausloggen und via Default einloggen, dann geht das wieder.. -.-
Entitäten verschwinden einfach nicht obwohl deren Integration gelöscht wurde?
Via Konsole Datei /config/.storage/core.entity_registry mit nano öffnen und von unten suchen. VORSICHTIG die falschen Einträge löschen.
Markieren mit SHIFT halten und z.B. Pfeiltasten. Dann CTRL+K zum Ausschneiden..
Speichern und HA neu starten lassen.
Dateien lokal verschieben.. und den midnightcommander nutzen..
Ja, das geht tatsächlich.. nur wie?
1.) In homeassistant muss man für den aktuellen Benutzer den "Expertenmodus" freischalten.
2.) Unter Einstellungen-AddOns muss Terminal&SSH hinzugefügt werden.
3.) Der Dienst Terminal & SSH(im AddOn-Fenster) muss noch einmal angeklickt werden, dann auf KONFIGURATION klicken(oben).
Da man noch keine Schlüsseldateien auf der SD-Karte hat.. noch ein Passwort vergeben und innerhalb dieses Eingabefensters auf SPEICHERN klicken.
Es *kann* sein das da irgendwas mit Neustart(von dem SSH Addon). Egal. einfach machen lassen.
4.) In dem selben Fenster unter NETZWERK noch die Portadresse 22 vergeben(kann sein das ein Schalter gedrückt werden muss um nicht genutzte Dienste anzuzeigen)
Dann auch hier auf SPEICHERN klicken.
Es reichte bei mir NICHT aus nur das AddOn neu zustarten, nein es musste der ganze Raspi sein. -.-
Lokal konnte im Netzwerk die IP des homeassistant angepingt werden aber wenn alle verbindungen via putty/ssh abgewiesen werden noch mal einen Blick in die Logdateien von Konsole/SSH werfen.
Bei mir stand das Passwort sei leer?? Okay, reingeschaut.. und Tatsache! Ich hatte den falschen SPEICHERN-Button geklickt.. und somit das Passwort gar nicht gesichert -.-
Vergeben, GESPEICHERT und Raspi neugestartet.
5.) Nun sollte eine Verbindung zur IP des homeassistant möglich sein (192.168.x.y). Der komische Port 8123 nutzt hier GAR nichts. Ebensowenig homeassistant.local!!
Soweit was das ja bekannt.. aber nun:
Auf dem PC startet man nun.. midnightcommander und VERSUCHT eine Verbindung zu 192.168.x.y:
(entweder LINKE oder RECHTE Spaltenmenüdings öffnen) und SFTP-Verbindung auswählen.
Als IP .. oh Überraschung die IP des Raspis eintragen und ein neues Problem:
Es wird nur ein Passwort abgefragt was blöde ist denn midnightcommander übermittelt automatisch den lokalen Nutzernamen und zu dem ist kein Passwort gespeichert -.-
Zwei Lösungen für das Problem:
* via putty Zugriff(admin/passwort) nehmen und adduser lokalerusername den eigenen Namen(und Passwort) vergeben. Blöd das ein spezieller Ordner mit Schreibrechten fehlt..
* oder man gibt in der Eingabemaske bei sftp root@192.168.x.y ein und nimmt einfach das zuvor im HA vergebene Passwort.. es klappt!!
Ab da kann man mit dem LOKALEN midnightcommander auf dem Raspi rumpfuschen!!
Und wer puttygen in der Console nutzen muss: puttygen -t rsa -b 2048 -C "user@host" -o keyfile.ppk (für 2048 bit Sicherheit)
Wobei mit puttygen -L keyfile.ppk der public Key extrahiert werden kann, der sollte dann auf den Raspi(/root/.ssh/authorized_keys)
Es *kann* sein das die Schlüsseldatei von Puttygen noch gewandelt werden muss für Openssh etc.. So wie die ist sollte sie mit Putty verwendbar sein.
Details bei https://www.ssh.com/academy/ssh/putty/linux/puttygen
Wasser und Gasverbrauch MANUELL hinzufügen
Die in Deutschland verbauten "intelligenten" Zähler sind vieles.. nur nicht intelligent -.-
Wie schön wäre es doch gewesen wenn man den Stromzähler(Gas/Wasser-Zähler) digital abfragen könnte um den Verbrauch im Blick zu haben..
Es GIBT Bastellösungen, doch hier will ich gar nicht darauf eingehen(hätte ich selber gerne..)
Stattdessen die *einfachste* Lösung:
Manuelles Ablesen und Eingeben der Werte..
Dies hat natürlich viele Nachteile gegenüber der AUTOMATISCHEN (Bastel-)Lösung:
Trägt man nicht TÄGLICH die abgelesenen Verbrauchswerte ein gibt das seltsame Verbrauchsspitzen.. da die Verbräuche der übergangenen Tage dann am Eingabetag zuschlagen..
Dennoch.. lieber so als gar nicht..
Wie geht man also vor?
Man klickt auf Konsole und tippt dort ein: nano /homeassistant/configuration.yaml
Man befiehlt also dem Raspi die Datei /homeassistant/configuration.yaml mit dem Nano-Editor zu öffnen.
Je nachdem wie viel Kram dort schon drinsteht wird es etwas anders aussehen,aber so grob.. sollte am Ende Folgendes stehen:
template:
- sensor:
Direkt danach müsste irgendein anderer Kram stehen. Man schreibt dann einfach eine Zeile unter dem - sensor: seine eigenen Definitionen, so das alles darunter weiter nach unten "rutscht".
Falls NIRGENDWO so ein Eintrag zu finden ist.. genau diesen hinzufügen, so wie er oben zu sehen ist.
Wichtig: KEINE Tabs benutzen, es müssen LEERZEICHEN sein!
Ganz schlimm wird es wenn man die falsche Anzahl an Leerzeichen verwendet(eines zu wenig oder zu viel..)
Kopieren im Homeassistant-Terminal:
SHIFT drücken(und HALTEN!) um mit der Maus den Text zu markieren(Maustaste gedrückt halten!!), den Mauszeiger aus dem Browserfenster bewegen und die MAUSTASTE loslassen.
Dann sollte ein Scherensymbol kurz angezeigt werden und der markierte Text in das Clipboard wandern(das mit STRG+V)
# Hilfssensor um Gasverbrauch manuell nachzutragen
- name: gasuhr
state: "{{ states.input_number.gasuhr_ablesung.state }}"
unit_of_measurement: "m³"
state_class: total_increasing
device_class: gas
unique_id: sensor_gasuhr_uniqueid
Wer den Kram nicht kopiert sondern von Hand eintippt: m³(NICHT m3!) und die Leerzeichen penibel beachten..
Um diese Änderungen zu übernehmen Homeassistant neu starten.
Nun muss ein Helfer erstellt werden: Einstellungen - Geräte & Dienste - Helfer - Helfer erstellen - Eingabe für Zahlenwert
Name: gasuhr_ablesung
Symbol: mdi:meter-gas
Minimaler Wert: (wenn das zum ERSTEN Mal erstellt wird.. sollte hier der aktuelle Stand des Zählers eingetragen werden!)
Maximaler Wert: 99999(wenn fünfstellige Anzeige)
Anzeigemodus: Eingabefeld
Maßeinheit: m³
Über Einstellungen - Dashboards Energie Gasquelle hinzufügen
Gasverbrauch: gasuhr(sensor.gasuhr)
Kosten nicht verfolgen(kann später noch geändert werden)
Prüft man nun das Dashboard "Energie" wird korrekterweise 0 angezeigt.
Unter Verlauf kann man sich das genauer betrachten mit Entität auswählen - gasuhr.
Oh! Obwohl im Energieblatt der Gasverbrauch mit 0 angezeigt wird entspricht der angezeigte Wert im Verlauf xxxxx kwh!!
Ist korrekt, denn erst ab jetzt würde ja mit dem Zählen begonnen..
Genauso baut man nach der Gasuhr den Sensor für die Wasseruhr ein:
# Hilfssensor um Wasserverbrauch manuell nachzutragen
- name: wasseruhr
state: "{{ states.input_number.wasseruhr_ablesung.state }}"
unit_of_measurement: "m³"
state_class: total_increasing
device_class: water
unique_id: sensor_wasseruhr_uniqueid
Und schon wieder muss das System neu gestartet werden..
Auch hier muss ein Helfer erstellt werden: Einstellungen - Geräte & Dienste - Helfer - Helfer erstellen - Eingabe für Zahlenwert
Name: wasseruhr_ablesung
Symbol: mdi:gauge statt des blöden Wassertropfens..
Minimaler Wert: (wenn das zum ERSTEN Mal erstellt wird.. sollte hier der aktuelle Stand des Zählers eingetragen werden!)
Maximaler Wert: 99999(wenn fünfstellige Anzeige)
Anzeigemodus: Eingabefeld
Maßeinheit: m³
Über Einstellungen - Dashboards Energie Wasserquelle hinzufügen
Wasserverbrauch: wasseruhr(sensor.wasseruhr)
Kosten nicht verfolgen(kann später noch geändert werden)
Bevor die Helfer erstellt wurden.. wird es NICHT klappen die sensor.wasseruhr bzw. sensor.gasuhr zu verwenden.
Es dauert ein paar Minuten bis die Daten verfügbar werden.
Einbindung der Daten einer Solarbatterie
Am Beispiel der Anker SOLIX Solarbank 2 E1600 Pro gibt es EINIGE Probleme:
- Anker hatte zur Einführung seiner Solarbanken kein Interesse für offene Schnittstellen gezeigt -.-
- Für die ältere Solarbank(1) gab es schon rudimentäre Unterstützung(nicht vom Hersteller!) für Homeassistant(via HACS)
- Für die neuere Solarbank(2) fehlte lange Zeit die Unterstützung(Community/NICHT Hersteller!) für die Integration in HomeAssistant
- Erst ab September 2024 wurde die Überwachung des Haus-Stromverbrauchs auch mit SHELLY 3em/pro eingeführt, zuvor war man auf die proprietären Sensoren des Herstellers angewiesen
- Leider berichten viele Benutzer von Kommunikationsproblemen(Fehler 35!) mit den Shelly Messgeräten -.-
- Fehlerhafte Einheiten/fehlende Entitäten..
- Shelly-Daten zeigen in HA(via Anker-"Imitationsabfrage") falsche/gar keine Werte(Strombezug IMMER=0???)
- Einge Sensoren sind falsch definiert und können somit nicht im Energiebereich "gefunden" und eingesetzt werden
Beispiele der neuen Entitäten(wenn via Hacs die ANKER SOLIX Integration aktiviert wurde):
Entitätsname | unit o.m. | dev.class | Hinweis |
select.solarbank_2_e1600_pro_ladestandreserve | % | | eingestellter Mindestladungswert der Akkus(10%/05%) |
sensor.solarbank_2_e1600_pro_ac_hausabgabe | W | power | aktuelle Einspeisung ins Haus(800W max) |
sensor.solarbank_2_e1600_pro_ac_steckdose | W | power | aktuelle Last an der Notstromsteckdose(1000W max?) |
sensor.solarbank_2_e1600_pro_akkuenergie | Wh | energy_storage | Ladezustand der Akkus in Wh(1600Wh Grundsystem, +1600Wh pro Zusatzakku) |
sensor.solarbank_2_e1600_pro_akkuleistung | W | power | (Ent/?)Ladungsleistung der Akkus |
sensor.solarbank_2_e1600_pro_betriebszustand | - | enum | Betriebszustand: detection|protection_charge|bypass|bypass_discharge|discharge|charge|charge_bypass|charge_priority|wakeup|full_bypass|standby|unknown |
sensor.solarbank_2_e1600_pro_cloud_zustand | - | enum | Cloudverbindung: offline|online|unknown |
sensor.solarbank_2_e1600_pro_dc_ausgangsleistung | W | power | Einspeiseleistung |
sensor.solarbank_2_e1600_pro_einspeisevorgabe | W | power | Vorgabe der Einspeiseleistung(nach Zeitplan?) |
sensor.solarbank_2_e1600_pro_erweiterungakku | - | - | Anzahl vorhandener ERWEITERUNGSAKKUS |
sensor.solarbank_2_e1600_pro_ladestand | % | battery | Ladezustand der Akkus in % |
sensor.solarbank_2_e1600_pro_solar_pv1 | W | power | Solareingangsleistung PV1 |
sensor.solarbank_2_e1600_pro_solar_pv2 | W | power | Solareingangsleistung PV2 |
sensor.solarbank_2_e1600_pro_solar_pv3 | W | power | Solareingangsleistung PV3 |
sensor.solarbank_2_e1600_pro_solar_pv4 | W | power | Solareingangsleistung PV4 |
sensor.solarbank_2_e1600_pro_solarleistung | W | power | Gesamte Solareingangsleistung(PV1+PV2+PV3+Pv4) |
sensor.system_kastanie_ertrag_gesamt | kWh | energy | Gesamter Solarertrag seit Einrichtung der Anlage |
| | | |
| | | |
Mit den Entitätsfilter kann man leicht die nötigen Anker-Identitäten finden wenn man e1600 suchen lässt..
Weitere Entitäten sind unter dem bei der Installation vergebenen Namen zu finden(ich hatte es Spaßeshalber benannt, nun heißen die Dinger ewig so -.-)
Sehr verwirrend ist das das in meinem HA eingebundene Shelly-Messgerät einwandfrei die einzelnen Lasten auf allen Phasen angibt..
.. das selbe Messgerät via Anleitung über die AnkerApp/Cloud jedoch nur MÜLL anzeigt(Verbrauch IMMER 0!!)
Kann das an der mehrfach-Abfrage liegen? Hat die HA-Abfrage Priorität über die Anker-Cloud-Anbindung?
Zur Berechnung der aktuellen Einspeisung in das Haus/Netz..
kann man hilfsweise einen Eintrag in der config.yaml hinzufügen:
# Gesamtertrag aller Solarkollektoren(Ertrag, NICHT die eingespeiste Leistung!!)
- name: pv_total
unit_of_measurement: "W"
state: "{{ (states('sensor.solarbank_2_e1600_pro_solarleistung') | float) + (states('sensor.deye_600_total_ac_output_power_active') | float) }}"
state_class: "measurement"
icon: "mdi:solar-power-variant-outline"
Der Deye-600 gibt die Summe der beiden angeschlossenen Solarpaneele unter sensor.deye_600_total_ac_output_power_active an.
Der Name ist etwas irreführend, da die Leistung sofort in das Stromnetz eingespeist wird.
Anders die Anker Solix E1600 Pro:
Die Entität sensor.solarbank_2_e1600_pro_solarleistung liefert zwar die gesamte "eingefangene" Sonnenenergie aller Solarpaneele.. entspricht aber NICHT immer der Einspeisung..
Denn mal werden davon die Akkus direkt geladen oder die E1600 regelt z.B. über 800W Ertrag die Einspeisung frecherweise herunter.. dann geht der Rest verloren -.-
Ein weiterer Tipp:
Sieht man sich im Verlauf die Solarleistung und die Akkuleistung an.. erkennt man schnell das die sich während des Ladevorgangs überdecken.
Allerdings nur wenn man die Einspeisung in das Netz auf NULL gesetzt hat und die Akkus geladen werden(mäßig bedeckt im September).
Hat man die Einspeisung z.B. auf 100W gesetzt sind die beiden Linien um 100W versetzt(logisch, da der REST dann in die Ladung der Akkus geht)
Der Wert der EINSPEISUNG stimmt so ja nicht mehr.. denn ein großer Teil der eingesammelten Solarenergie geht ja erst in die Akkus.. nur der Rest würde "eingespeist".
Hier also eine Differenz einrichten, Solarproduktion MINUS Akkuleistung(wenn positiv)?
Wer *einfach mal so* unter dem Energie-Dashboard bei Solarproduktion den Solareintrag für die Ankeranlage hinzufügen will hat ein Problem:
Eine Entität mit E1600 ist nicht zu finden!
Dafür gibt es einen sensor.system_(NAME bei der Konfiguration)_ertrag_gesamt
Doch wie bereits angesprochen ist das ungünstig, da HA zwar die Solarleistung am Anker kennt, aber nicht weiß das damit der Akku geladen wird..
.. und somit vermutet einen unbekannten VERBRAUCHER im System zu haben=falsche Anzeige!
Ohne Angabe der Batterien kann Homeassistant gar nicht wissen das der erzeugte Ertrag bis ca. 14:00Uhr komplett in die Akkus fliesst..
Und schon wird aus Solarenergie die in die Akkus fließt ein nicht erfasster Verbraucher..
Will man also den EINGESPEISTEN Summenwert haben sind ZWEI Entitäten zu beachten:
sensor.solarbank_2_e1600_pro_dc_ausgangsleistung (Überallhin, auch in das Netz?)
sensor.solarbank_2_e1600_pro_ac_hausabgabe (nur in das Haus?)
Macht wohl erst Sinn wenn die Einbindung des Shelly richtig funktioniert -.-
Doch auch hier lauert wieder ein Problemchen: Sobald der Deye-600 keine Solarertrag liefert.. geht der AUS und die Werte sind dann nicht mehr gültig.
Was dazu führt das auch die SUMME nicht mehr gültig(undefiniert) sein wird -.-
Des weiteren gibt es keine Trennung der Akkuleistung, egal ob die geladen(positiver Wert) oder entladen(negativer Wert) werden.
Damit fehlen die Werte für das Energiedashboard -.-
Alternativ muss man also zwei Helfer definieren:
* Akkuladung(wenn der Wert der Akkuleistung POSITIV ist)
* Akkuentladung(wenn der Wert der Akkuleistung NEGATIV ist)
Hat man diese beiden definiert..:
# Hilfssensor um aus sensor.solarbank_2_e1600_pro_akkuleistung NUR die LADUNG zu übernehmen:
- name: "Akkuladung"
unique_id: "solarbank-charge-power"
unit_of_measurement: "W"
device_class: "power"
icon: mdi:home-lightning-bolt
state: >
{% set val = states('sensor.solarbank_2_e1600_pro_akkuleistung')|float(0) %}
{{ val if val > 0 else 0 }}
availability: >
{{ has_value('sensor.solarbank_2_e1600_pro_akkuleistung') }}
# Hilfssensor um aus sensor.solarbank_2_e1600_pro_akkuleistung NUR die ENTLADUNG zu übernehmen:
- name: "Akkuentladung"
unique_id: "solarbank-discharge-power"
unit_of_measurement: "W"
device_class: "power"
icon: mdi:home-lightning-bolt
state: >
{% set val = states('sensor.solarbank_2_e1600_pro_akkuleistung')|float(0) %}
{{ val | abs if val < 0 else 0 }}
availability: >
{{ has_value('sensor.solarbank_2_e1600_pro_akkuleistung') }}
Nun hätte man (nach einem Neustart von HA) zwei neue Entitäten die wie gewünscht in Ladung und Entladung geteilt wurden.
Doch diese beiden kann man NICHT in das Energie-Dashboard integrieren(weil in W und nicht in kWh..)
Einfach die Units umschreiben ist eine BLÖDE Idee(aus statistischen Gründen!)
Man muss zwei weitere "Helfer" erstellen:
* Integralsensoren
* Name: Ähnlich wie der entsprechende Hilfssensor aber mit einem kW am Ende des Namens: Akkuladung kWh
* Metrisches Präfix: kilo
* Zeiteinheit: Stunden
* Eingangssensor: sensor.akkuladung
* Integrationsmethode: Linke Riemannsche Summe
* Genauigkeit: 3
* Max. Teilintervall: keine Ahnung, so belassen?
Bestätigen
Den zweiten Helfer ebenso erstellen nur die Benennung dann auf Akkuentladung kWh und den Eingangssensor auf sensor.akkuentladung setzen.
Diese Entitäten brauchen mindestens eine Stunde bis die berechnet werden können, also GEDULD!
Sind die beiden neuen Entitäten endlich aufgetaucht diese im Energie-Dashboard unter "Batterien" hinzufügen, dabei Ladung und Entladung NICHT vertauschen..
Die letzten Entitäten(Riehmannintegration) wurden erst gegen 19:00Uhr hinzugefügt, auch das führt zu Fehlern:
Die feste Einspeisung aus den Akkus von 00:00Uhr bis 06:00Uhr fehlt ja weil zu dem Zeitpunkt noch gar nicht bekannt.
Aber die ersten beiden Akkuentladungen um 20:00 und 21:00Uhr zeigen statt der Aufteilung nach L1,L2 und L3 nun einen kombinierten Verbrauch.
Erst um 22:00Uhr ist die Darstellung wieder wie gewohnt unterteilt.
Ganz sicher wurden NICHT 10 kWh verbraucht!! Der Bezug aus dem Netz(6.1kWh) ergab sich aus einem VERBRAUCH von L1/L2/L3 von 6kWh und dem Rücklauf auf L3(-1.1kWh vom Deye-600)
Dennoch behauptet das "Haus" 10,3kWh verbraucht zu haben, wieso?
Die 5kWh Solarstrom wurden KOMPLETT als Verbrauch angesehen?
0,6kWh wurden von 00:00Uhr bis 06:00Uhr aus den Akkus eingespeist(unbekannterweise).
Dann wurden die Akkus bis 16:00Uhr komplett vollgeladen(3.2kWh) bevor überhaupt etwas von der Ankeranlage in das Netz strömen konnte..
Mal die Tage beobachten, Beschattungen reduzieren und Module neu ausrichten..
Shelly in E1600 einbinden
Die Einbindung des Shelly 3em/pro ist etwas.. umständlich.
Anker will UNBEDINGT via CLOUD statt lokalem WLAN auf das Shelly zugreifen -.-
Was ein Problem ist sollte man sich VERSEHENTLICH später einmal selber in die Shelly-Cloud einwählen:
Denn die Cloud erlaubt nur EINEN gleichzeitigen Zugang.. und schmeißt den anderen Nutzer raus(was einen andauernden Fehler 32 in der AnkerApp auslöst).
Falls man den schönen Fehler 32 hat.. erst einmal das "Muttern"-Symbol klicken und unter Geräteverwaltung auf den Mülleimer klicken.
Danach das Shelly mit einem Haken versehen und bestätigen(2x!), somit ist es aus der AnkerApp verschwunden.
Zum Anmelden des Shelly 3em/pro muss man wieder einmal mit einem Handy(Bluetooth einschalten!) zu dem E1600 wandern und sich dort mit der AnkerApp verbinden.
Die Anmeldedaten bei der ShellyCloud(Nutzer/Passwort) kann dann ENTFERNT von dem E1600 eintippen, aber vor dem Bestätigen muss man dann natürlich wieder in der Nähe sein..
Hatte man das schon einmal durchlaufen.. kann man versuchen das Shelly via WLAN einzubinden.. ja, seit dem Update(September 2024) klappt das überraschenderweise..
Und das ALLERBESTE: Ist das Shelly direkt via WLAN verbunden.. kann man sich beliebig verbinden und die AnkerApp hat konstant Verbindung..
NUN kann man auch die blöde ShellyCloud besuchen und es kommt zu keinem Fehler 32 mehr.. ^^
Einen zweiten Zugang für die Shelly Cloud scheint nicht möglich zu sein ist aber auch seit dem Update nicht mehr nötig, da ENDLICH das lokale WLAN genutzt werden kann.
Diese Seite wurde zuletzt am 04.10.2024 um 11:21 geändert.
(c) 2024 DHLF ☮🇺🇦