Dashboard
Das System.Dashboard.ips.php-Skript ist eine zentrale Meldungsanzeige für die TileVisu. Jedes andere Skript kann mit einer einzigen Zeile eine Meldung hinzufügen – zum Beispiel „Batteriestatus überprüfen!“ oder „1 Blitzer gemeldet!“. Die Meldungen erscheinen gesammelt in einer Kachel, lassen sich per Klick bestätigen, verschwinden auf Wunsch zu einem festen Zeitpunkt von selbst und können sogar direkt zu einer passenden Seite der Visualisierung springen.

Wie alles begann
Die Idee stammt aus dem Jahr 2010: Damals hat Horst im Forum seine Meldungsanzeige im WebFront vorgestellt, die später von lueralba für den Raspberry Pi angepasst wurde. Ich habe das Skript ab 2017 für mich weiterentwickelt und um vieles ergänzt: Meldungstypen mit eigenen Farben, ein Meldungstyp zum Seitenwechsel, die Auswahl der Reihenfolge, Zeitstempel und das Bestätigen per WebHook.
Mit der neuen TileVisu kam 2023 eine eigene Kachel-Variante dazu, und mit der Version 7.0 habe ich das Skript komplett auf die TileVisu umgestellt und dabei kräftig entschlackt. Wer die bisherige Version kennt, findet sich schnell zurecht – auf das klassische WebFront wird aber keine Rücksicht mehr genommen.
Hinweis: Ab Version 7.0 unterstützt das Skript nur noch die TileVisu, nicht mehr das WebFront.
Meldungstypen
Jede Meldung hat einen Typ, der ihre Farbe bestimmt:
| Typ | Bedeutung | Farbe |
|---|---|---|
| 0 | Info | grün |
| 1 | Fehler | rot |
| 2 | Warnung | gelb |
| 3 | Todo | blau |
| 4 | Goto – Klick auf den Text springt zu einem Objekt der TileVisu | orange |
Zu jeder Meldung lässt sich außerdem ein Icon aus den Assets der TileVisu angeben, zum Beispiel phone. Ohne Angabe wird message verwendet.
Voraussetzungen
- Symcon ab Version 7 mit TileVisu
- Meine Symcon Skript-Bibliothek
(
__autoload.php,System.Functions.ips.php,System.Locals.ips.php) - Ein WebHook für die OK-Schaltflächen und für Meldungen mit Verlinkung (siehe Installation)
Installation
- Skript anlegen: In Symcon ein neues Skript erstellen und den Inhalt von System.Dashboard.ips.php hineinkopieren.
- TileVisu eintragen: In der
System.Locals.ips.phpunter__WWX['VID_TV']die ID der eigenen TileVisu hinterlegen, sie wird für das Springen zu Objekten benötigt. - Skript ausführen: Einmal in der Konsole ausführen. Dabei entstehen die Variablen Meldungen (die Kachel), Meldungstyp (zum Löschen aller Meldungen eines Typs), Meldungsnummer und die versteckte Variable Daten.
- WebHook einrichten: Im WebHook Control einen Hook
/hook/msganlegen, der auf das Skript zeigt. Darüber laufen das Bestätigen per OK und das Springen zu einem Objekt. - Kachel platzieren: Die Variable Meldungen in der TileVisu anzeigen.
Ein erneutes manuelles Ausführen setzt alle Objekte wieder auf den Ausgangszustand und löscht dabei alle Meldungen.
Meldungen aus eigenen Skripten
Alle Aktionen laufen über IPS_RunScriptWaitEx mit der ID des Dashboard-Skripts, hier als 12345 angenommen.
Meldung hinzufügen
$number = IPS_RunScriptWaitEx(12345, [
'action' => 'add',
'text' => 'Batteriestatus überprüfen!',
'type' => 2,
'removable' => true,
'expires' => time() + 3600,
]);
Zurückgegeben wird die Nummer der neuen Meldung, bei einem Fehler 0. Bis auf text sind alle Parameter optional:
| Parameter | Bedeutung |
|---|---|
text | Meldungstext |
type | Meldungstyp 0–4 (siehe oben), Standard ist 0 |
image | Name des Icons aus den Assets der TileVisu, Standard ist message |
removable | true, wenn die Meldung per Klick auf OK gelöscht werden darf |
expires | Zeitpunkt als Unix-Timestamp, zu dem die Meldung automatisch gelöscht wird |
open | ID eines Objekts der TileVisu, zu dem ein Klick auf den Meldungstext springt |
Meldung mit Sprung in die Visualisierung
$number = IPS_RunScriptWaitEx(12345, [
'action' => 'add',
'text' => 'Anruf in Abwesenheit',
'type' => 4,
'image' => 'phone',
'open' => 23456,
]);
Die ID bei open muss zu einem Objekt (Kategorie, Link usw.) gehören, das in der konfigurierten TileVisu vorhanden ist.
Meldungen löschen
// Eine bestimmte Meldung über ihre Nummer
$success = IPS_RunScriptWaitEx(12345, ['action' => 'remove', 'number' => $number]);
// Alle Meldungen eines Typs, z. B. alle Warnungen
$success = IPS_RunScriptWaitEx(12345, ['action' => 'removeType', 'type' => 2]);
// Alle Meldungen
$success = IPS_RunScriptWaitEx(12345, ['action' => 'removeAll']);
Bei Erfolg wird 1 zurückgegeben, sonst 0.
Konfiguration
Im Abschnitt „Konfiguration“ lässt sich die Darstellung anpassen:
| Einstellung | Bedeutung |
|---|---|
$tvid | ID der TileVisu, standardmäßig aus __WWX['VID_TV'] |
$fifo | true: älteste Meldung zuerst, false: neueste Meldung zuerst |
$nomsg | Hinweis anzeigen, wenn keine Meldung vorhanden ist |
$noico | Icons ausblenden |
$bfort | OK-Schaltfläche vor dem Text anzeigen (nur zusammen mit $noico) |
$types | Namen und Farben der Meldungstypen |
Fragen und Anregungen gerne in meinem Forum-Thread zur Skript-Bibliothek .