Das Modul verbindet ein openHASP-Display über MQTT mit dem IPS-System. Die für das Display gestalteten Seiten und ihren Objekten können mit Variablen oder Skripten von IPS synchronisiert werden.
- Funktionsumfang
- Voraussetzungen
- Installation
- Einrichten der Instanzen in IP-Symcon
- Statusvariablen und Profile
- Visualisierung
- PHP-Befehlsreferenz
- Versionshistorie
Das Modul übersetzt Aktionen und Ereignisse in IP-Symcon und aktualisiert umgekehrt die Variablen in IP-Symcon zur Darstellung auf dem Display.
Derzeit werden folgende UI-Objekte unterstützt:
- Arc
- Button
- Checkbox
- Dropdown
- Gauge
- Image
- Label
- LED Inicator
- Line Meter
- Object
- Roller
- Slider
- Switch
- Toggle Button
Was macht bzw. was kann das Modul?
- Mapping von IPS-Werten auf UI-Objekte im Mini-Display
- Aktionen auf dem Display werden nach IPS gesendet
- Verschiedenste Konfigurationsmöglichkeiten zur visuellen Darstellung der Werte
- Unterstützt verschiedene Displayformate und Layouts.
- Übergabe der Aktion und Ausführung via Script
- Abfrage von (Status-)Informationen
- Ausführung von OpenHASP System- bzw. Globalen Kommandos
- Automatische Schaltung für Helligkeit und Einbrennschutz
- Verwaltung, Prüfung und Sicherung des Seitenlayouts
- IP-Symcon ab Version 7.0
- Über den Modul Store das Modul Raumdisplay installieren.
- Alternativ Über das Modul-Control folgende URL hinzufügen.
https://github.com/Wilkware/RoomDisplay
odergit://github.com/Wilkware/RoomDisplay.git
- Unter "Instanz hinzufügen" ist das 'Room Display'-Modul (Alias: 'Raumdisplay') unter dem Hersteller '(Geräte)' aufgeführt.
Konfigurationsseite:
Einstellungsbereich:
Anzeigegerät …
Name | Beschreibung |
---|---|
Gerätenamen | Name des Gerätes (= Hostname) |
Geräteadresse | IP ist optional , aber ohne gehen Downloads von Screenshots und der Designdatei (pages.jsonl) nicht. |
Seitenaufbau …
Name | Beschreibung |
---|---|
Datei (pages.jsonl) | JSONL formatierter Inhalt zur Syncronisierung des Seitenaufbaus |
HERUNTERLADEN | Schalter um den Seitenaufbau vom Gerät herunterzuladen |
HOCHRLADEN | Schalter um den Seitenaufbau zum Gerät senden. |
PRÜFEN | Schalter um den Inhalt des Seitenaufbaus auf JSONL Konformität zu prüfen. |
SICHERN | Schalter um den Seitenaufbau vom Gerät herunterzuladen und in eine Datei zu schreiben. |
Objektzuordnung …
Name | Beschreibung |
---|---|
Objekte | Table zur Zuordnung zwischen UI- und IPS-Objekt |
DUPLIZIEREN | Schalter um selektierte Zeile zu duplizieren (und gleich einzusortieren) |
NEUSORTIEREN | Schalter um die Liste endsprechend Seite und ID zu sortieren |
Hier eine kurze Erklärung der Spalten:
- Typ, Seite und ID - sollten selbsterklärend sein und identifizieren das UI-Object
- Kommentar - auch klar, aber nicht ganz unwichtig um sich bei der Vielzahl von Mappings zurecht zu finden. Ich habe es extra eingeführt, weil ich zum Teil die Übersicht zu behalten. Empfind es es als sehr hilfreich.
- Beschriftung - eigentlich alles was man bei der Visu an Text sieht. Also bei Buttons die Icons oder Titel, bei Labels die Beschriftung usw.
- Wert - Zustände von Toggle Buttons, Sourcen von Images oder Hintergrundfarben von Objekten
- Umrechnung - Transformationsweg von IPS zum DISPLAY, als Platzhalter kann {{val}} verwendet werden, was den Roh-Wert der Variablenänderung beinhaltet. Im Endeffekt ist das ein PHP eval() Ausdruck (ohne Klammern und Semikolon drum herum). Das Ergebnis davon wird dann bei Beschriftung oder/und Wert eingesetzt. Spezialwert -1 bedeutet keine weitere Auswertung vornehmen, also den Workflow stoppen.
- _ Rückrechnung_ - Transformationsweg von DISPLAY zu IPS. Das Gleiche wie bei Umrechnung nur Umgekehrt, d.h. eine -1 bewirkt keine Weiterverarbeitung in IPS.
- Verknüpfung - die Verknüpfung zwischen Design-Objekt und IPS-Variable.
Erweiterte Einstellungen …
Name | Beschreibung |
---|---|
Hintergrundbeleuchtung automatisch schalten! | Schaltet die Beleuchtung in Abhängigkeit der zeitlichen Nutzung |
Normal (kein Leerlauf) | Wert der Helligkeit bei normaler Nutzung des Displays |
Kurzer Leerlauf | Wert der Helligkeit nach kürzeren Nicht-Nutzung des Displays |
Langer Leerlauf | Wert der Helligkeit nach längerer Nicht-Nutzung des Displays |
Einbrennschutz automatisch aktivieren! | Schaltet die Beleuchtung im Leerlauf (idle->long) automatisch ab |
Zyklus | Zeitlicher Zyklus in Minuten in dem der Einbrennschutz für 30 Sekunden eingeschaltet wird. |
Im Ruhezustand auf Seite 1 wechseln! | Schaltet im kurzen Leerlauf auf Seite 1 um (idle->short) |
Keine Syncronisierung im Ruhezustand! | Schaltet die Synchrinistaion im Leerlauf ab (idle->long) |
Nachricht an Skript weiterleiten: | Leitet die Aktion bzw. das Ereignis direkt weiter. Die Daten können im Script mit der Variable $_IPS['Data'] empfangen und ausgewertet werden. |
Aktionsbereich:
Aktion ausführen …
- Seiten neu laden - liest die pages.jsonl neu ein und rendert die Seiten neu
- Seiten löschen - alle Seiten löschen
- Synchronisieren - gerade in der Einstellung- bzw. Entwicklungsphase ein ganz wichtiger Button, er geht durch die Mappingliste und ruft für die verknüpften Variablen deren Werte ab und stellt sie dar. Diese Funktion wird auch immer aufgerufen wenn ein Gerät ONLINE geht! Gerade wenn man alles Seiten gelöscht hat und neu lädt ist der Button sehr hilfreich!
- Neustart - Reboot des Gerätes
Steitennavigation ...
- Vorher, Zurück, Weiter - eigentlich auch selbsterklärend, mit den Buttons kann man auf den Seiten navigieren
Abfrage von …
- Stimmungslicht - Anzeige der aktuellen Moodlight-Einstellungen
- Status - Anzeige der Status-Update-Infos
- Bildschirmfoto - Erstellen und Speichern eines aktuellen Screenshots (aktuelle Seite), siehe auch imgs Ordner im Modul
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
Name | Typ | Beschreibung |
---|---|---|
Status | Boolean | Verfügbarkeitsstaus (siehe WWXRD.Status) |
Leerlauf | Integer | Zeigt den Leerlaufzustand an (siehe WWXRD.Status) |
Hintergrundbeleuchtung | Integer | Wert der Hintergrundbeleuchtung (siehe WWXRD.Backlight) |
Seite | Integer | Aktuell aufgezeigte Seite (siehe WWXRD.Page) |
Folgendes Profil wird angelegt:
Name | Typ | Beschreibung |
---|---|---|
WWXRD.Status | Boolean | Online (true) bzw. Offline (false) |
WWXRD.Idle | Integer | Aus, Kurz oder Lang (0, 1, 2) |
WWXRD.Backlight | Integer | Helligkeitswert (1 .. 255) |
WWXRD.Page | Integer | Seitennummer (1 .. 12) |
Man könnte die Statusvariablen direkt in die Visualisierung verlinken.
void WWXRD_DisableIdle(int $InstanzID, bool $disable);
Verhindert das automatische abschalten des Display (Hintergrundbeleuchtung).
Wird true übergeben geht das Display nicht mehr in den Leerlaufmodus; abschalten kann man es wieder mit false.
Die Funktion liefert keinerlei Rückgabewert.
Beispiel: WWXRD_DisableIdle(12345, true);
void WWXRD_SendCommand(int $InstanzID, string $command);
Sendet ein Kommando via MQTT an das Display.
Die Funktion liefert keinerlei Rückgabewert.
Beispiel: WWXRD_SendCommand(12345, '["p1b2.text=Hallo"]');
void WWXRD_SendJSONL(int $InstanzID, array $data);
Sendet JSON Lines (JSONL) via MQTT an das Display.
Die Funktion liefert keinerlei Rückgabewert.
Beispiel: WWXRD_SendJSONL(12345, ['{"comment":" --- KOMMENTAR ZEILE --- "}']);
v1.8.20241110
- NEU: Neue Sektion zum verwalten des Seitenaufbaus (Layout)
- FIX: Beispielbilder teilweise umbennant/korriegiert
- FIX: Dokumentation vervollständigt
v1.7.20241106
- NEU: Buttons für das Sortieren der Objekt-Einträge nach Seite und ID
- NEU: Buttons für das Duplizieren eines Mapping-Eintages
- NEU: Funktion DisableIdle hinzugefügt (Hilfreich bei Konfigurations-Sessions)
- FIX: Automatisches Schalten auf Seite 1 erfolgt nun erst bei langem Leerlauf
- FIX: Dokumentation/Markdown gefixt
v1.6.20241023
- NEU: Syncronisation deaktivierbar im Leerlauf
- NEU: Buttons im Aktionsbereich komplett neu organisiert
- FIX: Aktionen benötigen keine 2 Buttons mehr
- FIX: Namen und Übersetzungen überarbeitet
v1.5.20240906
- NEU: Helligkeitssteuerung (Erweiterte Einstellungen) komplett überarbeitet
- NEU: Automatische Abschaltung durch Intervallschaltung für Einbrennschutz ersetzt
- FIX: Kommentare und Debug-Meldungen vereinheitlicht und optimiert
- FIX: Dokumentation überarbeitet
v1.4.20240905
- NEU: UI-Objekt Checkbox wird jetzt unterstützt
- FIX: Textausgabe für Toogle Button korrigiert
- FIX: Konfigurationsbeispiele (Button) gefixt
v1.3.20240827
- NEU: Neue Beispielbilder und Konfigurationen hinzugefügt
- NEU: Neben dem Platzhalter {{val}} wird jetzt auch {{txt}} bei Rückrechnung unterstützt
- FIX: Unterstützung für ARC, BUTTON, LINEMETER und ROLLER hinzugefügt bzw. verbessert
- FIX: Fehler bei Umrechnung und Rückrechnung korrigiert
- FIX: Fehler bei Auswertung von booleschen Werten nochmal korrigiert
- FIX: Textausgabe mit Sonderzeichen jetzt bei allen Objekten möglich
- FIX: Bessere und mehr Debug-Meldungen
v1.2.20240728
- NEU: Hintergrundbilder und Beispielbilder hinzugefügt
- NEU: Bibliotheks- bzw. Modulinfos vereinheitlicht
- FIX: Fehler beim Abrufen von 'MoodLight' korrigiert
- FIX: Problem beim Auswerten von booleschen Werten gelöst
v1.1.20240730
- NEU: Actionbereich komplett erweitert (Navigation, Aktionen, Informationen)
v1.0.20240723
- NEU: Initialversion
Ich möchte mich für die Unterstützung bei der Entwicklung dieses Moduls bedanken bei ...
- firebuster : für die geniale und hervorragende Vorarbeit mit seinem Modul openHASP 👍
- ralf: für den stetigen Austausch rund um das Display und Modulfunktionlitäten 👏
Vielen Dank an Euch!
Seit nunmehr über 10 Jahren fasziniert mich das Thema Haussteuerung. In den letzten Jahren betätige ich mich auch intensiv in der IP-Symcon Community und steuere dort verschiedenste Skript und Module bei. Ihr findet mich dort unter dem Namen @pitti 😉
Die Software ist für die nicht kommerzielle Nutzung kostenlos, über eine Spende bei Gefallen des Moduls würde ich mich freuen.
Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International