Neues Hilfsmodul 98_DeviceList

Begonnen von Darkmozart, 28 September 2017, 00:18:15

Vorheriges Thema - Nächstes Thema

Darkmozart

Nachdem es mich genervt hat, für meine Rolladensteuerung bei jedem Befehl x Devices anzugeben oder mit Dummy + notify zu arbeiten, habe ich Modul gebastelt um Devices (beliebige) in Gruppen zu sammeln und mit einem einzigen Befehl anzusprechen.
Heraus gekommen ist 98_DeviceList.

Möglichkeiten:
- Anlegen von beliebig vielen Listen (werden als Reading gespeichert und angezeigt)
- Anlegen von beliebig vielen Devices pro Liste
- Jedes Device darf auf beliebig vielen Listen vorkommen
- Löschen von einzelnen Devices von einer Liste
- Löschen einer kompletten Liste
- der Befehl set [name] [reading] [commad] leitet command an alle Devices der Liste [reading] weiter
- hinzufügen und löschen von Listen und Devices bequem per Mausklick
- Pause bei der Befehlsweiterleitung nach X Devices für Y Sekunden (Attribute timeOutAfter und timeOut - Standardwert für timeOut ist eine Sekunde, timeOutAfter ist Standard 0 = kein TO)

Define:
define <name> DeviceList

Grenzen:
Das Modul prüft bei der Befehlsweiterleitung NICHT ob das jeweilige Device den auch ausführen kann.
Bei mir ist dieser Fall noch nicht eingetreten - Falls jemand mit einem entsprechenden Testsystem das ganze versuchen möchte: bitte gern...
Es werden KEINE Events oder Meldungen (nur Logmeldungen bei erfolgreicher Befehlsweitergabe) erstellt.
Es ist bisher weder programmiert noch geplant, eine gesammelte Abfrage für die Readings durchzuführen. (Wobei das evtl. noch interessant werden könnte....)

Ein wenig Commandref habe ich auch eingebaut - für mein Englisch übernehme ich keine Garantie...
Aber eigentlich ist das komplette Modul selbsterklärend.

Für alle die es testen / verwenden wollen ist die .pm Datei im Anhang.
Ich habe beim programmieren auf einem Testsystem ausgiebig getestet und verwede diese Version inzwischen auf meinem Live-System.
Trotzdem distanziere ich mich natürlich von jeglicher Garantie oder ähnlichem.

Eine offizielle Aufnahame in SVN ist meinerseits nicht geplant.

Bei Fragen und Anregungen - immer her damit :-)
PS: Das ist mein erstes Modul für fhem - u.U. sind Lösungswege verwendet die suboptimal sind - aber sie funktionieren  8)

Andreas

RasPi3 mit aktuellem FHEM
CUL 433MHZ
Ne Menge Somfy Rollläden
Aktuelles Projekt: Sensoren (MySensors) für Helligkeit und Temperatur zur Rollladensteuerung
Diverse Spielereien...

marvin78

Was glaubst du, wofür das Modul structure gedacht ist?

justme1968

oder LightScene (mit dem neuen set all kommando).
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

igami

geht auch mit archetype und set raw ;)
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Darkmozart

Schön und gut...
Aber
Zitat von: Darkmozart am 28 September 2017, 00:18:15
- Pause bei der Befehlsweiterleitung nach X Devices für Y Sekunden (Attribute timeOutAfter und timeOut - Standardwert für timeOut ist eine Sekunde, timeOutAfter ist Standard 0 = kein TO
Wie sieht's damit aus? Das habe ich bisher nirgends gefunden... (Vllt auch weil ich nicht besonders danach gesucht habe)
RasPi3 mit aktuellem FHEM
CUL 433MHZ
Ne Menge Somfy Rollläden
Aktuelles Projekt: Sensoren (MySensors) für Helligkeit und Temperatur zur Rollladensteuerung
Diverse Spielereien...

justme1968

nennt sich bei structure und LightScene async_delay. funktioniert zwar ein klein wenig anders da die verzögerung zwischen alle devices geschoben wird und nicht in gruppen, sollte aber am ende aufs gleiche hinaus laufen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Wzut

@Darkmozart , Glückwunsch zum ersten Modul :) Durch schreiben eigener Module lernt man IMHO wesentlich mehr über FHEM als durch einfaches Nutzen. Auch wenn vllt. das erste Kind nicht so auf die große Gegenliebe der anderen User stößt :
Benutze es weiter ! Das Ding hast du im Griff,  eben weil es von dir ist ( ich selbst benutze einige Module die ich nur für meine direkten Anforderungen geschrieben habe und nie veröffentlicht)
Zwei kleine Tipps noch , du kennst https://wiki.fhem.de/wiki/DevelopmentModuleIntro ?
a. Such dort mal nach $_[3] und vergleiche das dort geschriebene mit deiner Attr Funktion
b. vermeide  zwei , drei updateSingleReading in Folge und verwende besser updateBulkReading ( hat auch einen Abschnitt im Wiki)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Darkmozart

@Wzut:
Danke!
Werde ich machen :-) dafür habe ich es ja geschrieben (unter anderem).
Zu den Tipps:
- ja, kenne ich.
a) Wenn ich das richtig interpretiere kann ich mir dadurch eine komplette Unterfunktion sparen, richtig?
b) habe ich gesehen, das ich es nicht umgesetzt habe war eher meiner Faulheit und der Uhrzeit geschuldet :-) Werde ich wohl noch einbauen.

@igami:
Das es mit archetype funktioniert habe ich mir fast gedacht - war aber zu faul mich in die Anwendung des Moduls einzuarbeiten :-) Weiterhin war es mir (nach kurzem überfliegen) zu starr - Ich wollte die Listen einfach manipulieren können, ohne das Device großmächtig verändern zu müssen.

