Hallo!
Mir schwirrt schon seit längerem der Wunsch im Kopf eine Möglichkeit zu haben Readings und Attribute von mehreren Geräten zu vergleichen.
Ich habe viele "identische" Geräte. Z.b. 8 Heizkörperthermostate / 35 Fensterkontakte / 8 Rolläden usw.
Viele der Attribute sind gleich. Mache ich eine Änderung, muss ich immer aufpassen, das ich auch alle der Geräte erwische. Automatisch mit einem Regex mache ich diese Änderung nicht gerne...da habe ich schon öfter mal etwas verdreht (z.B. "attr Fenster_.* room Fenster" -> Ich hatte diese aber noch zusätzlich in anderen Räumen...und das wurde dann ersetzt)
Ich habe auch begonnen ein Modul zu entwickeln. Das ist noch lange nicht fertig. Es soll aber meinen Wunsch etwas mehr zeigen.
Mich würde dabei nun interessieren: Lohnt sich die Weiterentwicklung? Will das jemand "professionell" in die Hand nehmen oder mich unterstützen? Seht ihr das als überflüssig an?
Zu dem Modul:
Features:
- Es können einzelne Devices oder auch ein Device-Regex gewählt werden (in der Definition)
- Es werden mehrere Tabellen erstellt (DEF/INTERNALS/HIDDEN-INTERNALS/Readings/Attribute) jeweils mit 2 unterschiedlichen Ansichten:
Table format: Device
| Device1 | Device2 | Device3 |
Reading1 | Val | Val | Val |
Reading2 | Val | Val | Val |
Table format: Readings
| Reading1 | Reading2 | Reading3 |
Device1 | Val | Val | Val |
Device2 | Val | Val | Val |
- Zusätzlich kann noch eine Tabelle nur mit bestimmten Readings oder Attributen erstellt werden. (Derzeit über das Attribut "Values"). Um gleichnamige zu unterscheiden, kann ein Praefix (i: für internal Werte, r: für Reading-Namen und a: für Attribute) verwendet werden.
- Die Tabellenzeilen bzw. Spalten werden unterschiedlich formatiert:
Grün = Alle Werte sind gleich
Gelb = Alle Werte sind gleich, es sind jedoch auch leere (nicht vorhandene) Werte dabei
Rot = Die Werte sind unterschiedlich
- Readings und Attribute können direkt verändert werden. Klick auf den Wert genügt und es erscheint eine Textbox mit Eingabemöglichkeit
- Readings und Attribute für alle Devices können verändert werden, wenn auf die Spaltenüberschrift bzw. die Zeilenüberschrift geklickt wird!
- Wird das leere Eingabefeld bestätigt, erscheint eine Nachfrage ob die Readings/Attribute gelöscht werden sollen
- Ändern sich Readings/Attribute eines Devices, werden die Werte aktualisiert.
Derzeit offene Punkte:
- Scrollen über die Seite verbessern
- Bestimmte Geräte ausschließen
- Zusatztabelle mit Auswahlmöglichkeit aufbauen
- Derzeit keine Rückgabe, wenn ein Attribut nicht gesetzt werden kann
- Wenn ein Reading ein " enthält kommt es u.U. noch zu Fehlern
- Wenn ein Wert aktualisiert wurde, werden die Farben der Spalten/Reihen nicht angepasst (Wird im Modul gemacht) sollte per JavaScript umgesetzt werden
- usw.
- Doku natürlich auch :)
Benutzung:
define myCompare Compare WEB.*
Alle Web-Devices anzeigen
define myCompare Compare TYPE=MAX
Alle MAX-Geräte anzeigen
define myCompare Compare Device1 Device2
Bestimmte Geräte anzeigen
Das soll hier kein "Bugthread" werden. Vieles geht einfach noch nicht und muss noch angepasst werden. Es geht mehr darum zu erfahren, wie das Interesse daran ist!
Im Anhang das Modul und eine Beispielansicht für eine Tabelle.
Gruß
Bismosa
Werde es mal am we testen.
Gesendet von meinem MI 9 mit Tapatalk
Hallo!
ZitatHast du einen Github-Account?
Ja, den habe ich. Ich habe dort das Modul nun mal hochgeladen. Es lässt sich installieren mit
update all https://raw.githubusercontent.com/bismosa/FHEM/master/controls_Compare.txt
Das Modul ist hier zu finden:
https://github.com/bismosa/FHEM/blob/master/FHEM/98_Compare.pm
Gruß
Bismosa
Hallo!
ZitatUncaught SyntaxError: missing ) after argument list
Das ist noch ein Problem, wenn in den Readings " sind. Das muss noch gemacht werden...
ZitatWenn ein Readingswert sehr lang ist, wird ein Zeilenumbruch gemacht. Dieser ist jedoch gefühlt erst nach ein paar Tausend Zeichen. Deshalb muss ich bei den Devices sehr oft nach rechts scrollen. Vielleicht kann man das besser anpassen, ggf. per Attribut. z.B. Anzahl Zeichen / Wörter oder auf Bildschirmbreite angepasst
In die Richtung habe ich bisher noch nichts gemacht. Die Breite wird frei vom Browser vorgegeben. Vielleicht müsste man hier eine Max. Spaltenbreite setzen o.ä.
ZitatWenn alle Werte gleiche sind, wird das Feld als grün markiert. Da ich das F18 Style mit einer hellgrauen Schriftfarbe nutze, ist der Text sehr schlecht zu lesen. Ggf, kann man die Hintergrundfarben als Attribut definieren. Dunkelgrün würde bei mir z.B. sehr gut passen
Ja...die Farben sollten auch auf jeden Fall noch gesetzt werden können ;)
ZitatMacht es Sinn ein Attribut einzuführen, wenn alle Devices / Readings gleich sind?
Was meinst Du damit? Wofür?
ZitatGibt es die Möglichkeit nur bestimmte Readings von Geräten zu vergleichen?
Hier kann ich wenigstens eine Antwort geben. Das geht (derzeit) mit dem Attribut "Values". Dann wird eine zusätzliche Tabelle erstellt.
Gruß
Bismosa
Zitat von: bismosa am 18 Januar 2020, 13:45:51
Was meinst Du damit? Wofür?
Wenn ich bei einem Gerät eine Änderung mach, muss ich manuell prüfen ob es andere Devices mit dem gleichen Attribut gibt.