FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: marvin78 am 18 Februar 2014, 15:03:28

Titel: Device kopieren (insbesondere Dummys)
Beitrag von: marvin78 am 18 Februar 2014, 15:03:28
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?
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 18 Februar 2014, 16:02:59
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 ;)
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: Wernieman am 18 Februar 2014, 16:10:48
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)
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: papa am 18 Februar 2014, 16:14:42
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 ?
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 18 Februar 2014, 16:24:31
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.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 18 Februar 2014, 20:00:51
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)

Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 18 Februar 2014, 20:12:23
ich hab nur gewartet bis du drauf kommst :)

gruss
  andre
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 18 Februar 2014, 21:32:03
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)
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: hexenmeister am 18 Februar 2014, 21:48:18
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
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 19 Februar 2014, 18:32:56
Du MUSST doch eine solche Funktion nicht nutzen. Und solange Du nicht auf "save" klickst, passiert in Deiner Konfiguration überhaupt nichts persistentes.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 20 Februar 2014, 15:19:35
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?
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 20 Februar 2014, 15:28:00
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.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 20 Februar 2014, 19:32:07
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.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: marvin78 am 20 Februar 2014, 19:34:45
Zu den 3 genannten würde ich noch dummy und watchdog nehmen wobei es beim watchdog schon kompliziert wird.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: betateilchen am 20 Februar 2014, 19:58:02
und der dummy ist schon einer von den dreien  8)
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: marvin78 am 20 Februar 2014, 20:02:35
Äh ja. Es ist spät. Ich muss den Schreibtisch wohl mal langsam verlassen ;)
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: fhainz am 20 April 2014, 13:39:27
Zitat von: betateilchen am 20 Februar 2014, 19:32:07Ich denke, die meisten Kopieraktivitäten wären wohl bei notify, at und dummy zu erwarten.

Für readingsGroups wäre das auch sehr hilfreich. Wünsche mir eine solche Funktion seit ich FHEM nutze. :)
Titel: Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 18 Mai 2014, 14:02:55
so... hier mal ein erster versuch für ein copy kommando.

einfach nach .../FHEM kopieren und dann so aufrufen:copy <orig name> <copy name>

gruss
  andre
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: chris1284 am 18 Mai 2014, 15:44:21
hab gerade ein paar dummys kopiert, funktioniert.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: stromer-12 am 18 Mai 2014, 17:14:47
Zitat von: justme1968 am 18 Mai 2014, 14:02:55
einfach nach .../FHEM kopieren und dann so aufrufen:copy <orig name> <copy name>

Mit einer kleinen Änderung kann man auch andere Devices kopieren:

-  my $cmd = "$args[1] $d->{TYPE}";
+  my $cmd = "$args[1] $d->{TYPE} ";


Edit: Ich hatte Probleme beim DEF, das hat er direkt an den TYPE geklatscht.

Gruß
Gerd
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: P.A.Trick am 18 Mai 2014, 17:33:57
Erst einmal Danke für den Copy Befehl Andre :-)

Ich wollte den folgenden Scheduler kopieren.



Internals:
   DEF        *{sunset(-6500,"17:00","22:00")} {
if (Value("HomeStatus") < 3 && Value("config_twilight_auto_main") eq "on") {
  if (Value("Anwesenheit") eq "present") {
    fhem("set FS20_sender_taste_2 on");
    sendmsg 'Automatische Dämmerungsschaltung (Lampen) eingeschaltet!';
  }
  else {
    Log(4,"Automatische Dämmerungschaltung: Es war niemand zuhause - ignoriere die Schaltung!");
  }
}
else {
   sendmsg 'Hinweis: Automatische Dämmerungsschaltung (Lampen) ist deaktiviert!';
}
}
   NAME       at_LED_Deckenbeleuchtung_Auto
   NR         872
   NTM        20:15:00
   REP        -1
   STATE      Next: 20:15:00
   TRIGGERTIME 1400436900
   TRIGGERTIME_FMT 2014-05-18 20:15:00
   TYPE       at
Attributes:
   room       _Cron


Leider bekomme ich eine Fehlermeldung!

copy at_LED_Deckenbeleuchtung_Auto  at_Haustuerbeleuchtung_Auto



Unknown module at*{sunset(-6500,"17:00","22:00")}


Mache ich etwas falsch?
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: stromer-12 am 18 Mai 2014, 17:36:11
Den Fehler hatte ich auch, habe darauf noch ein Leerzeichen im Modul eingefügt.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 18 Mai 2014, 17:39:02
ja. das fehlende leerzeichen war ein flüchtigkeitsfehler bei der letzten änderung. es muss aber eigentlich in die nächste zeile. sonst sind die dummys keine genauen kopien mehr.

ich hab die version oben noch mal aktualisiert. jetzt sollte es mit jedem device gehen das mehrfach vorhanden sein kann.

gruss
  andre
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: P.A.Trick am 18 Mai 2014, 19:33:37
Zitat von: justme1968 am 18 Mai 2014, 17:39:02
ja. das fehlende leerzeichen war ein flüchtigkeitsfehler bei der letzten änderung. es muss aber eigentlich in die nächste zeile. sonst sind die dummys keine genauen kopien mehr.

ich hab die version oben noch mal aktualisiert. jetzt sollte es mit jedem device gehen das mehrfach vorhanden sein kann.

gruss
  andre

Geil hat geklappt! Super vielen lieben Dank!
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 18 Mai 2014, 19:39:14
wenn es mehr interessenten als gegenstimmen gibt würde ich es demnächst einchecken.

gruss
  andre
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: P.A.Trick am 18 Mai 2014, 19:39:40
 ;) Dafür!
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: fhainz am 18 Mai 2014, 19:39:58
Gerade ausprobiert, funktioniert super!
Danke!
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: Puschel74 am 18 Mai 2014, 19:46:11
Hallo,

Zitatwenn es mehr interessenten als gegenstimmen gibt würde ich es demnächst einchecken.
Ich hab es zwar noch nicht benutzt aber was nicht ist kann noch werden  ;)

Also DAFÜR!

Grüße
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: chris1284 am 18 Mai 2014, 19:50:11
dummys,at,notify,devices eigener module erfolgreich kopiert.


dafür!
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: mi.ke am 18 Mai 2014, 20:26:55
Auf jeden Fall DAFÜR

Ich musste allerdings auch diese Änderung machen
Zitat von: stromer-12 am 18 Mai 2014, 17:14:47

-  my $cmd = "$args[1] $d->{TYPE}";
+  my $cmd = "$args[1] $d->{TYPE} ";


Klasse Arbeit, dass hab ich schon lange vermisst.
Danke
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: marvin78 am 18 Mai 2014, 20:32:08
Super. Genau so hatte ich mir das vorgestellt. Danke!

Für Einchecken!
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 18 Mai 2014, 22:18:13
ich habs mal eingecheckt: http://forum.fhem.de/index.php/topic,23738.0.html (http://forum.fhem.de/index.php/topic,23738.0.html)

gruss
  andre
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: marvin78 am 19 Mai 2014, 13:45:45
Wäre es möglich, das so umzustricken, dass man nach dem Copy sofort in der Device-Übersicht der Kopie landet?
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 19 Mai 2014, 13:59:00
der redirect passiert im 01_FHEMWEB. ich schlage rudi mal einen patch vor. ich weiss aber nicht ob er damit einverstanden ist.

gruss
  andre

edit: der patch ist hier zu finden: http://forum.fhem.de/index.php/topic,23759.0.html (http://forum.fhem.de/index.php/topic,23759.0.html)
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: marvin78 am 19 Mai 2014, 14:08:36
Wenn nicht, wäre das auch in Ordnung. Es wäre eben aber extrem praktisch in der Kopie zu landen, da man die notwendigen Modifikationen der Kopie in 99% der Fälle sicher sofort vornimmt UND, falls man das alias-Attribut verwendet, in der Raumübersicht nicht immer auf den ersten Blick sehen kann, welches die Kopie ist.
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: justme1968 am 19 Mai 2014, 16:27:21
geht ab morgen.

gruss
  andre
Titel: Antw:Device kopieren (insbesondere Dummys)
Beitrag von: marvin78 am 19 Mai 2014, 20:22:53
Sehr schön. Danke!