Compare - Vergleich von Geräten

Begonnen von bismosa, 17 Januar 2020, 09:55:22

Vorheriges Thema - Nächstes Thema

bismosa

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




Device1Device2Device3
Reading1ValValVal
Reading2ValValVal

Table format: Readings




Reading1Reading2Reading3
Device1ValValVal
Device2ValValVal

- 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
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Icinger

Könnte durchaus interessant sein, ja
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

sash.sc

Werde es mal am we testen.

Gesendet von meinem MI 9 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Christoph Morrison


bismosa

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
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

TWART016

Hallo Bismosa,

sehr interessantes Modul.

SB_Player:
   1) Das Laden dauert ziemlich lange, wenn das Device große Readings hat. Zudem kommt manchmal der Fehler:
   
fhem?detail=Compare_SB_Player line 1:
Uncaught SyntaxError: missing ) after argument list

   
   2) Wenn 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

Sonstige Anmerkungen
   3) Wenn 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
   
   
   4) Macht es Sinn ein Attribut einzuführen, wenn alle Devices / Readings gleich sind?

   5) Gibt es die Möglichkeit nur bestimmte Readings von Geräten zu vergleichen?


Gruß
TWART016

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
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

TWART016

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.