Violet Home Assistant Addon

Fragen zur Anbindung / Integration von VIOLET an Hausautomationssysteme.
Benutzeravatar
Alex
Administrator
Beiträge: 10389
Registriert: 28. Mai 2014, 23:00

Re: Violet Home Assistant Addon

Beitrag von Alex »

vergessen: und / ... ?DOS_1_CL, AUTO,x,x würde sie auch nicht beenden. muss auch über .../triggerManualDosing beendet werden.
Sind aber jeweils POST requests.
 

Alle Reaktionen


Benutzeravatar
AlPi
Beiträge: 388
Registriert: 23. August 2019, 22:34

Re: Violet Home Assistant Addon

Beitrag von AlPi »

was mich gerade etwas verwirrt, das mein Cover geschlossen ist, aber der
Button zum öffnen ausgegraut ist ... nur schließen könnte ich klicken, aber das
Cover ist ja geschlossen ...
260609 - set2.jpg
260609 - set2.jpg (92.6 KiB) 1181 mal betrachtet
Was ja ganz gefährlich ist, ist der Button ganz oben ...
Der stellt alles als MANUELL AUS ---
und wenn Du den wieder aktivierst, alles auf MANUELL EIN ...
auch meine Absorber und meine Öl Heizung ... die würde dann auch nicht durch die Automatik
wieder ausgehen ... abgesehen davon, dass die Öl Heizung vorher von mir bereits auf
MANUELL AUS stand ... den Status hat das Addon dann vergessen ...
260609 - set3.jpg
260609 - set3.jpg (12.36 KiB) 1181 mal betrachtet
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Schau ich mir auch sofort an , fixe gerade das Problem mit der flockung
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Den Schalter habe ich gar nicht , beim Cover habe ich evtl. Die beiden zustande vertauscht .

Muss ich mir ansehen , woher das kommt .
image001.png
 

Alle Reaktionen


Benutzeravatar
AlPi
Beiträge: 388
Registriert: 23. August 2019, 22:34

Re: Violet Home Assistant Addon

Beitrag von AlPi »

Du hast da die Ansicht in der Geräte Information ...
Schiebe das mal auf das Dashboard in die Übersicht
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Ich habe den Schalter nicht , auch nicht auf dem Dashboard . Das addon erstellt auch keinen Schalter der sowas auslöst . Habe extra nochmal den Code durchgesehen .

Kannst du mir die Dashboard yaml schicken , weißt du wie das geht ? Dann lade ich sie bei mir und schaue nach .

Es gibt nur einen Schalter mit allem an oder aus und das ist für das Licht DMX
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Werde es mir aber in Ruhe nochmal ansehen , nicht das ich so neben bei noch misst baue 😜
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Sodala, also der Schalter wird nicht von meinem Add-on erstellt und intern wird es auch niemals so einen Schalter geben.

Das Thema ist, dass es verschiedene Cards im Lovelace-/Dashboard-Bereich gibt, die bei reinen Schalter-Karten automatisch einen übergeordneten Schalter erzeugen. Dieser existiert nur im Dashboard und schaltet dann alle Schalter innerhalb der Karte gleichzeitig ein oder aus.

Das ist leider eine Designentscheidung der jeweiligen Card und kann von mir bzw. meinem Add-on nicht beeinflusst werden.

Ich werde in der Wiki bzw. im README einen entsprechenden Hinweis ergänzen, dass die Verwendung solcher Karten unter Umständen gefährlich sein kann. Mehr kann ich an dieser Stelle leider nicht machen.

Aber nochmals ganz deutlich: Dieser Schalter kommt weder von mir noch von meinem Add-on! ❗

Ansonsten wurden gestern noch viele Bugs behoben, neue dev. ist vorhanden wer early tester sein möchte ;-) .
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Neues Feature in der Beta Version.
Ha zeigt jetzt an wenn die Violet ein Update hat .
Screenshot_20260615_000353_Home Assistant.jpg
Screenshot_20260615_000353_Home Assistant.jpg (39.63 KiB) 1105 mal betrachtet
More ist comming
 

Alle Reaktionen

Heart (1)
Alex
1
Heart

Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

[center]🌊 Violet Pool Controller - Kompletter Changelog
Version 1.2.4 → 2.0.0-beta.9[/center]

[hr]

HIGHLIGHTS DER MAJOR CHANGES

Seit Version 1.2.4 gab es 88 Commits mit massiven Verbesserungen:

🔴 KRITISCHE FIXES:
  • Entity-ID Duplizierungsproblem an der Quelle behoben
  • Firmware Update Entity zeigt jetzt korrekt die Controller-Version (nicht mehr "aktuell" wenn 1.1.9)
  • API Version Compatibility verbessert (violet-poolController-api >= 0.0.31)
✨ MAJOR FEATURES:
  • Vollständiges Service-System mit 20+ Services
  • Reset Error Blockings Button (direkt auf Device)
  • Hardware-Konfiguration mit dynamischen Namen
  • Firmware Update Detection & Installation
  • Error Management mit prominenten Sensoren
  • Button Platform für direktes Pool-Control
📊 API & SENSOR ÜBERHAUL:
  • +50 neue Sensoren für erweiterte Überwachung
  • H2O2 Dosing System Unterstützung
  • Electrolysis Polarity Tracking
  • OmniTronic Valve Status Sensoren
  • Dosing Statistics & Monitoring
  • Temperature Sensor Calibration Sensoren
  • Digital Input Rules mit Stopwatch
[hr]

DETAILLIERTER CHANGELOG

→ Version 2.0.0-beta.9 (AKTUELL)
  • 🔨 KRITISCH: Entity-ID Duplizierung bei Neuinstallationen behoben
    • Default Device-Name von "🌊 Violet Pool Controller" zu "Pool Controller" geändert
    • Hardcodierte Entity-ID-Präfixe entfernt
    • Entity-Migrations-Logik verbessert mit besseren Logs
  • ✨ NEU: Reset Error Blockings Button für direkte Fehlerbehandlung
  • ✨ NEU: Button Platform für Pool-Control-Aktionen
  • 🎯 VERBESSERT: Error-Sensoren jetzt prominent (nicht im Diagnostic Drawer)
  • 🔧 VERBESSERT: Service-Dokumentation in services.yaml
→ Version 2.0.0-beta.8
  • ✨ 15 Firmware-Discovery Improvements
    • Bessere Hardware-Modul-Erkennung
    • Erweiterte Sensor-Discovery
    • Firmware-Update Detection sichtbar
  • 📦 API Upgrade auf 0.0.31
→ Version 2.0.0-beta.7
  • 🔨 Entity-Präfix-Migration für alte Installationen
  • 🔄 Firmware Update Entity jetzt immer sichtbar
  • 📝 Neue Sensoren: Firmware Version, Update Availability
  • 🔧 Verbessert: Firmware-Version-Erkennung (dual keys)
→ Version 2.0.0-beta.6
  • 🎨 UI/UX Verbesserungen in Config Flow
  • 📡 Robustere Fehlerbehandlung für Netzwerkausfälle
  • 🔐 SSL/TLS Sicherheitsverbesserungen
→ Version 2.0.0-beta.5
  • 🌍 Multi-Language Support (10 Sprachen)
    • Deutsch, Englisch, Spanisch, Französisch, Italienisch
    • Niederländisch, Polnisch, Portugiesisch, Russisch, Chinesisch
  • 🔐 Security Updates und Input Sanitization
  • 📊 Erweiterte Sensor-Konfiguration
  • 🎯 Hardware Configuration System mit allen Namen
  • ✨ Climate & Cover Platform mit dynamischen Namen
→ Version 2.0.0-beta.4
  • 📊 Firmware Update Entity für Versionstracking
  • 🔧 Status Services für Pool-Diagnostics
  • 📝 Sensor Calibration Monitoring
→ Version 2.0.0-beta.3
  • 📊 Sensor-Reorganisation nach WebUI-Layout
  • ✨ Backwash Status Sensor hinzugefügt
  • 🔄 Bessere Koordinations-Logik
→ Version 2.0.0-beta.2
  • 🔧 Error Handling Services
  • 📝 Sensor Calibration Services
  • 🎯 Diagnostics Output
→ Version 2.0.0-beta.1
  • 🚀 Complete Refactor von 1.x zu 2.0 Architektur
  • 📦 Monorepo Setup mit separatem API Package
  • 🌊 Home Assistant 2026.5+ Unterstützung
  • ⚡ Performance Optimierungen mit Coordinator Pattern
  • 20+ Control Services für Pool-Management
[hr]

NEUE SENSOREN & FEATURES

Dosing Systems (erweitert):
  • H2O2 (Wasserstoffperoxid) Dosing System
  • Dosing Statistics pro System (täglich, gesamt)
  • Dosing Remaining Range Tracking
  • Canister Fill Level Management
Monitoring & Diagnostics:
  • Active Errors Sensor (alle Fehler in Klartext)
  • Pool Health Aggregation Sensor
  • Last Error Code mit Beschreibung
  • Connection Status & Latency Tracking
  • System Health Percentage
  • API Request Rate Monitoring
Hardware Detection:
  • Dosing Module Presence Detection
  • Extension Modules (EXT1, EXT2) Detection
  • DMX Module Detection
  • Digital Rules Module Detection
  • OmniTronic Valve State Tracking
Advanced Sensors:
  • Electrolysis Polarity Tracking
  • Temperature Sensor Calibration History
  • Digital Input Rule Stopwatch
  • RS485 Pump Power Consumption
  • Filter Pressure Monitoring
  • Flow Rate Sensors (4-20mA & Impulse)
