Ich möchte den Wert von Dummy1 einem anderen Dummy2 zuweisen.
defmod my1 dummy
defmod my2 dummy
set my1 40
set my2 my1
my2 zeigt nur den String "my1" an, aber nicht den Wert 40. Habe das auch schon mit Value("my1") probiert mit demselben Ergebnis.
Hintergrund der Frage ist folgender:
Mit den Dummies wird die Pulsweitenmodulation der Fussbodenheizung je Heizkreis festgelegt. Das erfolgt über nachfolgende Funktion:
defmod TP_Bad_OGn at *10:00:00 set T_Bad_OG T_Bad_OGn
pwm_fb("FS2_K3_Bad_OG", Value("T_Bad_OG"))
Der Dummy "T_Bad_OG" wird tagesabhängig auf unterschiedliche Werte (Tag und Nacht z.B.) gesetzt und so die Temperatur der Fussbodenheizung gesteuert. Der Dummy "T_Bad_OGn" gibt die Zeitkonstante für die Nachabsenkung vor, die ich über ein Auswahlmenü (setList) auswählen kann.
Hat mir jemand einen Tipp, wie das geht? Besten Dank.
Habe das Thema mit Perl gelöst:
my $x;
$x = Value("my1");
fhem("set my2 $x");
Es wäre gut, etwas über den Zweck hinter dieser Frage zu erfahren.
Warum einen Dummy mit dem Wert eines anderen Dummys füllen? Man kann doch den Wert eines Dummy abfragen.
Wo willst Du das tun, in der Oberfläche, in einer Funktion?
Ich habe den Hintergrund gar nicht verstanden (ein zusätzliches Reading auf dem ersten dummy würde wahrscheinlich reichen), aber siehe "set magic" in CommandRef. https://fhem.de/commandref_DE.html#set
Eine Kopie eines Dummys ist in den meisten Fällen nicht sinnvoll, da man den Abgleich manuell oder automatisch pflegen muss.
Man kann auf den ursprünglichen Dummy triggern, in fremden Modulen darauf zugreifen oder auch darstellen.
Danke für Eure Antworten. Habe die Lösung nun gefunden (s.o.). Man muss die Zuweisung über Perl machen.