Homeassistant: Übersetzung des Fronius Wechselrichter Status Code

Vor einiger Zeit habe ich für meinen Fronius Solar Wechselrichter ein Template in Home-Assistant für eine Übersetzung des Status Codes gebaut. Damit bekommt man nicht nur kryptische Zahlen ausgeworfen, sondern kann sogar was damit anfangen ;-) Im Untenstehenden Template musst du nur deinen sensor für den Status Code statt meinem sensor.status_code_fronius_inverter eintragen. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 --- template: - sensor: - name: "Fronius Status Message" state: > {% if is_state('sensor.status_code_fronius_inverter', '102' ) %}AC-Spannung zu hoch {% elif is_state('sensor.status_code_fronius_inverter', '103' ) %}AC-Spannung zu gering {% elif is_state('sensor.status_code_fronius_inverter', '105' ) %}AC-Frequenz zu hoch {% elif is_state('sensor.status_code_fronius_inverter', '106' ) %}AC-Frequenz zu gering {% elif is_state('sensor.status_code_fronius_inverter', '107' ) %}AC-Netz nicht vorhanden {% elif is_state('sensor.status_code_fronius_inverter', '108' ) %}Inselbetrieb erkannt {% elif is_state('sensor.status_code_fronius_inverter', '112' ) %}Fehler RCMU {% elif is_state('sensor.status_code_fronius_inverter', '301' ) %}Überstrom (AC) {% elif is_state('sensor.status_code_fronius_inverter', '302' ) %}Überstrom (DC) {% elif is_state('sensor.status_code_fronius_inverter', '303' ) %}Übertemperatur DC Modul {% elif is_state('sensor.status_code_fronius_inverter', '304' ) %}Übertemperatur AC Modul {% elif is_state('sensor.status_code_fronius_inverter', '305' ) %}Keine Einspeisung trotz geschlossener Relais {% elif is_state('sensor.status_code_fronius_inverter', '306' ) %}Es steht zu wenig PV-Leistung für den Einspeisebetrieb zur Verfügung {% elif is_state('sensor.status_code_fronius_inverter', '307' ) %}DC-Eingangsspannung zu gering für den Einspeisebetrieb {% elif is_state('sensor.status_code_fronius_inverter', '308' ) %}Zwischenkreisspannung zu hoch {% elif is_state('sensor.status_code_fronius_inverter', '309' ) %}DC-Eingangsspannung MPPT 1 zu hoch {% elif is_state('sensor.status_code_fronius_inverter', '311' ) %}DC-Stränge verpolt {% elif is_state('sensor.status_code_fronius_inverter', '313' ) %}DC-Eingangsspannung MPPT2 zu hoch {% elif is_state('sensor.status_code_fronius_inverter', '314' ) %}Timeout Stromsensor-Kalibrierung {% elif is_state('sensor.status_code_fronius_inverter', '315' ) %}AC Stromsensor Fehler {% elif is_state('sensor.status_code_fronius_inverter', '316' ) %}InterruptCheck fail {% elif is_state('sensor.status_code_fronius_inverter', '325' ) %}Übertemperatur im Anschlussbereich {% elif is_state('sensor.status_code_fronius_inverter', '326' ) %}Lüfter 1 Fehler {% elif is_state('sensor.status_code_fronius_inverter', '327' ) %}Lüfter 2 Fehler {% elif is_state('sensor.status_code_fronius_inverter', '401' ) %}Kommunikation mit dem Leistungsteil nicht möglich {% elif is_state('sensor.status_code_fronius_inverter', '406' ) %}Temperatursensor AC Modul defekt (L1) {% elif is_state('sensor.status_code_fronius_inverter', '407' ) %}Temperatursensor AC Modul defekt (L2) {% elif is_state('sensor.status_code_fronius_inverter', '408' ) %}Zu hoher Gleichanteil im Versorgungsnetz gemessen {% elif is_state('sensor.status_code_fronius_inverter', '412' ) %}Der Fix-Spannungsbetrieb ist statt des MPP-Spannungsbetriebes angewählt und die Fixspannung ist auf einen zu geringen oder zu hohen Wert eingestellt. {% elif is_state('sensor.status_code_fronius_inverter', '415' ) %}Sicherheitsabschaltung durch Optionskarte oder RECERBO hat ausgelöst {% elif is_state('sensor.status_code_fronius_inverter', '416' ) %}Kommunikation zwischen Leistungsteil und Steuerung nicht möglich. {% elif is_state('sensor.status_code_fronius_inverter', '417' ) %}ID-Problem der Hardware {% elif is_state('sensor.status_code_fronius_inverter', '419' ) %}Uniqe-ID Konflikt {% elif is_state('sensor.status_code_fronius_inverter', '420' ) %}Kommunikation mit dem Hybridmanager nicht möglich {% elif is_state('sensor.status_code_fronius_inverter', '421' ) %}Fehler HID-Range {% elif is_state('sensor.status_code_fronius_inverter', '425' ) %}Kommunikation mit dem Leistungsteil ist nicht möglich {% elif is_state('sensor.status_code_fronius_inverter', '426' ) %}Möglicher Hardware-Defekt {% elif is_state('sensor.status_code_fronius_inverter', '427' ) %}Möglicher Hardware-Defekt {% elif is_state('sensor.status_code_fronius_inverter', '428' ) %}Möglicher Hardware-Defekt {% elif is_state('sensor.status_code_fronius_inverter', '431' ) %}Software-Problem {% elif is_state('sensor.status_code_fronius_inverter', '436' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '437' ) %}Leistungsteil-Problem {% elif is_state('sensor.status_code_fronius_inverter', '438' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '443' ) %}Zwischenkreis-Spannung zu gering oder unsymetrisch {% elif is_state('sensor.status_code_fronius_inverter', '445' ) %}Kompatibilitätsfehler (z.B. auf Grund eines Print-Austausches) oder ungültige Leistungsteil-Konfiguration {% elif is_state('sensor.status_code_fronius_inverter', '447' ) %}Isolationsfehler {% elif is_state('sensor.status_code_fronius_inverter', '448' ) %}Neutralleiter nicht angeschlossen {% elif is_state('sensor.status_code_fronius_inverter', '450' ) %}Guard kann nicht gefunden werden {% elif is_state('sensor.status_code_fronius_inverter', '451' ) %}Speicherfehler entdeckt {% elif is_state('sensor.status_code_fronius_inverter', '452' ) %}Kommunikationsfehler zwischen den Prozessoren {% elif is_state('sensor.status_code_fronius_inverter', '453' ) %}Netzspannung und Leistungsteil stimmen nicht überein {% elif is_state('sensor.status_code_fronius_inverter', '454' ) %}Netzfrequenz und Leistungsteil stimmen nicht überein {% elif is_state('sensor.status_code_fronius_inverter', '456' ) %}Anti-Islanding-Funktion wird nicht mehr korrekt ausgeführt {% elif is_state('sensor.status_code_fronius_inverter', '457' ) %}Netzspannungsrelais-Fehler {% elif is_state('sensor.status_code_fronius_inverter', '458' ) %}Fehler bei der Mess-Signalerfassung {% elif is_state('sensor.status_code_fronius_inverter', '459' ) %}Fehler bei der Erfassung des Mess-Signals für den Isolationstest {% elif is_state('sensor.status_code_fronius_inverter', '460' ) %}Referenz-Spannungsquelle für den digitalen Signalprozessor (DSP) arbeitet außerhalb der tolerierten Grenzen {% elif is_state('sensor.status_code_fronius_inverter', '461' ) %}Fehler im DSP-Datenspeicher {% elif is_state('sensor.status_code_fronius_inverter', '462' ) %}Fehler bei der DC-Einspeisungs-Überwachungsroutine {% elif is_state('sensor.status_code_fronius_inverter', '463' ) %}Polarität AC vertauscht, AC-Verbindungsstecker falsch eingesteckt {% elif is_state('sensor.status_code_fronius_inverter', '474' ) %}RCMU-Sensor defekt {% elif is_state('sensor.status_code_fronius_inverter', '475' ) %}Isolationsfehler (Verbindung zwischen Solarmodul und Erdung) {% elif is_state('sensor.status_code_fronius_inverter', '476' ) %}Versorgungsspannung der Treiberversorgung zu gering {% elif is_state('sensor.status_code_fronius_inverter', '479' ) %}Zwischenkreis-Spannungsrelais hat ausgeschaltet {% elif is_state('sensor.status_code_fronius_inverter', '480' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '481' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '482' ) %}Setup nach der erstmaligen Inbetriebnahme wurde abgebrochen {% elif is_state('sensor.status_code_fronius_inverter', '483' ) %}Spannung U (DCfix) beim MPP2-String liegt außerhalb des gültigen Bereichs {% elif is_state('sensor.status_code_fronius_inverter', '485' ) %}CAN Sende-Buffer ist voll {% elif is_state('sensor.status_code_fronius_inverter', '489' ) %}Permanente Überspannung am Zwischenkreis-Kondensator (5x hintereinander Statusmeldung 479) {% elif is_state('sensor.status_code_fronius_inverter', '502' ) %}Isolationsfehler an den Solarmodulen {% elif is_state('sensor.status_code_fronius_inverter', '509' ) %}Keine Einspeisung innerhalb der letzten 24 Stunden {% elif is_state('sensor.status_code_fronius_inverter', '515' ) %}Kommunikation mit Filter nicht möglich {% elif is_state('sensor.status_code_fronius_inverter', '516' ) %}Kommunikation mit der Speichereinheit nicht möglich {% elif is_state('sensor.status_code_fronius_inverter', '517' ) %}Leistungs-Derating auf Grund zu hoher Temperatur {% elif is_state('sensor.status_code_fronius_inverter', '518' ) %}Interne DSP-Fehlfunktion {% elif is_state('sensor.status_code_fronius_inverter', '519' ) %}Kommunikation mit der Speichereinheit nicht möglich {% elif is_state('sensor.status_code_fronius_inverter', '520' ) %}Keine Einspeisung innerhalb der letzten 24 Stunden von MPPT1 {% elif is_state('sensor.status_code_fronius_inverter', '522' ) %}DC low String 1 {% elif is_state('sensor.status_code_fronius_inverter', '523' ) %}DC low String 2 {% elif is_state('sensor.status_code_fronius_inverter', '558' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '559' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '560' ) %}Leistungs-Derating wegen Überfrequenz {% elif is_state('sensor.status_code_fronius_inverter', '564' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '566' ) %}Arc Detector ausgeschaltet (z.B. bei externer LichtbogenÜberwachung) {% elif is_state('sensor.status_code_fronius_inverter', '568' ) %}fehlerhaftes Eingangssignal an der Multifunktions-Stromschnittstelle {% elif is_state('sensor.status_code_fronius_inverter', '572' ) %}Leistungslimitierung durch das Leistungsteil {% elif is_state('sensor.status_code_fronius_inverter', '573' ) %}Untertemperatur Warnung {% elif is_state('sensor.status_code_fronius_inverter', '581' ) %}Setup Special Purpose Utility-Interactive (SPUI) ist aktiviert {% elif is_state('sensor.status_code_fronius_inverter', '601' ) %}CAN Bus ist voll {% elif is_state('sensor.status_code_fronius_inverter', '603' ) %}Temperatursensor AC Modul defekt (L3) {% elif is_state('sensor.status_code_fronius_inverter', '604' ) %}Temperatursensor DC Modul defekt {% elif is_state('sensor.status_code_fronius_inverter', '607' ) %}RCMU Fehler {% elif is_state('sensor.status_code_fronius_inverter', '608' ) %}Funktions-Inkompatibilität (einer oder mehrere Prints im Wechselrichter sind nicht kompatibel zueinander, z.B. nach einem Print-Austausch) {% elif is_state('sensor.status_code_fronius_inverter', '705' ) %}Konflikt beim Einstellen der Wechselrichter-Nummer (z.B. Nummer doppelt vergeben) {% elif is_state('sensor.status_code_fronius_inverter', '721' ) %}EEPROM wurde neu initialisiert {% elif is_state('sensor.status_code_fronius_inverter', '731' ) %}Initialisierungsfehler - USB-Stick wird nicht unterstützt {% elif is_state('sensor.status_code_fronius_inverter', '732' ) %}Initialisierungsfehler - Überstrom am USB-Stick {% elif is_state('sensor.status_code_fronius_inverter', '733' ) %}Kein USB-Stick angesteckt {% elif is_state('sensor.status_code_fronius_inverter', '734' ) %}Update-Datei wird nicht erkannt oder ist nicht vorhanden {% elif is_state('sensor.status_code_fronius_inverter', '735' ) %}nicht zum Gerät passende Update-Datei, zu alte Update-Datei {% elif is_state('sensor.status_code_fronius_inverter', '736' ) %}Schreib- oder Lesefehler aufgetreten {% elif states.sensor.status_code_fronius_inverter and states('sensor.status_code_fronius_inverter') | int < 100 %}OK {% else %}Unbekannter Status {% endif %} icon: > {% if states.sensor.status_code_fronius_inverter and states('sensor.status_code_fronius_inverter') | int < 100 %} mdi:weather-sunset-up {% else %} mdi:alert-octagram {% endif %}