[hr]

SERVICES (20+ verfügbar)

Error Management:
  • reset_blocking - Fehler-Blockierungen zurücksetzen
  • clear_error_history - Fehlerhistorie löschen
  • get_error_summary - Error Report abrufen
  • get_connection_status - Verbindungsstatus
Pool Control:
  • control_pump - Pumpensteuerung (Speed, Eco, Boost)
  • smart_dosing - Dosiersteuerung (manuell/auto)
  • manage_pv_surplus - PV-Überschuss-Modus
  • control_dmx_scenes - LED-Szenen-Steuerung
  • set_light_color_pulse - Farbpuls-Steuerung
  • test_output - Output-Testmodus
Configuration:
  • configure_dosing - Dosier-Konfiguration
  • set_dosing_target - Zielwert setzen
  • set_dosing_max_daily - Max. Tagesmenge
  • enable_dosing - Dosierung aktivieren
  • set_can_amount - Kanister-Menge aktualisieren
  • control_extension_relay - Relais-Steuerung
  • configure_sensor_calibration - Sensor-Kalibrierung
  • set_system_service - System-Services (FTP, SSH, etc.)
Automation Rules:
  • configure_temp_rule - Temperatur-Regel
  • configure_analog_rule - Analog-Eingang Regel
  • configure_switching_rule - Digital-Input Regel
  • configure_timer_rule - Timer-Regel
[hr]

BUG FIXES & STABILITY

Wichtige Fixes:
  • ✅ Entity-ID Duplizierung (violet_pool_controller_violet_pool_controller_...)
  • ✅ Firmware Version zeigt korrekt (nicht "aktuell" bei 1.1.9)
  • ✅ SSL/TLS Default (off → sicherer)
  • ✅ API Kompatibilität (violet-poolController-api 0.0.29 → 0.0.31)
  • ✅ JSON Parse Fehler bei Controller-Responses
  • ✅ Cover Steuerung (API Kompatibilität)
  • ✅ Firmware Update Detection (dual key support)
  • ✅ Device Prefix in Entity Names (automatic cleanup)
  • ✅ Sensor Key Name Korrektionen (SYSTEM_* keys)
  • ✅ Dosing Response Error Handling
Code Quality:
  • Mypy Type Checking Fixes
  • Ruff Linting auto-fixes
  • Import Optimization
  • Code Style Standardisierung
[hr]

DEPENDENCIES & REQUIREMENTS

Home Assistant:
  • Minimum: HA 2026.5.0
  • Maximum Python: 3.14+
Python Packages:
  • violet-poolController-api >= 0.0.31 (NEU im Monorepo)
  • aiohttp >= 3.14.1
  • voluptuous >= 0.16.0
Development:
  • ruff >= 0.15.16 (Linting & Formatting)
  • mypy >= 2.1.0 (Type Checking)
  • pytest >= 9.0.3 (Testing)
  • pytest-asyncio >= 1.3.0
  • pytest-homeassistant-custom-component >= 0.13.337
[hr]

INSTALLATION & MIGRATION

Für Nutzer von 1.2.4:
  1. Installation über HACS oder direkter Download
  2. Home Assistant neustarten
  3. Entity-Migration läuft automatisch (alte doppelte IDs werden bereinigt)
  4. Neue Error-Sensoren überprüfen
  5. Firmware Update Entity zeigt korrekt (nicht mehr "aktuell")
Abwärtskompatibilität:
  • ✅ Vollständig abwärtskompatibel zu 1.2.4
  • ✅ Keine Neukonfiguration notwendig
  • ✅ Automationen funktionieren unverändert
  • ✅ Bestehende Scripts/Szenen funktionieren
[hr]

PERFORMANCE IMPROVEMENTS
  • ⚡ Coordinator Pattern für effiziente Datenaktualisierung
  • ⚡ Rate Limiting (Token Bucket Algorithm)
  • ⚡ Circuit Breaker Pattern für Ausfallschutz
  • ⚡ Connection Pooling & Caching
  • ⚡ Async/Await für nicht-blockierende Operationen
  • ⚡ Batch Sensor Updates
[hr]

TESTING & QUALITY
  • ✅ 21 Test-Dateien (Sensors, Services, Integration, Security)
  • ✅ MyPy Type Checking (0 Errors)
  • ✅ Ruff Linting (0 Issues)
  • ✅ HomeAssistant Integration Tests
  • ✅ Mock Controller Environment
  • ✅ Security Testing
[hr]

KNOWN ISSUES & SOLUTIONS

Q: Doppelte Entity-IDs nach Update?
A: Das ist normal - Migration läuft beim Startup. Automatisch behoben in beta.9+.

