Device kopieren (insbesondere Dummys)

Begonnen von marvin78, 18 Februar 2014, 15:03:28

Vorheriges Thema - Nächstes Thema

marvin78

Es wäre eventuell hilfreich, wenn man devices im Web-Frontend mit all ihren Eigenschaften kopieren könnte. Es greift ja aktuell die sehr sinvvolle Einsicht, dass man nicht mehr direkt in der *.cfg editiert. Es gibt jedoch häufig den Fall, dass ich mir Dummys mit vielen sinnvollen Attributen angelegt habe und ein weiteres Dummy oder anderes Device mit den gleichen Eigenschaften benötige. Habe ich etwas übersehen oder, andernfalls, wäre sowas zu realisieren?

betateilchen

Coole Idee :)

Mit meiner "Konfiguration per Datenbank" liesse sich das völlig simpel umsetzen.
Alle Zeilen von <deviceA> auslesen und als neue Zeilen für <deviceB> einfügen.
Ich glaub, ich werde heute abend eine neue Funktion basteln, die das macht ...

Ja, ich weiß, das geht natürlich auch innerhalb von fhem mit der fhem.cfg ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wernieman

Ich finde den Ansatz, es auch für die fhem.cfg anzubieten, auch sehr interessant. War das letzte mal, das ich in der fhem.cfg "rumgeschmiert" habe, da ich ein notify, was ich für verschiedene Devices brauchte, nicht X-Mal in FHEM eintippern wollte ....

wobei .. Deine Datenbanklösung wollte ich mir auch angucken ... wenn die Zeit nicht zu knapp wäre ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

papa

Um das Arbeiten in der .cfg vollständig abzulösen, sollte der DEF-Editor aber gegen einen "echten" Code-Editor ausgetauscht werden. Wenn man mehr als ein oder zwei Zeilen schreibt, ist Syntax-Highlighting und Klammernmatching schon sehr hilfreich.

Ließe sich vielleicht so was wie hier

http://codemirror.net/

einbinden ?
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

betateilchen

Das müsstest Du bitte hier im Forumbereich "Frontends" fragen, denn dort wird das fhem-Frontend 01_FHEMWEB.pm abgehandelt, das dafür geändert werden muss.

Das reine kopieren eines devices (um das es hier im Thread geht) ist eher eine Frage der Backend-Programmierung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

ok, den Vorschlag, das innerhalb der Datenbankkonfiguration zu machen, nehme ich zurück. Das funktioniert zwar (gerade getestet) aber es macht an dieser Stelle keinen Sinn. Ich habe mal wieder viel zu komplex gedacht.

Da fhem sämtliche definierten devices in einer internen Tabelle vorhält, gehört das Kopieren eindeutig in die fhem.pl und ist völlig unabhängig von der Art der Konfiguration (also egal ob Konfigurationsdatei oder Datenbank)

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

ich hab nur gewartet bis du drauf kommst :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

betateilchen

Ich wusste das eigentlich schon - aber in der Datenbanklösung ist das Ganze ein Zweizeiler - in der fhem.pl dürften zwei Zeilen dafür nicht reichen  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

ZitatUm das Arbeiten in der .cfg vollständig abzulösen, sollte der DEF-Editor aber gegen einen "echten" Code-Editor ausgetauscht werden.

Ich mache mich gleich bestimmt unbeliebt, aber ich möchte weiterhin direkt in dem Config eingreifen dürfen ;)
Da bin ich schneller und habe besseren Übersicht als bei bvei dieser stückweisen Fummelei  ;D

betateilchen

Du MUSST doch eine solche Funktion nicht nutzen. Und solange Du nicht auf "save" klickst, passiert in Deiner Konfiguration überhaupt nichts persistentes.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: justme1968 am 18 Februar 2014, 20:12:23ich hab nur gewartet bis du drauf kommst :)

Eigentlich wäre doch in der fhem.pl eine CommandCopy($$) identisch zur CommandRename($$) ausser den drei Löschbefehlen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

im prinzip ja. das DoTrigger muss noch von RENAMED in COPYED umbenannt werden.

der eigentliche knackpunkt ist aber das es einige devices gibt die nicht mehrfach für das gleiche physikalische device angelegt werden dürfen. z.b. alle die den defptr mechanismus verwenden.

ich glaube die 'richtige' lösung sollte über define oder modify gehen und anschliessend attribute setzen.

dann hat das modul die kontrolle oben das kopieren logisch überhaupt geht.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

betateilchen

Oder man überlegt sich, für welche Typen ein Kopieren überhaupt Sinn macht und weist jeden anderen Kopierversuch direkt ab.

Ich denke, die meisten Kopieraktivitäten wären wohl bei notify, at und dummy zu erwarten.
Bei allen IO-Typen würde ich auch sagen, das muss nicht sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marvin78

Zu den 3 genannten würde ich noch dummy und watchdog nehmen wobei es beim watchdog schon kompliziert wird.

betateilchen

und der dummy ist schon einer von den dreien  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!