Homeassistant - binary_sensor Zustand an KNX übertragen

In meiner Heimautomation auf Basis von Homeassistant empfange ich verschiedene binäre Sensoren, welche ich auf dem KNX Bus nutzen möchte. So ist es beispielsweise notwendig, den Zustand der Fensterkontakte der Velux Fenster (also ein binary_sensor Zustand) an die KNX Gruppenaddresse für “Fenster offen” zu senden, um den Rolladen in dem Falle zu blockieren. Ich habe mir dazu einen Homeassistant Automation Blueprint gestrickt:

Homeassistant Lovelace Card für Volvo OnCall Integration

Für einen Volvo habe ich eine Lovelace-Card hier  gefunden, welche ich hier beschreiben möchte. ...

Flashen des WT32-ETH01 - Ein ESP32 mit LAN + WiFi/WLAN

Heute habe ich mich ans Flashen des ESP32 Moduls WT32-ETH01 gemacht. Das Modul ist etwas besonderes, da es einen LAN anschluss hat und der dazugehörige LAN8720 chip in einigen Frameworks auch schon “out of the box” verfügbar ist. Alternativen zu diesem Board ist das WESP32 oder die Boards von Olimex, OpenHacks (was aber wohl irgendwie gerne in den Flash Modus bootet, Vorsicht!) und LILYGO. Preislich ist aber das WT32-ETH01 unschlagbar ( Amazon* / Aliexpress* ) . Das WT32-ETH01 ergänzt den LAN Anschluss aber lediglich zu den vorhandenen Features des ESP32, sodass man weiterhin WLAN auf dem Board hat. ...

