Hallo. Habe folgendes DOIF
Internals:
CFGFN
DEF ([Fenster_EG_Bad] eq "open") (set HZG_EG_Bad_Clima:FILTER=desired-temp!=5.0 desired-temp 5) DOELSEIF
([Fenster_EG_Kueche] eq "open") (set HZG_EG_EZ_Clima:FILTER=desired-temp!=5.0 desired-temp 5) DOELSEIF
([Fenster_OG_Bad] eq "open") (set HZG_OG_Bad_Clima:FILTER=desired-temp!=5.0 desired-temp 5) DOELSEIF
([Fenster_OG_Nora] eq "open") (set HZG_OG_Nora_Clima:FILTER=desired-temp!=5.0 desired-temp 5) DOELSEIF
([Fenster_OG_SZ_r] eq "open") (set HZG_OG_SZ_r_Clima:FILTER=desired-temp!=5.0 desired-temp 5)
DOELSE (set li_HZG scene [li_HZG])
NAME di_Fensteroffen_HZG
NR 10648
NTFY_ORDER 50-di_test
STATE disabled
TYPE DOIF
READINGS:
2018-01-06 11:24:08 Device Fenster_EG_Bad
2018-01-06 11:23:12 cmd 6
2018-01-06 11:23:12 cmd_event Fenster_EG_Kueche
2018-01-06 11:23:12 cmd_nr 6
2018-01-06 11:24:08 e_Fenster_EG_Bad_STATE closed
2018-01-06 11:23:12 e_Fenster_EG_Kueche_STATE closed
2018-01-06 11:26:12 last_cmd cmd_6
2018-01-06 11:26:12 mode disabled
2018-01-06 11:26:12 state disabled
2018-01-06 11:20:07 wait_timer no timer
Regex:
condition:
0 InternalDoIf($hash,'Fenster_EG_Bad','STATE') eq "open"
1 InternalDoIf($hash,'Fenster_EG_Kueche','STATE') eq "open"
2 InternalDoIf($hash,'Fenster_OG_Bad','STATE') eq "open"
3 InternalDoIf($hash,'Fenster_OG_Nora','STATE') eq "open"
4 InternalDoIf($hash,'Fenster_OG_SZ_r','STATE') eq "open"
devices:
0 Fenster_EG_Bad
1 Fenster_EG_Kueche
2 Fenster_OG_Bad
3 Fenster_OG_Nora
4 Fenster_OG_SZ_r
all Fenster_EG_Bad Fenster_EG_Kueche Fenster_OG_Bad Fenster_OG_Nora Fenster_OG_SZ_r
do:
0:
0 set HZG_EG_Bad_Clima:FILTER=desired-temp!=5.0 desired-temp 5
1:
0 set HZG_EG_EZ_Clima:FILTER=desired-temp!=5.0 desired-temp 5
2:
0 set HZG_OG_Bad_Clima:FILTER=desired-temp!=5.0 desired-temp 5
3:
0 set HZG_OG_Nora_Clima:FILTER=desired-temp!=5.0 desired-temp 5
4:
0 set HZG_OG_SZ_r_Clima:FILTER=desired-temp!=5.0 desired-temp 5
5:
0 set li_HZG scene [li_HZG]
helper:
DOIF_Readings_events
DOIF_eventas
event closed
globalinit 1
last_timer 0
sleepdevice Fenster_EG_Bad
sleepsubtimer -1
sleeptimer -1
timerdev Fenster_EG_Bad
timerevent closed
triggerDev Fenster_EG_Bad
timerevents:
closed
timereventsState:
state: closed
triggerEvents:
closed
triggerEventsState:
state: closed
internals:
0 Fenster_EG_Bad:STATE
1 Fenster_EG_Kueche:STATE
2 Fenster_OG_Bad:STATE
3 Fenster_OG_Nora:STATE
4 Fenster_OG_SZ_r:STATE
all Fenster_EG_Bad:STATE Fenster_EG_Kueche:STATE Fenster_OG_Bad:STATE Fenster_OG_Nora:STATE Fenster_OG_SZ_r:STATE
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
room DOIF
wait 70:70:70:70:70:0
Eigentlich soll beim Fenster öffnen einfach nur die jeweilige Heizung um 70 Sekunden verzögert auf 5°C eingestellt werden und beim Fenster schließen der aktuelle Status der Lightscene der Thermostate wieder hergestellt werden. Durch das wait kann ich aber nicht 2 Fenster innerhalb unter 70 Sekunden öffnen, da ja sonst der nächste Zweig war wird. Habe auch schon laut commandref versucht die "Verzögerte "Fenster offen"-Meldung" mit der "Rollladen auf Lüften stellen" Anleitung zu kombinieren(kopieren), was aber auch keinen Erfolg gebracht hat(was vielleicht daran liegt, dass ich es einfach nicht kapiere :-\). Sieht im Moment so aus
Internals:
CFGFN
DEF (["^Fenster_:open"]) (defmod at_$DEVICE at +00:60 set {("$DEVICE"=~/^Fenster_(.*)/;"HZG_$1")} desired-temp 5) DOELSEIF (["^Fenster_:closed"]) (delete at_$DEVICE)
NAME di_window_open
NR 11364
NTFY_ORDER 50-di_window_open
STATE initialized
TYPE DOIF
READINGS:
2018-01-06 11:51:20 cmd 0
2018-01-06 11:51:20 mode enabled
2018-01-06 11:51:20 state initialized
2018-01-06 11:51:27 warning condition c02: Use of uninitialized value $dev in pattern match (m//) at ./FHEM/98_DOIF.pm line 885.
Regex:
cond:
:
0:
"^Fenster_:open" ^Fenster_:open
1:
"^Fenster_:closed" ^Fenster_:closed
condition:
0 EventDoIf('^Fenster_',$hash,'open',0)
1 EventDoIf('^Fenster_',$hash,'closed',0)
devices:
do:
0:
0 defmod at_$DEVICE at +00:60 set {("$DEVICE"=~/^Fenster_(.*)/;"HZG_$1")} desired-temp 5
1:
0 delete at_$DEVICE
2:
helper:
DOIF_Readings_events
DOIF_eventas
globalinit 1
last_timer 0
sleeptimer -1
internals:
itimer:
readings:
uiState:
uiTable:
Attributes:
Also eigentlich soll nur funktionieren:
Fenster auf-> die entsprechende Heizung auf 5°, Fenster zu -> die entsprechende Heizung auf den gerade aktuellen State der Lightscene.
Ich hoffe ich konnte es einigermaßen beschreiben, danke
Hallo, überblick das jetzt nicht im Detail, aber der natürliche Weg wäre doch für jedes Fenster/Heizungspaar ein eigenes DOIF zu spendieren.
Bzw. die intrinsischen Funktionen des Thermostats zu nutzen, so habe ich es. Funktioniert dann auch ohne FHEM.
Ja das wäre mir aber wahrscheinlich zu unübersichtlich wenn ich dann soviele einzelne Doifs hätte. Am liebsten wäre mir es nach der 2. Variante die ich gepostet hatte, dann brauche ich bei neuen Komponenten nichts warten. Aber da sind mir, um es allein zu schaffen, zu viele Unklarheiten. Ich verwende eigentlich nur Doifs, weil mir das als Anfänger leichter vorkommt. Schon das bisschen Perl wie das im Doif bringt mich zum verzweifeln ::) {("$DEVICE"=~/^Fenster_(.*)/;"HZG_$1")}
Gepeert habe ich allerdings nichts bei mir, läuft alles über FHEM
Du kannst entweder pro Device ein DOIF nehmen, mit automatisch erstellten at arbeiten oder, wenn die Geräte es können, sowas wie on-for-timer nehmen.
Du musst dich an die Probleme herantasten.
Was passiert z. B. beim Fenster öffnen? Wird at gesetzt? Wenn nicht, gibt es eine Fehlermeldung? usw.
Ohne genaue Angaben wird dir hier keiner helfen können.
Edit: Beim generalisierten DOIF musst du zumindest das Attribut do always setzen
@Per: Ich würde es gern mal mit einem generalisiertem Doif probieren.
Zitat von: Damian am 06 Januar 2018, 19:43:32
Du musst dich an die Probleme herantasten.
Was passiert z. B. beim Fenster öffnen? Wird at gesetzt? Wenn nicht, gibt es eine Fehlermeldung? usw.
So habe jetzt zum testen mal 2 dummys erstellt. Hoffe es ist die richtige Herangehensweise um mich an die Probleme heranzutasten.
Internals:
CFGFN
NAME DU_Fenster
NR 3023
STATE open
TYPE dummy
READINGS:
2018-01-06 22:34:08 state open
Attributes:
webCmd open:closed
Internals:
CFGFN
NAME DU_HZG_Clima
NR 3057
STATE desired-temp 2
TYPE dummy
READINGS:
2018-01-06 22:25:31 state desired-temp 2
Attributes:
webCmd desired-temp 1:desired-temp 2
so sieht das doif aus mit tatsächlich einem Fehler und at wird anscheinend nicht gesetzt...
Internals:
DEF (["^DU_Fenster:open"]) (defmod at_$DEVICE at +00:60 set {("$DEVICE"=~/^DU_Fenster(.*)/;"DU_HZG$1")} desired-temp 1) DOELSEIF (["^DU_Fenster_:closed"]) (delete at_$DEVICE)
NAME di_window_open
NR 222
NTFY_ORDER 50-di_window_open
STATE cmd_1
TYPE DOIF
READINGS:
2018-01-06 22:34:08 Device DU_Fenster
2018-01-06 22:34:08 cmd 1
2018-01-06 22:34:08 cmd_event DU_Fenster
2018-01-06 22:34:08 cmd_nr 1
2018-01-06 22:34:08 error defmod at_DU_Fenster at +00:60 set DU_HZG desired-temp 1: Wrong timespec 00:60: either HH:MM:SS or {perlcode}
2018-01-06 22:25:17 mode enabled
2018-01-06 22:34:08 state cmd_1
Regex:
cond:
:
0:
"^DU_Fenster:open" ^DU_Fenster:open
1:
"^DU_Fenster_:closed" ^DU_Fenster_:closed
condition:
0 EventDoIf('^DU_Fenster',$hash,'open',0)
1 EventDoIf('^DU_Fenster_',$hash,'closed',0)
devices:
do:
0:
0 defmod at_$DEVICE at +00:60 set {("$DEVICE"=~/^DU_Fenster(.*)/;"DU_HZG$1")} desired-temp 1
1:
0 delete at_$DEVICE
2:
helper:
DOIF_Readings_events
event open
globalinit 1
last_timer 0
sleeptimer -1
timerdev DU_Fenster
timerevent open
triggerDev DU_Fenster
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: DU_Fenster
error: defmod at_DU_Fenster at +00:60 set DU_HZG desired-temp 1: Wrong timespec 00:60: either HH:MM:SS or {perlcode}
state: cmd_1
timerevents:
open
timereventsState:
state: open
triggerEvents:
open
triggerEventsState:
state: open
internals:
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
do always
Das ist die richtige Vorgehensweise, jetzt weißt du wenigsten, wo der Fehler ist - 60 Minuten wirst du auf keiner digitalen Uhr zu sehen bekommen ;)
oh neiiin ;D
Schalten tut der HZG dummy leider nicht. Wie muss ich denn den Part
set {("$DEVICE"=~/^DU_Fenster(.*)/;"DU_HZG$1")} desired-temp 1)
ändern, damit sich das passende Thermostat ändert?
Zur Info wie meine Devices heißen bitte nochmal im ersten Post gucken.
Wenn ich das laut commandref richtig verstehe, müsste ich ja die gleiche Endung an den Devices der Heizung haben
ZitatRollladen auf Lüften stellen
define di_air DOIF (["^window_contact_:open|tilted"]) (set {("$DEVICE"=~/^window_contact_(.*)/;"shutters_$1")} 10)
attr di_air do always
Hier werden alle Fensterkontakte, die mit dem Device-Namen "window_contact_" beginnen auf "open" oder "tilted" im Event überwacht und der entsprechende Rollladen mit der gleichen Endung auf Lüften per set shutters_<postfix> 10 gestellt.
Wie der Schaltbefehl lautet sieht du hier:
defmod at_DU_Fenster at +00:60 set DU_HZG desired-temp 1: Wrong timespec 00:60: either HH:MM:SS or {perlcode}
da das Fenster
2018-01-06 22:34:08 Device DU_Fenster
im Test keine Endung hat, gibt es keine Endung hinter DU_HZG.
Es funktioniert alles wie definiert. Wie die korrekte Syntax für deine Thermostate ist, kann ich dir nicht sagen.
Also die normalen Fenster und Thermostate heißen:
Fenster_EG_Bad HZG_EG_Bad_Clima
Fenster_OG_Bad HZG_OG_Bad_Clima
Fenster_OG_Nora HZG_OG_Nora_Clima
Fenster_OG_SZ_r HZG_OG_SZ_r_Clima
Kann man denn den Code so ändern, dass nach dem Mittelteil gesucht wird und nicht nach der Endung?
Zitat von: Tabularasa am 06 Januar 2018, 23:53:53
Also die normalen Fenster und Thermostate heißen:
Fenster_EG_Bad HZG_EG_Bad_Clima
Fenster_OG_Bad HZG_OG_Bad_Clima
Fenster_OG_Nora HZG_OG_Nora_Clima
Fenster_OG_SZ_r HZG_OG_SZ_r_Clima
Kann man denn den Code so ändern, dass nach dem Mittelteil gesucht wird und nicht nach der Endung?
ja, dann musst du noch _Clima dran hängen
{("$DEVICE"=~/^Fenster_(.*)/;"HZG_$1_Clima")}dass $1 die Endung des triggernden Devices ist, hast du dir bestimmt schon gedacht ;)
Zitat von: Damian am 06 Januar 2018, 23:59:05
dass $1 die Endung des triggernden Devices ist, hast du dir bestimmt schon gedacht ;)
Ich sag mal so, ehrlich gesagt... Nein ::) Bin jetzt seit 2 Jahren dabei und hab gedacht ich raffs irgendwann aber leider gibt viel zu viel zu lernen. Aber dank der Community und des DOIFs ;) konnte ich schon vieles umsetzen. Danke
Jedoch klappt das gerade noch nicht. Habe jetzt nochmal 2 dummys erstellt um die Thermostate nicht zu belasten.
Also habe jetzt:
DU_Fenster_EG_EZ DU_HZG_EG_EZ_Clima
DU_Fenster_EG_WZ DU_HZG_EG_WZ_Clima
und
(["^DU_Fenster:open"]) (defmod at_$DEVICE at +00:00:05 set {("$DEVICE"=~/^DU_Fenster(.*)/;"DU_HZG_$1_Clima")} desired-temp 1)
probiert. Da passiert leider nix. Hab zum testen einfach mal
(["^DU_Fenster:open"]) (defmod at_$DEVICE at +00:00:05 set {("$DEVICE"=~/^DU_Fenster(.*)/;"[b]DU_HZG_(.*)[/b]")} desired-temp 1)
probiert. Da schalten dann beide auf desired-temp 1.
Wo habe ich den Fehler?
Zitat von: Tabularasa am 07 Januar 2018, 00:55:15
und(["^DU_Fenster:open"]) (defmod at_$DEVICE at +00:00:05 set {("$DEVICE"=~/^DU_Fenster(.*)/;"DU_HZG_$1_Clima")} desired-temp 1)
probiert. Da passiert leider nix. Hab zum testen einfach mal
Auch hier wieder: Wie sieht das definierte at aus? Gibt es Fehlermeldungen im Log. Evtl. länger Zeit angeben z. B. +00:05 um genügend Zeit zum Nachschauen haben.
Also hier das at. Sieht nach einem doppelten Unterstrich aus.
Internals:
CFGFN
COMMAND set DU_HZG__EG_EZ_Clima desired-temp 1
DEF 2018-01-07T11:22:33 set DU_HZG__EG_EZ_Clima desired-temp 1
NAME at_DU_Fenster_EG_EZ
NR 7030
NTM 11:22:33
PERIODIC no
RELATIVE yes
STATE Next: 11:22:33
TIMESPEC 00:02:05
TRIGGERTIME 1515320553.43033
TRIGGERTIME_FMT 2018-01-07 11:22:33
TYPE at
VOLATILE 1
READINGS:
2018-01-07 11:20:28 state Next: 11:22:33
Attributes:
Habe mal nach HZG den Unterstrich weg gemacht. Dann geht es :)
{("$DEVICE"=~/^DU_Fenster(.*)/;"DU_HZG$1_Clima")}
Danke dir!
edit: den
error delete at_DU_Fenster_EG_EZ: Please define at_DU_Fenster_EG_EZ first
werde ich immer haben wenn die Zeit um ist oder?
So langsam wird es ;)
Hättest du meinen Vorschlag komplett übernommen (Unterstrich hinter Fenster) hätte es auch funktioniert:
Zitatja, dann musst du noch _Clima dran hängen {("$DEVICE"=~/^Fenster_(.*)/;"HZG_$1_Clima")}
Ich würde persönlich statt at, benannten sleep nehmen, wie hier als Alternative zu at dargestellt https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events.
Damit hättest du keine Meldungen im DOELSEIF-Fall.
Zitat von: Damian am 07 Januar 2018, 11:56:56
So langsam wird es ;)
Hättest du meinen Vorschlag komplett übernommen (Unterstrich hinter Fenster) hätte es auch funktioniert:
Meine Frau guckt auch schon immer komisch wenn ich ihr sage, dass ich z.b. nur einen .(Punkt) noch setzen musste damit etwas funktioniert was vorher nicht ging :D
Also danke nochmal
Hallo. Ich nochmal. Das DOIF sieht fertig jetzt so aus
(["^Fenster_:open"]) (sleep 70 $DEVICE quiet;set {("$DEVICE"=~/^Fenster_(.*)/;"HZG_$1_Clima")} desired-temp 5) DOELSEIF (["^Fenster_:closed"]) (cancel $DEVICE quiet) (set li_HZG scene [li_HZG])
Das funktioniert auch gut.
Jetzt habe ich mein anderes DOIF was zur Erinnerung an die offenen Fenster auf die Sonos was ausgibt auch in dem Stil angepasst.
(["^Fenster:open"]) ((sleep 90 $DEVICE quiet;set TYPE=SONOSPLAYER:FILTER=presence=appeared Speak 50 de {(AttrVal("$DEVICE","alias", "$DEVICE"))} wurde vor 20 Minuten geöffnet. Bitte demnächst schließen weils sonst zu kalt wird)) DOELSEIF
([#"^Fenster:closed":state:"open"] == 0) (cancel $DEVICE quiet) (set TYPE=SONOSPLAYER:FILTER=presence=appeared Speak 50 de alle Fenster geschlossen)
jedes einzeln für sich funktioniert auch. Nur wenn ich beide aktiviert habe dann werde ich nicht erinnert. Kann es sein dass das mit dem sleep zusammenhängt, weil ja 2 Doifs aufs selbe Device triggern und jeder ein sleep ausführt?
Am liebsten wäre mir nur ein DOIF aus beiden kombiniert, weil sie ja eh immer zur gleichen Zeit auslösen, aber ich glaube da komme ich mit den Klammern und Semikolons nicht klar.
Also @Damian :) wäre nett wenn du dir das nochmal ansehen könntest.
Könnte es in etwa so aussehen?
(["^Fenster:open"]) ((sleep 70 $DEVICE quiet;set {("$DEVICE"=~/^Fenster_(.*)/;"HZG_$1_Clima")} desired-temp 5;sleep 90 $DEVICE quiet;set TYPE=SONOSPLAYER:FILTER=presence=appeared Speak 50 de {(AttrVal("$DEVICE","alias", "$DEVICE"))} wurde vor 20 Minuten geöffnet. Bitte demnächst schließen weils sonst zu kalt wird)) DOELSEIF
([#"^Fenster:closed":state:"open"] == 0) (cancel $DEVICE quiet) (set TYPE=SONOSPLAYER:FILTER=presence=appeared Speak 50 de alle Fenster geschlossen)(set li_HZG scene [li_HZG])
Achja und eins habe ich noch was auf Temperatur bei im gleichen Raum geöffnetem Fenster reagieren sollte, bekomme aber einen Fehler
Internals:
CFGFN
DEF (["^HZG_:measured-temp"]<21 and {("$DEVICE"=~/^HZG_(.*)/;"Fenster_$1")}eq "open") (set Sonos_Wohnzimmer Speak 30 de Das Fenster im {(AttrVal("$DEVICE","alias", "$DEVICE"))} ist auf und es sind unter 21°C. Bitte schließen)
NAME di_test2
NR 10658
NTFY_ORDER 50-di_test2
STATE initialized
TYPE DOIF
READINGS:
2018-01-08 12:35:20 Device HZG_EG_WZ
2018-01-08 12:31:49 cmd 0
2018-01-08 12:35:20 error condition c01: syntax error at (eval 815662) line 1, at EOF
syntax error at (eval 815662) line 1, near ""Fenster_$1")"
2018-01-08 12:31:49 mode enabled
2018-01-08 12:31:49 state initialized
Regex:
cond:
:
0:
"^HZG_:measured-temp" ^HZG_:measured-temp
condition:
0 EventDoIf('^HZG_',$hash,'measured-temp',0)<21 and {("$DEVICE"=~/^HZG_(.*)/;"Fenster_$1")}eq "open"
devices:
do:
0:
0 set Sonos_Wohnzimmer Speak 30 de Das Fenster im {(AttrVal("$DEVICE","alias", "$DEVICE"))} ist auf und es sind unter 21°C. Bitte schließen
1:
helper:
DOIF_Readings_events
DOIF_eventas
event measured-temp: 20.0
globalinit 1
last_timer 0
sleeptimer -1
triggerDev HZG_EG_WZ
triggerEvents:
measured-temp: 20.0
triggerEventsState:
measured-temp: 20.0
internals:
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
disable 0
do always
room DOIF
Wenn ich was neues gelernt, aber wie ich sehe ja noch nicht so ganz verstanden habe, fällt einem immer mehr ein was man machen könnte ::)
Du kannst ruhig zwei DOIF lassen, allerdings muss der sleep unterschiedliche Namen bekommen z. B.
sleep 90 $DEVICE_1 quiet
sleep 70 $DEVICE_2 quiet
beim cancel genauso.
Das macht so wenig Sinn:
([#"^Fenster:closed":state:"open"] == 0) (cancel $DEVICE quiet)
Da du pro Fenster ein Sleep hast, musst du auch pro Fenster die den sleep cancel. Die Aggregationsfunktion musst du davon trennen.
Zitat von: Damian am 08 Januar 2018, 16:17:15
Das macht so wenig Sinn:
([#"^Fenster:closed":state:"open"] == 0) (cancel $DEVICE quiet)
Da du pro Fenster ein Sleep hast, musst du auch pro Fenster die den sleep cancel. Die Aggregationsfunktion musst du davon trennen.
Das hört sich für dich bestimmt leichter an, als es für mich ist ::)
Muss ich einen neuen Zweig machen?
(["^Fenster:closed"]) (cancel $DEVICE_1 quiet) DOELSEIF
([#"^Fenster:closed":state:"open"] == 0) (set TYPE=SONOSPLAYER:FILTER=presence=appeared Speak 50 de alle Fenster geschlossen)
Geht mir nur darum, dass, wenn alle Fenster zu sind, die Sonos das sagen.
edit: kannst du auch nochmal nach dem DOIF gucken vom letzten Post wo der Fehler war? Hab ich ganz allein erstellt(paste) :D
Zitat von: Tabularasa am 08 Januar 2018, 21:55:38
Das hört sich für dich bestimmt leichter an, als es für mich ist ::)
Muss ich einen neuen Zweig machen?
(["^Fenster:closed"]) (cancel $DEVICE_1 quiet) DOELSEIF
([#"^Fenster:closed":state:"open"] == 0) (set TYPE=SONOSPLAYER:FILTER=presence=appeared Speak 50 de alle Fenster geschlossen)
Geht mir nur darum, dass, wenn alle Fenster zu sind, die Sonos das sagen.
([#"^Fenster:closed":state:"open"] == 0) (set TYPE=SONOSPLAYER:FILTER=presence=appeared Speak 50 de alle Fenster geschlossen)
würde ich in ein separates DOIF packen, da die obigen beiden Bedingungen den gleichen Trigger haben, da gewinnt immer die erste.
Hallo Damian. Kannst du dir das letzte DOIF vom Beitrag #16 nochmal ansehen ob ich das überhaupt so machen kann und was der Fehler bedeutet? Danke
Zitat von: Tabularasa am 12 Januar 2018, 14:39:39
Hallo Damian. Kannst du dir das letzte DOIF vom Beitrag #16 nochmal ansehen ob ich das überhaupt so machen kann und was der Fehler bedeutet? Danke
Nein, in der Bedingung geht das nicht.