Q: Firmware Update zeigt "aktuell" obwohl Controller 1.1.9 hat?
A: Bug in beta.8 und älter. BEHOBEN in beta.9! Update Entity zeigt jetzt korrekt "1.1.9".

Q: Alte Entity-ID (mit doppeltem Prefix) in Statistics?
A: Harmlos. Kann gelöscht werden (Settings → Geräte & Services → Entitäten → Löschen).

[hr]

📥 Download & Weitere Infos

HACS Installation:
Home Assistant → HACS → Integrations → Violet Pool Controller

GitHub:
Hauptrepository

Release Download:
v2.0.0-beta.9

[hr]

[right]Das war eine große Reise von 1.2.4 zu 2.0.0-beta.9! 🎉[/right]
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

wenn alles passt dann folgt die Tage der Release!!
 

Alle Reaktionen


Benutzeravatar
Alex
Administrator
Beiträge: 10389
Registriert: 28. Mai 2014, 23:00

Re: Violet Home Assistant Addon

Beitrag von Alex »

Fleißig gewesen 😁

>> H2O2 (Wasserstoffperoxid) Dosing System
Gibt tatsächlich zwar Konfigurationsparameter in der Konfigurationsdatei… hab aber am Ende nie Software für eine Peroxid- Dosierung gebaut.

>>Omnitronic
Kann Violet auch nicht. Wird sie auch nie können - gibt keine Ausgänge dafür. Kann nur die BaduBlue (wie auch RS485)… aber ich denke der Adapter funktioniert damit auch?!
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Hihi ,

ja habe ein wenig in die Tiefe gekuckt , vielleicht zu tief und gesehen was sich alles versteckt hat und habe es heute übernommen in den Code .
Ja würde mit der badu funktionieren . Habe aber meinen Test Server heute noch nicht damit gefüttert ob auch die Daten ankommen.

Es fehlt noch die badu Erkennung im Code deswegen wird gerade alles in die Violet geschrieben . Kommt noch . Muss erstmal sicherstellen das alle Funktionen funktionieren . Manche User melden Fehler was super ist , manche muss ich simulieren , bei über 522 Stück , viel Arbeit .
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Hier ein Beispiel anhand der neuen Version, wie die Update Funktion angezeigt wird .

Einfach auf aktualisieren klicken und Violet installiert automatisch das neue Update . Bitte habt dann Geduld , dauert etwas und dann ist das Update fertig.
Screenshot_20260616_050729_Home Assistant.jpg
Screenshot_20260616_050736_Home Assistant.jpg
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Hier mal ein kleines Update zu den neuen Pool Karten. Die zusätzlich installiert werden können , verzeiht mir die Bilder , irgendwann kommen professionelle 😂😂😂.
Die cards sind noch weit weg von perfekt aber sie laufen und sind im Einsatz .
Screenshot_20260616_052219_Home Assistant.jpg
Screenshot_20260616_052202_Home Assistant.jpg
Screenshot_20260616_052043_Home Assistant.jpg
Screenshot_20260616_052121_Home Assistant.jpg
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Neues Sicherheitsfeature: Breaking Change auch für Bestandsanlagen / Addon User!

☐ Allow Manual Safety-Critical Switches

🚨 WARNING: Enabling this allows direct control of:
- Dosing pumps (chemical overdose risk)
- Backwash (equipment damage risk)
- Water refill (flooding/overflow risk)

These operations can run indefinitely without time limits
and cause serious equipment damage or injury.

✅ Standard: DISABLED (Use Services with mandatory time limits)
☑ Only enable if you understand the risks


Power User können aktiv die Sicherheit umgehen , aber Standard ist es nicht aktiv!!!
 

Alle Reaktionen


stmeyer
Beiträge: 63
Registriert: 30. Juni 2025, 11:58

Re: Violet Home Assistant Addon

Beitrag von stmeyer »

Hi Basti,
ich habe mal wieder mit Deiner aktuellen Version gespielt, dazu habe ich mehrere Fragen:
- Ich kann ja bei der Einrichtung Sensoren aktivieren, bzw, deaktivieren. Ich sehe aber keinerlei Auswirkungen. Ich habe z.B. alle DMX-Sachen deaktiviert, weil ich das schlicht nicht nutze. Es sind aber alle DMX-Entitäten weiterhin vorhanden und sichtbar. Meine Hoffnung war, die unbenutzten Entitäten so los zu werden...
- Du hast wohl irgendwann begonnen, die Entitäten zu übersetzen (allerdings nur teilweise). Ich wollte Deine Dashboard-Beispiele mal testen, konkret das ultimate-Beispiel. Leider funktioniert da null, weil alle Entitäten dort noch auf englisch sind. Btw. der hintergrund, Entitäten zu übersetzen erschließt sich für mich nicht wirklich... Mittlerweile tut ein bisschen was, aber die Entitäten einzeln rauszusuchen ist nachmittagsfüllend.
- Ich habe nicht kapiert, wie man an Deine Poolkarten kommt, das wollte ich auch mal probieren.

Bitte nicht als meckern verstehen, nimm's bitte einfach als feedback...

Viele Grüße Stefan
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Hallo Stefan,
vielen Dank für dein Feedback — das war überhaupt kein Meckern, im Gegenteil. Du hast drei echte Fehler gefunden, und alle drei sind mit Version 2.3.4 jetzt behoben. Der Reihe nach:
1. "Ich kann Sensoren aktivieren/deaktivieren, sehe aber keinerlei Auswirkung"
Du hattest völlig recht — die Auswahl hat schlicht nichts getan. Dahinter steckten sogar drei unabhängige Fehler:
Beim Speichern der Auswahl wurde die Integration nicht neu geladen. Die Entitätsliste entsteht aber genau beim Start — die Integration lief also einfach mit der alten Auswahl weiter. Jetzt startet sie sich nach einer Änderung automatisch neu.
Entitäten, die dadurch wegfielen, blieben trotzdem stehen — als dauerhaft "nicht verfügbar". Die werden jetzt sauber entfernt. Keine Sorge: Entitäten, die du selbst deaktiviert hast, bleiben unangetastet.
Und speziell bei DMX: die DMX-Messwerte hatten intern gar keine Zuordnung zum Beleuchtungs-Feature und wurden deshalb immer angelegt, egal was du eingestellt hast. Genau das hast du gesehen. Das gleiche Problem gab es auch bei Abdeckung, Rückspülung und PV-Überschuss.
Nach dem Update also einmal in die Optionen, DMX abwählen — und die Entitäten sind wirklich weg.
2. "Die Entitäten sind übersetzt, das Ultimate-Dashboard funktioniert nicht"
Das war der interessanteste Fund, und dein Unmut war absolut berechtigt.
Es liegt nicht daran, dass ich halbherzig übersetzt hätte — sondern daran, wie Home Assistant Entity-IDs bildet: aus dem übersetzten Namen. Bei dir heißt der Sensor deshalb sensor.violet_pool_controller_wassertemperatur, bei einer englischen Installation sensor.violet_pool_controller_pool_temperature — für exakt dieselbe Entität. Damit ist jedes geteilte Dashboard sprachgebunden, auch meine Beispiele. Dass du nachmittagsfüllend Entitäten heraussuchen musstest, war also hausgemacht.
Ab 2.3.4 bekommen neue Entitäten immer die englische ID — unabhängig von deiner HA-Sprache. Die angezeigten Namen bleiben deutsch, nur die technische ID ist jetzt überall gleich. Damit funktionieren geteilte Dashboards sprachübergreifend.
Wichtig für dich: deine bestehenden Entitäten behalten ihre ID. Ein automatisches Umbenennen würde jede vorhandene Automation und jedes Dashboard zerschießen — das wollte ich niemandem antun. Für deinen Fall gibt es drei Wege, die ich jetzt auch dokumentiert habe:
die Entity-IDs im kopierten Dashboard-YAML per Suchen-und-Ersetzen anpassen (am schnellsten),
einzelne Entitäten in den Einstellungen umbenennen,
oder die Integration einmal löschen und neu einrichten — dann sind alle IDs englisch. Achtung: dabei gehen Verlauf und Anpassungen verloren.
3. "Ich habe nicht kapiert, wie man an die Poolkarten kommt"
Auch da lag der Fehler bei mir: Die Violet Pool Card ist ein eigenes Projekt und wird nicht zusammen mit der Integration installiert — das stand nirgends. Schlimmer noch, in einer meiner Beispieldateien war sie als "hypothetische Karte" beschrieben, und in der Anleitung der Karte selbst stand sogar eine falsche Repository-URL. Kein Wunder, dass du nicht drauf gekommen bist. Beides ist jetzt korrigiert.
Hier ist sie:
https://github.com/Xerolux/violet-pool-card
Installation über HACS:
HACS → Frontend → ⋮ (Drei-Punkte-Menü) → Eigene Repositories
URL https://github.com/Xerolux/violet-pool-card, Kategorie Dashboard → Hinzufügen
Violet Pool Card installieren
Home Assistant neu starten, Browser einmal hart neu laden (Strg+Umschalt+R)
Sie bringt 28 Kartentypen mit (Pumpe, Heizung, Solar, Dosierung, Abdeckung, Licht, Filter, Chemie, Rückspülung, Diagnostics …), mehrere Themes und einen grafischen Editor.
Neu: eine Wiki-Seite für Dashboards
Weil gleich zwei deiner Punkte daran hingen, gibt es jetzt eine eigene Seite, die erklärt welche Karte wofür gedacht ist, welche HACS-Karten sie braucht und wie man die Entity-IDs anpasst:
👉 https://xerolux.github.io/violet-hass/docs/#/dashboards
Ein Tipp für den Einstieg: pool_control_simple_blocks.yaml läuft ohne jede Zusatzinstallation. Das Ultimate-Dashboard braucht Mushroom, Slider Entity Row und Card Mod aus HACS — auch das steht jetzt dort.
Nochmals danke fürs Melden. Solches Feedback ist genau das, was ein Projekt besser macht — bitte gerne jederzeit wieder, auch wenn es sich für dich nach Meckern anfühlt. 🙂
Viele Grüße
Basti


Neue Version ist verfügbar
 

Alle Reaktionen


stmeyer
Beiträge: 63
Registriert: 30. Juni 2025, 11:58

Re: Violet Home Assistant Addon

Beitrag von stmeyer »

Hi,
vielen Dank, ich werde das addon löschen und neu installieren.
Die alten Daten sind eh unwichtig und dann sind die entities einheitlich englisch. Das fällt mir sonst bestimmt irgendwann auf die Füße. 😉

Einen Punkt hätte ich noch, das ist aber kein Fehler, sondern ein Feature-Wunsch:
Kannst Du für die Pooltemperatur ein climate-Object erzeugen, das auch kühlen kann?
Das is tatsächlich der einzige wirkliche Schwachpunkt an der violet, und Alex will da vermutlich erst ran, wenn nennenswert mehr User kühlen wollen.
Ich finde es aber völlig bescheuert, wenn in der Oberfläche eine hohe Solltemperatur steht (dass das Ventil überhaupt den Durchfluss für die WP freigibt), in Wirklichkeit aber auf eine niedrigere Temperatur (eingestellt in der WP) geregelt wird.
Und ich habe in den letzten knapp 6-8Wochen nahezu täglich gekühlt, ist also nicht so, dass das eine Ausnahme wäre.

Unterm Strich bedeutet das, man bräuchte eine Automation, die auf in beide Richtungen auf Solltemperatur regelt, das non-plus-ultra wäre, wenn die Solltemperatur im HA-addon auch die Solltemperatur der WP ändert. Für die WP gibt’s auch ein HA-addon, d.h. man müsste dort nur eine Entität beschreiben. Die WP wird dann auf „auto“ gestellt und dann läuft das.
Was meinst Du dazu?

Viele liebe Grüße Stefan
 

Alle Reaktionen


Basti
Beiträge: 310
Registriert: 9. Juni 2015, 09:31

Re: Violet Home Assistant Addon

Beitrag von Basti »

Hi Stefan,

zum Kühlen habe ich mir das im Detail angeschaut, und die Antwort ist zweigeteilt.

Ein cool-Modus an der Violet-Climate-Entität kommt nicht — nicht aus Bequemlichkeit, sondern weil die Violet schlicht nicht kühlen kann. Die API kennt genau zwei Wärme-Ausgänge, HEATER und SOLAR, beide heizen; im gesamten getReadings-Datensatz gibt es keinen einzigen Kühlbezug, und setFunctionManually hat keinen Kühlbefehl. Würde ich der Entität einen cool-Modus verpassen, hättest du einen Schalter in der Oberfläche, der entweder gar nichts tut oder — schlimmer — den Heizausgang schaltet. Genau die Sorte irreführende Anzeige, die dich an der jetzigen Lösung ja stört. Solange Alex das nicht in der Firmware nachrüstet, wäre jede Kühlanzeige in HA erfunden.

Was ich stattdessen gebaut habe, macht genau das, was du beschreibst. Es gibt jetzt einen Blueprint (pool_heatpump_cooling.yaml), der Pool und Wärmepumpe zusammenbringt:

Ein input_number-Helper ist die einzige Solltemperatur, die du anfasst — und er wird auf die Wärmepumpe durchgeschrieben. Damit ist der Wert, den du in HA einstellst, tatsächlich der Wert, auf den die WP regelt. Kein Auseinanderlaufen von Anzeige und Realität mehr.
Pool über Soll + Hysterese → WP auf cool. Unter Soll − Hysterese → heat. Dazwischen ein einstellbarer Ruhemodus (auto als Vorgabe, wie du es beschreibst).
Optional hält der Blueprint den Violet-Heizsollwert auf einer einstellbaren Freigabetemperatur, damit der Controller das Ventil offen lässt und die WP Durchfluss sieht. Dein bisheriger Workaround, aber automatisch und dokumentiert statt als stille Falle in der Oberfläche.

Der Blueprint schickt einen Modus nur, wenn die Wärmepumpe ihn in hvac_modes meldet, und schreibt gar nichts, solange ein Messwert unavailable ist — damit kann eine hängende Sensormeldung die WP nicht in die falsche Richtung schicken.