Tintenstand der Druckerpatronen des HP 8620 in FHEM überwachen

Bei stöbern im FHEM Forum ist mir gerade ein Beitrag  aufgefallen, wo der Ersteller den HP 8620 Drucker hinsichtlich des Druckerpatronenfüllstands überwachen ließ. Das habe ich direkt ausprobiert - funktioniert ;) ...

FHEM: Abfahrzeiten des VRN Verkehrsverbunds via HTTPMOD auslesen

Nach dem Abruf der Google Maps Informationen hatte ich mich erinnert, dass VRN ebenso einen Abfahrtsmonitor anbietet. Diesen wollte ich natürlich auch auf jeden Fall in FHEM anbinden. Zunächst muss die Haltestelle herausgefunden werden. Am besten geht man dazu auf den Abfahrtsmonitor  und sucht sich die Wunschhaltestelle. In meinem Falle nehme ich die “Lindenhof (MA), Windeckstraße”: Nun kann man noch die Richtung auswählen: ...

FHEM: watchdog - Funktion und Anwendungsfälle des Hilfsmoduls

Das Hilfsmodul watchdog erlaubt es, gewisse Dinge - wie der Name schon sagt - wie ein Wachhund zu überwachen. Dabei kann zum einen nach einem Event nach einer gewissen Zeiten eine Aktion ausgelöst werden, diese aber bei Eintreffen eines anderen Ereignisses auch eben nicht ausgeführt werden. Ebenso kann auch das Ausbleiben von Ereignissen überwacht werden. Beispiel 1 Ein Thermostat soll auf eine bestimmte Temperatur gesetzt werden, sobald ein Fenster mehr als 90 Sekunden offen ist. Wird es innerhalb dieser Zeit wieder geschlossen, so soll der Watchdog natürlich nicht auslösen (und damit die Temperatur beibehalten). Als praktischer Anwendungsfall wäre eine Gartentür zu nennen. Der Grillmeister rennt ständig rein und raus und will nur kurz nach dem Grill sehen - hier lohnt es sich nicht, die Heizung permanent rauf und runter zu drehen. Vergisst er aber die Türe zu schließen, so wird ausgelöst. ...

Deep-Sleep des ESP-01 (ESP8266) mit 78 microAmpere

Seit einiger Zeit beschäftige ich mich mit dem ESP8266 für einige Anwendungen rund um meine Heimautomation (mittels FHEM). Um die Wifi-Module so sparsam wie möglich zu betrieben, gibt es die Möglichkeit den Chip in den Deep-Sleep zu versetzen, wo dann nur noch 78 μA verbraucht werden ( Siehe Pin-Belegung des Chips, genauer des ‘post-sleep-reset-pin’ XPD_DCDC hier  ). ...

Export einer Gerätedefinition aus FHEM

Wenn man eine Gerätedefinition komplett mit allen Kommandos aus FHEM ziehen will, bekommt man meist gesagt, dass man doch list [DEVICE] dazu verwenden kann. Was ja auch ganz nett ist, aber leider halt nicht mit “define…” beginnt. Per Zufall bin ich heute über ein Kommando der configdb gestolpert, was genau das kann (bedingt natürlich, dass man configdb nutzt): 1 configdb list [DEVICE] Funktioniert super und endlich kann ich meine Devices einfach verbloggen :) ...

Mein Batteriewächter für FHEM

Ich wurde vor kurzem gefragt, wie denn eigentlich meine Batteriewarnung innerhalb von FHEM aussieht. Daher hier der Codeschnipsel. Ich verwende das msg modul für Benachrichtigungen, unten muss daher der Name des Empfängers unter Umständen angepasst werden. Es ist eine 300 Sekunden Zeit eingebaut, welche die Meldung “entprellt”, um sozusagen nicht hunderte Mails oder Pushes zu bekommen, wenn ein Schalter mal über 20 Sekunden langsam hoch dimmt und dabei “battery: low” sendet. ...