15-05-2015, 12:34:32
(Dieser Beitrag wurde zuletzt bearbeitet: 23-05-2015, 08:02:04 von HansLenz.)
Mein Statusboard 2.0 ist endlich fertig geworden. Ich wollte weg
1. von den überdetaillierten Anzeigen im Sekundentakt, die eh nie gebraucht werden
2. von Zooper, das mit dem Anzeigevolumen/Zeit mit erheblichen Problemen zu kämpfen hat
3. Entkopplung von Statusabfrage und -verarbeitung
Das SB basiert jetzt auf den Komponenten
1. Tasker
2. aSmarthome Tasker
3. SQLite-DB & Verwaltungsapps
Leider gibt es ein paar Wermutstropfen: Tasker kann nicht direkt mit der SQLite-DB umgehen, sondern muss über die Shell das Command SQLite3 verwenden.
Und das ist längst nicht auf jedem Device installiert. Zur Nachinstallation wird zwingend root benötigt.
Die SQLite-DB ist nicht unbedingt besonders schnell und hat nur einen DB-Connector. Wegen des Shellzugriffs müssen die Resultate aus einem String geparsed werden.
Der grobe Ablauf ist in etwa
1. mit einer aSmarthome-Statusabfrage wird die SQLite-DB mit Datensätzen initialisiert.
2. mit einem SQLite Managementtool wird die DB bearbeitet
a) Anpassung der Reihenfolge der Darstellung von max. 10 Räumen (exkl. ÜBERGREIFEND)
b) Anpassung der Gerätedatensätze: Festlegen Typ, Subtype, Zuweisen der UI-Anzeigefeldnamen, Eintragen der Device-IDs usw.
3. Das Programm hat jetzt durch die DB "gelernt", welche Räume wo zu platzieren, und welche Elemente in den Räumen darzustellen sind
Der erste Aufruf ohne Berücksichtigung der aktuellen Stati sieht dann etwa so aus:
Die aSmarthome-Datei shstatus wird von einer Tasker-App regelmäßig abgeholt und ihr MD5 Wert mit dem der vorigen Datei verglichen. Ist der Wert neu, wird, zur Entkopplung von Statusabfrage und -verarbeitung, die Datei shstatus.txt unter dem Namen {MD5}.txt in einen anderen Ordner kopiert, und der MD5 Wert in eine Verarbeitungsqueue(-Tabelle) der SQLite-DB geschrieben.
Eine weitere Tasker-App wartet auf Einträge in der Queue, verarbeitet die Daten, schreibt die Änderungen in die SQLite-DB und löscht Datei und Queue-Eintrag.
Die eigentliche Anzeige-App liest ausschließlich die Daten der SQLite-DB und sorgt für die richtige Darstellung.
1 2
Für die Temperaturanzeigen sind verschiedene Farbcodes implementiert:
Isttemperatur > (Soll + 1) --> Orange
Ist < (Soll - 1) --> Blau
Ist < 0 --> Blauer Hintergrund
Verschiedene Warn- und Hinweissymbole erscheinen automatisch entweder innerhalb der Raumschaltflächen oder im Informationen- oder Einstellungenbereich.
1 Bis zu 10 Räume werden erkannt und in der festgelegten Reihenfolge angezeigt. Die Schaltflächen Informationen und Einstellungen sind voreingestellt. In der Regel sollen die Geräte aus ÜBERGREIFEND in Einstellungen landen.
2 In jedem Raum werden bis zu 5 Lichtschalter und bis zu 5 Geräte erkannt. Eine Sonderschaltung, in dem Fall "Szene" genannt, kann verwendet werden, ebenso eine Kamera.
[--> 2. Teil wegen Beschränkung auf 5 attachments]
1. von den überdetaillierten Anzeigen im Sekundentakt, die eh nie gebraucht werden
2. von Zooper, das mit dem Anzeigevolumen/Zeit mit erheblichen Problemen zu kämpfen hat
3. Entkopplung von Statusabfrage und -verarbeitung
Das SB basiert jetzt auf den Komponenten
1. Tasker
2. aSmarthome Tasker
3. SQLite-DB & Verwaltungsapps
Leider gibt es ein paar Wermutstropfen: Tasker kann nicht direkt mit der SQLite-DB umgehen, sondern muss über die Shell das Command SQLite3 verwenden.
Und das ist längst nicht auf jedem Device installiert. Zur Nachinstallation wird zwingend root benötigt.
Die SQLite-DB ist nicht unbedingt besonders schnell und hat nur einen DB-Connector. Wegen des Shellzugriffs müssen die Resultate aus einem String geparsed werden.
Der grobe Ablauf ist in etwa
1. mit einer aSmarthome-Statusabfrage wird die SQLite-DB mit Datensätzen initialisiert.
2. mit einem SQLite Managementtool wird die DB bearbeitet
a) Anpassung der Reihenfolge der Darstellung von max. 10 Räumen (exkl. ÜBERGREIFEND)
b) Anpassung der Gerätedatensätze: Festlegen Typ, Subtype, Zuweisen der UI-Anzeigefeldnamen, Eintragen der Device-IDs usw.
3. Das Programm hat jetzt durch die DB "gelernt", welche Räume wo zu platzieren, und welche Elemente in den Räumen darzustellen sind
Der erste Aufruf ohne Berücksichtigung der aktuellen Stati sieht dann etwa so aus:
Die aSmarthome-Datei shstatus wird von einer Tasker-App regelmäßig abgeholt und ihr MD5 Wert mit dem der vorigen Datei verglichen. Ist der Wert neu, wird, zur Entkopplung von Statusabfrage und -verarbeitung, die Datei shstatus.txt unter dem Namen {MD5}.txt in einen anderen Ordner kopiert, und der MD5 Wert in eine Verarbeitungsqueue(-Tabelle) der SQLite-DB geschrieben.
Eine weitere Tasker-App wartet auf Einträge in der Queue, verarbeitet die Daten, schreibt die Änderungen in die SQLite-DB und löscht Datei und Queue-Eintrag.
Die eigentliche Anzeige-App liest ausschließlich die Daten der SQLite-DB und sorgt für die richtige Darstellung.
1 2
Für die Temperaturanzeigen sind verschiedene Farbcodes implementiert:
Isttemperatur > (Soll + 1) --> Orange
Ist < (Soll - 1) --> Blau
Ist < 0 --> Blauer Hintergrund
Verschiedene Warn- und Hinweissymbole erscheinen automatisch entweder innerhalb der Raumschaltflächen oder im Informationen- oder Einstellungenbereich.
1 Bis zu 10 Räume werden erkannt und in der festgelegten Reihenfolge angezeigt. Die Schaltflächen Informationen und Einstellungen sind voreingestellt. In der Regel sollen die Geräte aus ÜBERGREIFEND in Einstellungen landen.
2 In jedem Raum werden bis zu 5 Lichtschalter und bis zu 5 Geräte erkannt. Eine Sonderschaltung, in dem Fall "Szene" genannt, kann verwendet werden, ebenso eine Kamera.
[--> 2. Teil wegen Beschränkung auf 5 attachments]