Zum Umbenennen: dass du neu installierst, ist der saubere Weg — dann sind die Entity-IDs einheitlich englisch, und seit 2.3.4 sind sie ohnehin fest an den Controller-Namen gebunden statt an die Sprache.

Viele Grüße
Basti

Ich habe da aber was in der Schublade, hatte mir mal dazu gedanken gemacht, weil ich über meine Solarthermie kühle. Vielleicht hilft es dir:

Hier der Blueprint:
https://github.com/Xerolux/violet-hass/ ... oling.yaml

Code: Alles auswählen

blueprint:
  name: Violet Pool - Heat Pump Heating & Cooling
  description: |
    Regulates the pool temperature in BOTH directions with a heat pump that can
    heat and cool.

    Why this blueprint exists: the Violet Pool Controller has no cooling
    function - its API only knows the HEATER and SOLAR outputs, both of which
    heat. Its climate entities therefore never offer a "cool" mode. A heat pump
    that can cool is controlled through its own integration, so the two are
    tied together here in an automation instead of inside the Violet
    integration.

    What it does:
    - One target temperature (an input_number helper) is the single source of
      truth. Every change is written through to the heat pump, so the value you
      see in Home Assistant is the value the heat pump regulates to.
    - Pool warmer than target + hysteresis  -> heat pump to "cool"
    - Pool colder than target - hysteresis  -> heat pump to "heat"
    - Inside the deadband                   -> configurable idle mode
    - Optionally holds the Violet heater setpoint at a high release temperature
      so the controller keeps the valve open and the heat pump sees flow. This
      replaces the manual workaround of leaving a misleading high setpoint in
      the Violet UI.

    REQUIRED:
    - input_number helper for the target temperature
      (Settings -> Devices & Services -> Helpers -> Number)

    VERSION: 1.0.0 (2026-08-17)
  domain: automation
  source_url: https://github.com/xerolux/violet-hass/blob/main/blueprints/automation/pool_heatpump_cooling.yaml
  homeassistant:
    min_version: "2026.1.0"
  input:
    pool_temperature_sensor:
      name: Pool Temperature Sensor
      description: Sensor for the current pool temperature
      selector:
        entity:
          filter:
            - integration: violet_pool_controller
            - domain: sensor
            - device_class: temperature
    heat_pump:
      name: Heat Pump
      description: >
        Climate entity of the heat pump (from its own integration, not from the
        Violet controller). It must support the heat and cool modes.
      selector:
        entity:
          filter:
            - domain: climate
    target_temperature_helper:
      name: Target Temperature Helper
      description: >
        input_number helper holding the desired pool temperature. Put this on
        your dashboard - it is the only place you set the temperature.
      selector:
        entity:
          filter:
            - domain: input_number
    hysteresis:
      name: Hysteresis
      description: >
        How far the pool may drift from the target before heating or cooling
        starts. Too small a value makes the heat pump switch direction
        constantly.
      default: 0.5
      selector:
        number:
          min: 0.2
          max: 3.0
          step: 0.1
          unit_of_measurement: °C
          mode: slider
    cooling_enabled:
      name: Allow Cooling
      description: Turn off to use this automation for heating only
      default: true
      selector:
        boolean:
    idle_mode:
      name: Mode Inside the Deadband
      description: >
        What the heat pump should do once the target is reached. "unchanged"
        leaves whatever mode it is in.
      default: "auto"
      selector:
        select:
          options:
            - "auto"
            - "heat_cool"
            - "off"
            - "unchanged"
    violet_heater:
      name: Violet Heater (Optional)
      description: >
        Climate entity of the Violet heater. When set, its setpoint is held at
        the release temperature below so the controller enables the flow the
        heat pump needs. Leave empty if your installation does not need it.
      default: ""
      selector:
        entity:
          filter:
            - integration: violet_pool_controller
            - domain: climate
          multiple: false
    release_temperature:
      name: Release Temperature
      description: >
        Setpoint written to the Violet heater so it keeps the valve open. Only
        used when a Violet heater is selected above.
      default: 40
      selector:
        number:
          min: 20
          max: 40
          step: 0.5
          unit_of_measurement: °C
          mode: slider
    enable_switch:
      name: Enable Switch (Optional)
      description: Automation only runs while this switch is on
      default: ""
      selector:
        entity:
          filter:
            - domain:
                - input_boolean
                - switch
          multiple: false
    notification_entity:
      name: Notification Service (Optional)
      description: Service for notifications (e.g. notify.mobile_app_phone)
      default: ""
      selector:
        text:

variables:
  pool_temp_sensor: !input pool_temperature_sensor
  heat_pump_entity: !input heat_pump
  target_helper: !input target_temperature_helper
  hysteresis_value: !input hysteresis
  cooling_allowed: !input cooling_enabled
  idle_hvac_mode: !input idle_mode
  violet_heater_entity: !input violet_heater
  release_temp: !input release_temperature
  gate_entity: !input enable_switch
  notify_service: !input notification_entity

  current_temp: "{{ states(pool_temp_sensor) | float(0) }}"
  target_temp: "{{ states(target_helper) | float(0) }}"

  # Modes the heat pump actually advertises - never send one it does not have.
  supported_modes: "{{ state_attr(heat_pump_entity, 'hvac_modes') | default([], true) }}"
  can_cool: "{{ cooling_allowed and 'cool' in supported_modes }}"

  # The heat pump's own setpoint, so it is only rewritten when it differs.
  pump_target: "{{ state_attr(heat_pump_entity, 'temperature') | float(-999) }}"
  target_needs_sync: "{{ (pump_target - target_temp) | abs > 0.05 }}"

  wants_cooling: "{{ current_temp > (target_temp + hysteresis_value) }}"
  wants_heating: "{{ current_temp < (target_temp - hysteresis_value) }}"

triggers:
  - trigger: state
    entity_id: !input pool_temperature_sensor
    for:
      minutes: 2
    id: pool_temp
    not_to:
      - "unavailable"
      - "unknown"
  - trigger: state
    entity_id: !input target_temperature_helper
    id: target_changed
  - trigger: time_pattern
    minutes: /15
    id: periodic_check
  - trigger: homeassistant
    event: start
    id: ha_start

conditions:
  # Gate switch off -> do nothing at all.
  - condition: template
    value_template: >
      {{ gate_entity in [none, ''] or is_state(gate_entity, 'on') }}
  # Never act on stale readings; a wrong value would send the pump the wrong way.
  - condition: template
    value_template: >
      {{ states(pool_temp_sensor) not in ['unavailable', 'unknown', 'none', ''] and
         states(target_helper) not in ['unavailable', 'unknown', 'none', ''] and
         states(heat_pump_entity) not in ['unavailable', 'unknown'] }}

actions:
  # --- 1. The target temperature in Home Assistant IS the heat pump's target ---
  - if:
      - condition: template
        value_template: "{{ target_needs_sync }}"
    then:
      - action: climate.set_temperature
        target:
          entity_id: !input heat_pump
        data:
          temperature: "{{ target_temp }}"

  # --- 2. Keep the Violet controller's valve open, if configured ---
  - if:
      - condition: template
        value_template: >
          {{ violet_heater_entity not in [none, ''] and
             (state_attr(violet_heater_entity, 'temperature') | float(-999) - release_temp) | abs > 0.05 }}
    then:
      - action: climate.set_temperature
        target:
          entity_id: "{{ violet_heater_entity }}"
        data:
          temperature: "{{ release_temp }}"

  # --- 3. Decide the direction ---
  - choose:
      # Too warm -> cool
      - conditions:
          - condition: template
            value_template: "{{ wants_cooling and can_cool }}"
        sequence:
          - if:
              - condition: template
                value_template: "{{ not is_state(heat_pump_entity, 'cool') }}"
            then:
              - action: climate.set_hvac_mode
                target:
                  entity_id: !input heat_pump
                data:
                  hvac_mode: cool
              - if:
                  - condition: template
                    value_template: "{{ notify_service != '' }}"
                then:
                  - action: "{{ notify_service }}"
                    data:
                      title: "❄️ Pool Cooling"
                      message: >
                        {{ current_temp }}°C is above the target of
                        {{ target_temp }}°C - heat pump set to cooling.

      # Too cold -> heat
      - conditions:
          - condition: template
            value_template: "{{ wants_heating and 'heat' in supported_modes }}"
        sequence:
          - if:
              - condition: template
                value_template: "{{ not is_state(heat_pump_entity, 'heat') }}"
            then:
              - action: climate.set_hvac_mode
                target:
                  entity_id: !input heat_pump
                data:
                  hvac_mode: heat
              - if:
                  - condition: template
                    value_template: "{{ notify_service != '' }}"
                then:
                  - action: "{{ notify_service }}"
                    data:
                      title: "🔥 Pool Heating"
                      message: >
                        {{ current_temp }}°C is below the target of
                        {{ target_temp }}°C - heat pump set to heating.

    # Inside the deadband -> idle mode
    default:
      - if:
          - condition: template
            value_template: >
              {{ idle_hvac_mode != 'unchanged' and
                 idle_hvac_mode in supported_modes and
                 not is_state(heat_pump_entity, idle_hvac_mode) }}
        then:
          - action: climate.set_hvac_mode
            target:
              entity_id: !input heat_pump
            data:
              hvac_mode: "{{ idle_hvac_mode }}"

mode: single
max_exceeded: silent
 

Alle Reaktionen