@justme:
Sieht so aus al währe LightScene oder structure noch das was am ehesten an das honkommt was ich gesucht hätte - aber auch hier (zumindest bei structure und bei grobem überfliegen) stört mich die starrheit - wie gehabt, ich wollte die Listen einfach übers Frontend manipulieren können - hat wiederum was mit meiner Faulheit zu tun :-)

@marvin78,justme,igmai:
Die Info mit welchen Modulen das auch geht ist war für jemand der danach sucht ganz nett - vor allem wenn man nach etwas sucht, das evtl. sogar noch mehr Möglichkeiten bietet.
Allerdings führen gewisse Formulierungen wohl eher dazu manche davon abzuhalten ein Modul das sie selbst erstellt haben zu veröffentlichen - unter Umständen trifft das dann auch Module die für alle richtig toll wären... Bedenkt doch bitte das bei geschriebenem Text leider nur die Worte für sich stehen - da fehlen locker mal 75% der normalen Kommunikation (Körpersprache, Mimik, Modulation der Worte usw). Das soll jetzt nicht heißen das ich nicht für Kritik offen bin - aber Wzut hats in meinen Augen besser formuliert und gleich noch Tipps mitgeliefert. Das spornt eher an als ein bloßes hatten wir schon mal...
Just my 10cts.

Darkmozart
RasPi3 mit aktuellem FHEM
CUL 433MHZ
Ne Menge Somfy Rollläden
Aktuelles Projekt: Sensoren (MySensors) für Helligkeit und Temperatur zur Rollladensteuerung
Diverse Spielereien...

rudolfkoenig

Um die andere Seite auch zu vertreten: wir haben in FHEM zunehmend das Problem, dass fuer die gleiche Aufgabe mehrere Module gibt, was bei allen (hier nicht erwaehnten) Vorteilen auch Nachteile mit sich bringt, naemlich dass Anfaenger verwirrt, und Entwicklerzeit "verschwendet". Ich habe nicht vor, doppelte Module zu verbieten, moechte nur bitten, dass der Autor es gut ueberlegt, bevor er so ein Modul veroeffentlicht. Insb. die "Eintagsfliegen" stoeren mich, da ein Anfaenger schlecht erkennen kann, dass ein Modul weder weiterentwickelt, noch unterstuetzt wird.

Darkmozart

Auch das ist wiederum verständlich.
Und gerade für Anfänger, wie ich ja auch einer bin recht unübersichtlich. Auch wenn einige Modulnamen für sich sprechen und die Commandref, Wiki und Forum einiges erklären, so gestaltet sich die Suche nach einer bestimmten Funktion teils recht unwegig. - Aber das ist ein anderes Thema.
Die Kritik an sich stört mich ja nicht - eher die Verpackung derselben. Aber auch dies kann dem Umstand geschuldet sein, das doppelte Dinge auf Dauer nerven und man deswegen relativ kurz angebunden ist.
Schwamm drüber.
RasPi3 mit aktuellem FHEM
CUL 433MHZ
Ne Menge Somfy Rollläden
Aktuelles Projekt: Sensoren (MySensors) für Helligkeit und Temperatur zur Rollladensteuerung
Diverse Spielereien...

Prof. Dr. Peter Henning

Ich denke, wir brauchen langsam ein umgekehrtes Inhaltsverzeichnis.

Nicht unter dem Modulnamen die Funktionen auflisten. Sondern parallel dazu eine Liste von Funktionalitäten führen, und auf die Module verweisen.

Für Hardware ist das ganz einfach.

Bei Automatisierungsmodulen eher schwierig.

LG

pah

Darkmozart

Einen ähnlichen Vorschlag habe ich mir vorhin verkniffen  8)
RasPi3 mit aktuellem FHEM
CUL 433MHZ
Ne Menge Somfy Rollläden
Aktuelles Projekt: Sensoren (MySensors) für Helligkeit und Temperatur zur Rollladensteuerung
Diverse Spielereien...

Prof. Dr. Peter Henning

Es kommt auch besser an, wenn sich Anfänger das Eine oder Andere verkneifen ...  8)

LG

pah

andre070

Dennoch danke für das Modul!

Es mag ähnliche Module geben, wie ich gelesen habe, finde aber jede Erweiterung für Fhem durchaus positiv. Alleine das sich jemand hin setzt und eine (von mir aus Variante) erstellt, so ist sie ggfs. einfacher in der Bedienung oder hat andere Vorzüge in der Verarbeitung.

Sollten nicht gerade auch Anfänger einmal positiv gefördert werden?

Evtl. muss man darüber nachdenken die "Features" einzelner Module anhand einer Matrix in ein neues "besseres" neues Modul zu überführen mittelfristig und langfristig.


Gruß,

Andre



igami

Zitat von: andre070 am 01 Oktober 2017, 09:37:43
Sollten nicht gerade auch Anfänger einmal positiv gefördert werden?
Ist doch schon öfter passiert, dass erfahrene Modulautoren Anfängern als Tutor bei der Entwicklung geholfen haben.

Zitat von: andre070 am 01 Oktober 2017, 09:37:43
Evtl. muss man darüber nachdenken die "Features" einzelner Module anhand einer Matrix in ein neues "besseres" neues Modul zu überführen mittelfristig und langfristig.
Es spricht ja nichts dagegen Verbesserungen für bestehende Module zu schreiben. Aber in diesem Fall funktioniert das Modul ja einfach anders als die bestehenden.
Und es ist ja auch schon vorgekommen, dass Module ersetzt wurden. Aus EIB wurde KNX.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED