Hallo Otto,
Herzlichen Dank für deine schnelle Antwort. Die 3 Tests waren sehr hilfreich und vor allem auch der Trick mit dem q() .
Ich kannte nur den qw() beim array.
Ich habe auch jeweils die \ in den angelegten ReadiungsGroups in der fhem.cfg gesehen und gedacht das ich die auch
drinne haben müsste damit es die Zeilenumbrücke macht. Aber es geht ohne und reicht wenn ich nur ein Return eingebe.
Sobald das Programm dann mal durchgelaufen ist und die ReadingsGroup anlegt, sind die \ wieder da.
Es hat sogar mit dem <HR>\ funktioniert, aber erst als ich noch einen Leerschlag drin hatte, also so <HR>\ ". (Die Maskierung war das Problem)
Der define den ich hatte, der hat so schon funktioniert wie er war. Es braucht kein weiteres define mehr damit es Funktioniert.
Alleine das $device hat es nicht durch den Variablen Wert ersetzt, das konnte ich aber leicht durch ein Substitute fixen
Vielleicht hast du auch noch eine weitere zündende Idee wie ich darum herum komme für jeden Rollo eine eigene ReadingsGroup
machen zu müssen für die Settings.
Eigentlich hätte ich gerne in einem DropDown zum Beispiel auf einem Dummy, die Liste der Rollos aufgeführt.
In der ReadingsGroup sollte es dann zu Beginn jeder Zeile wo aktuell newDevice unten im Code steht, diesen DeviceNamen einsetzen.
So dass ich mit einer ReadingsGroup jeweils durch Selektion des gewünschten Device alle Rollos konfigurieren könnte.
Ich habe da schon alles mal versucht was mir in den Sinn kam und auch schon im Forum unter ReadingGroups gepostet aber bisher leider ohne Erfolg.
Grüsse Philipp
Folgender Code im MyUtils funktioniert soweit bestens:
sub
SetDefault_rgRollo($)
{
my ($device) = @_;
my $rgRollo = ("rg.SetRollo.".$device);
my $rgDefine = q(<%edit_settings>,<Settings>,<>,<>,<>,<>
newDevice:?RCtl_Description1,<>,<>,<>,<>,<>
<hr>
newDevice:<AutoClose:>,?RCtl_AutoClose,<BrightOpen:>,?RCtl_BrightOpen,<BrightClose:>,?RCtl_BrightClose
newDevice:<ReOpenCloseAfter:>,?RCtl_ReOpenCloseAfter,<Door ;Open ;Delay:>,?RCtl_DoorOpenDelay,<>,<>,<>
newDevice:<AutoShade:>,?RCtl_AutoShade,<ShadeBright:>,?RCtl_BrightShade,<ShadeTemp:>,?RCtl_ShadeTemperature
newDevice:<ShadeMinDuration:>,?RCtl_ShadeMinDuration,<currentBrightness:>,!RCtl_currentShadeBrightness,<currentShadeLimit:>,!RCtl_currentShadeLimit
newDevice:<BrightOpenEvals:>,?RCtl_BrightOpenEvals,<currBrightOpenEvals>,!RCtl_currentBrightOpenEvals
newDevice:<Fassade:>,?RCtl_Fassade,<Delay ;on ;Door ;Open>,?RCtl_DoorOpenDelay
newDevice:<Azimuth ;Start:>,?RCtl_ShadeAzimuthStart,<Azimuth ;Stop:>,?RCtl_ShadeAzimuthStop,<Current:>,azimuth@myTwilight
newDevice:<Elevation ;Start:>,?RCtl_ShadeElevationStart,<Elevation ;Stop:>,?RCtl_ShadeElevationStop,<Current:>,elevation@myTwilight
newDevice:<Default ;Open ;:>,?RCtl_DefaultOpenState,<Freeze ;Protection ;:>,?RCtl_FreezeProtection,<>,<>
newDevice:<Default ;Close ;:>,?RCtl_DefaultCloseState,<Rain ;Protection ;:>,?RCtl_RainProtection,<>,<>
newDevice:<Default ;Shade ;:>,?RCtl_DefaultShadeState,<Wind ;Protection ;:>,?RCtl_WindProtection,<>,<>
newDevice:<Shade ;Not ;Before ;WDays:>,?RCtl_ShadeNotBeforeWDay,<>,<>,<>,<>
newDevice:<Shade ;not ;Before ;WEnds:>,?RCtl_ShadeNotBeforeWEnd,<>,<>,<>,<>
newDevice:<Brightness ;Sensor:>,?RCtl_BrightnessSensor,<Reading:>,?RCtl_BrightnessReading,<>,<>
newDevice:<Shade ;Brightness ;Sensor:>,?RCtl_ShadeBrightnessSensor,<Reading:>,?RCtl_ShadeBrightnessReading,<>,<>
newDevice:<Morgen ;Fix1, ;Zeit:>,?RCtl_MorningFix1,<Fix1 ;Tage:>,?RCtl_MorningDaysFix1,<>,<>
newDevice:<Morgen ;Fix2, ;Zeit:>,?RCtl_MorningFix2,<Fix2 ;Tage:>,?RCtl_MorningDaysFix2,<>,<>
newDevice:<Abend ;Fix1, ;Zeit:>,?RCtl_EveningFix1,<Fix1 ;Tage:>,?RCtl_EveningDaysFix1,<>,<>
newDevice:<Abend ;Fix2, ;Zeit:>,?RCtl_EveningFix2,<Fix2 ;Tage:>,?RCtl_EveningDaysFix2,<>,<>
<hr> ");
$rgDefine =~s/newDevice/$device/g;
fhem ("define $rgRollo readingsGroup $rgDefine");
}
Das erstellt dann folgende ReadingsGroup:
Internals:
CFGFN
DEF <%edit_settings>,<Settings>,<>,<>,<>,<>
og.vi.RO.FensterRelax:?RCtl_Description1,<>,<>,<>,<>,<>
<hr>
og.vi.RO.FensterRelax:<AutoClose:>,?RCtl_AutoClose,<BrightOpen:>,?RCtl_BrightOpen,<BrightClose:>,?RCtl_BrightClose
og.vi.RO.FensterRelax:<ReOpenCloseAfter:>,?RCtl_ReOpenCloseAfter,<Door Open Delay:>,?RCtl_DoorOpenDelay,<>,<>,<>
og.vi.RO.FensterRelax:<AutoShade:>,?RCtl_AutoShade,<ShadeBright:>,?RCtl_BrightShade,<ShadeTemp:>,?RCtl_ShadeTemperature
og.vi.RO.FensterRelax:<ShadeMinDuration:>,?RCtl_ShadeMinDuration,<currentBrightness:>,!RCtl_currentShadeBrightness,<currentShadeLimit:>,!RCtl_currentShadeLimit
og.vi.RO.FensterRelax:<BrightOpenEvals:>,?RCtl_BrightOpenEvals,<currBrightOpenEvals>,!RCtl_currentBrightOpenEvals
og.vi.RO.FensterRelax:<Fassade:>,?RCtl_Fassade,<Delay on Door Open>,?RCtl_DoorOpenDelay
og.vi.RO.FensterRelax:<Azimuth Start:>,?RCtl_ShadeAzimuthStart,<Azimuth Stop:>,?RCtl_ShadeAzimuthStop,<Current:>,azimuth@myTwilight
og.vi.RO.FensterRelax:<Elevation Start:>,?RCtl_ShadeElevationStart,<Elevation Stop:>,?RCtl_ShadeElevationStop,<Current:>,elevation@myTwilight
og.vi.RO.FensterRelax:<Default Open :>,?RCtl_DefaultOpenState,<Freeze Protection :>,?RCtl_FreezeProtection,<>,<>
og.vi.RO.FensterRelax:<Default Close :>,?RCtl_DefaultCloseState,<Rain Protection :>,?RCtl_RainProtection,<>,<>
og.vi.RO.FensterRelax:<Default Shade :>,?RCtl_DefaultShadeState,<Wind Protection :>,?RCtl_WindProtection,<>,<>
og.vi.RO.FensterRelax:<Shade Not Before WDays:>,?RCtl_ShadeNotBeforeWDay,<>,<>,<>,<>
og.vi.RO.FensterRelax:<Shade not Before WEnds:>,?RCtl_ShadeNotBeforeWEnd,<>,<>,<>,<>
og.vi.RO.FensterRelax:<Brightness Sensor:>,?RCtl_BrightnessSensor,<Reading:>,?RCtl_BrightnessReading,<>,<>
og.vi.RO.FensterRelax:<Shade Brightness Sensor:>,?RCtl_ShadeBrightnessSensor,<Reading:>,?RCtl_ShadeBrightnessReading,<>,<>
og.vi.RO.FensterRelax:<Morgen Fix1, Zeit:>,?RCtl_MorningFix1,<Fix1 Tage:>,?RCtl_MorningDaysFix1,<>,<>
og.vi.RO.FensterRelax:<Morgen Fix2, Zeit:>,?RCtl_MorningFix2,<Fix2 Tage:>,?RCtl_MorningDaysFix2,<>,<>
og.vi.RO.FensterRelax:<Abend Fix1, Zeit:>,?RCtl_EveningFix1,<Fix1 Tage:>,?RCtl_EveningDaysFix1,<>,<>
og.vi.RO.FensterRelax:<Abend Fix2, Zeit:>,?RCtl_EveningFix2,<Fix2 Tage:>,?RCtl_EveningDaysFix2,<>,<>
<hr> "
FUUID 603171ac-f33f-2009-fcc6-6bc260955d23a347
NAME rg.SetRollo.og.vi.RO.FensterRelax
NR 7132
NTFY_ORDER 50-rg.SetRollo.og.vi.RO.FensterRelax
STATE Initialized
TYPE readingsGroup
changed 0
mayBeVisible 1
CONTENT:
og.vi.RO.FensterRelax 1
CONTENT2:
myTwilight 1
DEVICES:
ARRAY(0xeaa4cc0)
ARRAY(0xe66df88)
ARRAY(0x6919e30)
ARRAY(0x107e8500)
ARRAY(0xec8c3b8)
ARRAY(0x107e8908)
ARRAY(0xe8ef438)
ARRAY(0x6f2ef18)
ARRAY(0x7827f00)
ARRAY(0x1021f730)
ARRAY(0x329bc58)
ARRAY(0xd9fc0b0)
ARRAY(0x109c2f78)
ARRAY(0xd93ff20)
ARRAY(0xd9bd168)
ARRAY(0x10d30c80)
ARRAY(0xc6b71d8)
ARRAY(0xb271590)
ARRAY(0xc89d8d8)
ARRAY(0xdfd2f90)
ARRAY(0xe0e8248)
ARRAY(0xca4adf0)
ARRAY(0x109c2ce0)
DEVICES2:
ARRAY(0xeaa4cc0)
ARRAY(0xe66df88)
ARRAY(0x6919e30)
ARRAY(0x107e8500)
ARRAY(0xec8c3b8)
ARRAY(0x107e8908)
ARRAY(0xe8ef438)
ARRAY(0x6f2ef18)
ARRAY(0x7827f00)
ARRAY(0x1021f730)
ARRAY(0x329bc58)
ARRAY(0xd9fc0b0)
ARRAY(0x109c2f78)
ARRAY(0xd93ff20)
ARRAY(0xd9bd168)
ARRAY(0x10d30c80)
ARRAY(0xc6b71d8)
ARRAY(0xb271590)
ARRAY(0xc89d8d8)
ARRAY(0xdfd2f90)
ARRAY(0xe0e8248)
ARRAY(0xca4adf0)
ARRAY(0x109c2ce0)
ARRAY(0xc79dbc8)
ARRAY(0x1021fce8)
fhem:
lastDefChange 885
last_update 1613853101.41994
helper:
DEF
positions:
myTwilight.azimuth 10:6
myTwilight.elevation 11:6
og.vi.RO.FensterRelax.RCtl_AutoClose 4:2
og.vi.RO.FensterRelax.RCtl_AutoShade 6:2
og.vi.RO.FensterRelax.RCtl_BrightClose 4:6
og.vi.RO.FensterRelax.RCtl_BrightOpen 4:4
og.vi.RO.FensterRelax.RCtl_BrightOpenEvals 8:2
og.vi.RO.FensterRelax.RCtl_BrightShade 6:4
og.vi.RO.FensterRelax.RCtl_BrightnessReading 17:4
og.vi.RO.FensterRelax.RCtl_BrightnessSensor 17:2
og.vi.RO.FensterRelax.RCtl_DefaultCloseState 13:2
og.vi.RO.FensterRelax.RCtl_DefaultOpenState 12:2
og.vi.RO.FensterRelax.RCtl_DefaultShadeState 14:2
og.vi.RO.FensterRelax.RCtl_EveningDaysFix1 21:4
og.vi.RO.FensterRelax.RCtl_EveningDaysFix2 22:4
og.vi.RO.FensterRelax.RCtl_EveningFix1 21:2
og.vi.RO.FensterRelax.RCtl_EveningFix2 22:2
og.vi.RO.FensterRelax.RCtl_Fassade 9:2
og.vi.RO.FensterRelax.RCtl_FreezeProtection 12:4
og.vi.RO.FensterRelax.RCtl_MorningDaysFix1 19:4
og.vi.RO.FensterRelax.RCtl_MorningDaysFix2 20:4
og.vi.RO.FensterRelax.RCtl_MorningFix1 19:2
og.vi.RO.FensterRelax.RCtl_MorningFix2 20:2
og.vi.RO.FensterRelax.RCtl_RainProtection 13:4
og.vi.RO.FensterRelax.RCtl_ReOpenCloseAfter 5:2
og.vi.RO.FensterRelax.RCtl_ShadeAzimuthStart 10:2
og.vi.RO.FensterRelax.RCtl_ShadeAzimuthStop 10:4
og.vi.RO.FensterRelax.RCtl_ShadeBrightnessReading 18:4
og.vi.RO.FensterRelax.RCtl_ShadeBrightnessSensor 18:2
og.vi.RO.FensterRelax.RCtl_ShadeElevationStart 11:2
og.vi.RO.FensterRelax.RCtl_ShadeElevationStop 11:4
og.vi.RO.FensterRelax.RCtl_ShadeMinDuration 7:2
og.vi.RO.FensterRelax.RCtl_ShadeNotBeforeWDay 15:2
og.vi.RO.FensterRelax.RCtl_ShadeNotBeforeWEnd 16:2
og.vi.RO.FensterRelax.RCtl_ShadeTemperature 6:6
og.vi.RO.FensterRelax.RCtl_WindProtection 14:4
og.vi.RO.FensterRelax.RCtl_currentBrightOpenEvals 8:4
og.vi.RO.FensterRelax.RCtl_currentShadeBrightness 7:4
og.vi.RO.FensterRelax.RCtl_currentShadeLimit 7:6
recalc:
undef
undef
undef
undef
ARRAY(0xe7d2050)
undef
ARRAY(0xd66ece8)
values:
formated:
undef
undef
ARRAY(0x10a4a8f0)
undef
ARRAY(0xe856628)
undef
ARRAY(0xd64fee0)
orig:
undef
undef
ARRAY(0xc98c368)
undef
ARRAY(0xf51f6f0)
undef
ARRAY(0xe04e910)
prefixsuffix:
undef
undef
ARRAY(0x2b5f460)
undef
ARRAY(0xd8cef28)
undef
ARRAY(0xf2fcea8)
Attributes: