DOIF: Maximale Anzahl DOELSEIF?

Begonnen von heikoh81, 09 Mai 2017, 19:03:29

Vorheriges Thema - Nächstes Thema

heikoh81

Hallo zusammen,

ich habe nachfolgendes recht komplexes DOIF, um die Logik für einen Homematic-Wandtaster zusammen mit einem Lightify-System abzubilden.
Heute wollte ich es nochmal um 2 weitere DOELSEIFs erweitern - nur nimmt der Java-DEF-Editor nun mein DOIF nicht mehr an. Es wird einfach nicht hochgeladen.
Lösche ich 2 DOELSEIF raus, nimmt der Editor den Code wieder an.

Gibt es eine maximale Anzahl an DOELSEIFs?
Oder habe ich einen Denkfehler?
Wie könnte ich das Problem umgehen?


([?Schlafzimmer_Licht02_Startfarbe] eq "Farbe" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?{sunrise}-21:30:00] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 1 - Farbe, TV aus, vor 21:30 Uhr, alle 4 Lampen 50 Prozent einschalten
  ##[?TVPhilipsSchlafzimmer] eq "absent" wurde ersetzt durch [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off"
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50RGB)
  (set RGBSchlaf2Ges pct 50 : transitiontime 20)
  (set RGBSchlaf2Bil rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2Bil] : transitiontime 50)
  (set RGBSchlaf2TV rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2TV] : transitiontime 50)
DOELSEIF ([?Schlafzimmer_Licht02_Startfarbe] eq "Warmweiss" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?{sunrise}-21:30:00] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 2 - Warmweiss, TV aus, vor 21:30 Uhr, alle 4 Lampen 50 Prozent einschalten
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50Warmweiss)
  (set RGBSchlaf2Ges pct 50 : transitiontime 20)
  (set RGBSchlaf2Bil ct 350 10)
  (set RGBSchlaf2TV ct 350 10)
DOELSEIF ([?Schlafzimmer_Licht02_Startfarbe] eq "Farbe" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?21:30:01-{sunrise}] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 3 - Farbe, Noch wach, TV aus, nach 21:30 Uhr, alle 4 Lampen 20 Prozent einschalten
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20RGB)
  (set RGBSchlaf2Ges pct 20 : transitiontime 20)
  (set RGBSchlaf2Bil rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2Bil] : transitiontime 50)
  (set RGBSchlaf2TV rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2TV] : transitiontime 50)
DOELSEIF ([?Schlafzimmer_Licht02_Startfarbe] eq "Warmweiss" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?21:30:01-{sunrise}] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 4 - Warmweiss, Noch wach, TV aus, nach 21:30 Uhr, alle 4 Lampen 20 Prozent einschalten
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20Warmweiss)
  (set RGBSchlaf2Ges pct 20 : transitiontime 20)
  (set RGBSchlaf2Bil  ct 350 10)
  (set RGBSchlaf2TV  ct 350 10)
DOELSEIF (([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 5 - Alle bei 20 Prozent, erhoehen auf 50 Prozent
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50Warmweiss))
  (set RGBSchlaf2Ges pct 50 : transitiontime 20)
DOELSEIF (([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 6 - Alle bei 50 Prozent, erhoehen auf 75 Prozent
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle75RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle75Warmweiss))
  (set RGBSchlaf2Ges pct 75 : transitiontime 20)
DOELSEIF (([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 7 - Alle bei 75 Prozent, erhoehen auf 100 Prozent
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle100RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle100Warmweiss))
  (set RGBSchlaf2Ges pct 100 : transitiontime 20)
DOELSEIF (([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 8 - Alle bei 100 Prozent, wieder nur die aeusseren beiden auf 20 Prozent fuer TV-Betrieb
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20Warmweiss))
  (set RGBSchlaf2Ges pct 20 : transitiontime 20)
DOELSEIF (([Wandtaster_Schlafzimmer_Light02_Master_off:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_off:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_off:"Short"]))
  ##cmd 9 - Alle Lampen ausschalten
  ##Unterscheidung notwendig, es kann sein, dass man erst ausschaltet, nachdem sleepy-Taste gedrueckt wurde.
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "sleepy") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb sleepy))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] ne "sleepy") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb off))
  (set RGBSchlaf2Ges off : transitiontime 50)
DOELSEIF ([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "sleepy" and [Wandtaster_Schlafzimmer_Light02_Master_on:"Short"])
  ##cmd 10 - Sleepy Time Master - nur die beiden mittleren auf 15 Prozent, in blau
  ##0,2:
  (set RGBSchlaf2Bil pct 15 : transitiontime 50)
  (set RGBSchlaf2Bil rgb 1100FF : transitiontime 50)
DOELSE
  ##cmd 11
  ##0
  ()
  ##wait-gesamt
  ##0,0,2,2:0,0,2,2:0,0,2,2:0,0,2,2:0,0,0:0,0,0:0,0,0:0,0,0:0,0,0:0,2:0


Vielen Dank für eure Antworten,
viele Grüße,
Heiko


Update:

  • Auch bei ausgeschaltetem JavaScript-Editor wird mein Code nicht angenommen.
  • Wenn ich obigen Code auf 2 DOIFs aufteile, werden diese vom DEF-Editor angenommen.
  • In der Commandref steht: "+ Es können beliebig viele DOELSEIF-Angaben gemacht werden, sie sind, wie DOELSE am Ende der Kette, optional"

DOIF1:

([?Schlafzimmer_Licht02_Startfarbe] eq "Farbe" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?{sunrise}-21:30:00] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 1 - Farbe, TV aus, vor 21:30 Uhr, alle 4 Lampen 50 Prozent einschalten
  ##[?TVPhilipsSchlafzimmer] eq "absent" wurde ersetzt durch [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off"
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50RGB)
  (set RGBSchlaf2Ges pct 50 : transitiontime 20)
  (set RGBSchlaf2Bil rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2Bil] : transitiontime 50)
  (set RGBSchlaf2TV rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2TV] : transitiontime 50)
DOELSEIF ([?Schlafzimmer_Licht02_Startfarbe] eq "Warmweiss" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?{sunrise}-21:30:00] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 2 - Warmweiss, TV aus, vor 21:30 Uhr, alle 4 Lampen 50 Prozent einschalten
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50Warmweiss)
  (set RGBSchlaf2Ges pct 50 : transitiontime 20)
  (set RGBSchlaf2Bil ct 350 10)
  (set RGBSchlaf2TV ct 350 10)
DOELSEIF ([?Schlafzimmer_Licht02_Startfarbe] eq "Farbe" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?21:30:01-{sunrise}] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 3 - Farbe, Noch wach, TV aus, nach 21:30 Uhr, alle 4 Lampen 20 Prozent einschalten
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20RGB)
  (set RGBSchlaf2Ges pct 20 : transitiontime 20)
  (set RGBSchlaf2Bil rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2Bil] : transitiontime 50)
  (set RGBSchlaf2TV rgb [Wandtaster_Schlafzimmer_Light02_Dummy:Farbe_RGBSchlaf2TV] : transitiontime 50)
DOELSEIF ([?Schlafzimmer_Licht02_Startfarbe] eq "Warmweiss" and [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "off" and [?21:30:01-{sunrise}] and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 4 - Warmweiss, Noch wach, TV aus, nach 21:30 Uhr, alle 4 Lampen 20 Prozent einschalten
  ##0,0,2,2:
  (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20Warmweiss)
  (set RGBSchlaf2Ges pct 20 : transitiontime 20)
  (set RGBSchlaf2Bil  ct 350 10)
  (set RGBSchlaf2TV  ct 350 10)
DOELSE ()
  ##cmd 5
  ##0
  ##wait-gesamt
  ##0,0,2,2:0,0,2,2:0,0,2,2:0,0,2,2:0


DOIF2:

(([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 1 - Alle bei 20 Prozent, erhoehen auf 50 Prozent
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle20Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle50Warmweiss))
  (set RGBSchlaf2Ges pct 50 : transitiontime 20)
DOELSEIF (([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 2 - Alle bei 50 Prozent, erhoehen auf 75 Prozent
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle75RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle50Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle75Warmweiss))
  (set RGBSchlaf2Ges pct 75 : transitiontime 20)
DOELSEIF (([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 3 - Alle bei 75 Prozent, erhoehen auf 100 Prozent
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle100RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle75Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle100Warmweiss))
  (set RGBSchlaf2Ges pct 100 : transitiontime 20)
DOELSEIF (([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100RGB" or [?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100Warmweiss") and ([Wandtaster_Schlafzimmer_Light02_Master_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_on:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_on:"Short"]))
  ##cmd 4 - Alle bei 100 Prozent, wieder nur die aeusseren beiden auf 20 Prozent fuer TV-Betrieb
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100RGB") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20RGB))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "Alle100Warmweiss") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb Alle20Warmweiss))
  (set RGBSchlaf2Ges pct 20 : transitiontime 20)
DOELSEIF (([Wandtaster_Schlafzimmer_Light02_Master_off:"Short"] or [Wandtaster_Schlafzimmer_Light02_K_off:"Short"] or [Wandtaster_Schlafzimmer_Light02_Heiko_off:"Short"]))
  ##cmd 5 - Alle Lampen ausschalten
  ##Unterscheidung notwendig, es kann sein, dass man erst ausschaltet, nachdem sleepy-Taste gedrueckt wurde.
  ##0,0,0:
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "sleepy") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb sleepy))
  (IF ([Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] ne "sleepy") (setreading Wandtaster_Schlafzimmer_Light02_Dummy TVBetrieb off))
  (set RGBSchlaf2Ges off : transitiontime 50)
DOELSEIF ([?Wandtaster_Schlafzimmer_Light02_Dummy:TVBetrieb] eq "sleepy" and [Wandtaster_Schlafzimmer_Light02_Master_on:"Short"])
  ##cmd 6 - Sleepy Time Master - nur die beiden mittleren auf 15 Prozent, in blau
  ##0,2:
  (set RGBSchlaf2Bil pct 15 : transitiontime 50)
  (set RGBSchlaf2Bil rgb 1100FF : transitiontime 50)
DOELSE ()
  ##cmd 7
  ##0
  ##wait-gesamt
  ##0,0,0:0,0,0:0,0,0:0,0,0:0,0,0:0,2:0

Damian

DOIF als Modul kennt keine Beschränkung, wenn so etwas passiert, dann hat das wohl etwas mit FHEMWEB zu tun.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

heikoh81

Ok, ist meine Lösung mit der Aufteilung auf 2 DOIF ein gangbarer Weg?

Damian

Zitat von: heikoh81 am 09 Mai 2017, 21:02:23
Ok, ist meine Lösung mit der Aufteilung auf 2 DOIF ein gangbarer Weg?

wenn es funktioniert ja, allerdings wird die Zustandsverwaltung ausgehebelt, denn jetzt weiß das erste DOIF nichts vom zweiten, wenn sich die Zustände gegenseitig ausschließen, dann wird es wohl klappen.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

heikoh81

Jede Bedingung ist eineindeutig.
Werte die Zustandsverwaltung nicht aus.

Danke für deine Antwort.

Damian

Zitat von: heikoh81 am 09 Mai 2017, 21:11:04
Jede Bedingung ist eineindeutig.
Werte die Zustandsverwaltung nicht aus.

Danke für deine Antwort.

Du musst die Zustände nicht auswerten, wenn du kein do always hast, macht das das DOIF-Modul selbst - jetzt nur innerhalb des jeweiligen Moduls.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

heikoh81

Ich meinte, dass ich selbst den aktuellen Zustand nicht als Bedingung einsetze und es dann egal ist, dass es nicht in 1 DOIF passt.
do always ist hier bei beiden gesetzt.

Gab's das schon mal, dass jemand das DOIF nicht mehr bearbeiten konnte über FHEMWEB?

Damian

Zitat von: heikoh81 am 09 Mai 2017, 21:18:48
Ich meinte, dass ich selbst den aktuellen Zustand nicht als Bedingung einsetze und es dann egal ist, dass es nicht in 1 DOIF passt.
do always ist hier bei beiden gesetzt.

Gab's das schon mal, dass jemand das DOIF nicht mehr bearbeiten konnte über FHEMWEB?

Mit do always ist das egal. Ich weiß nicht was die Leute so definieren, aber dass man nicht genug Definitions-Code eintragen kann, ist mir neu.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

heikoh81

Ich konnte es noch auf einer anderen fhem-Installation (slave zu meiner Haupt-Installation, wesentlich weniger defines) reproduzieren.
FHEMWEB nimmt mein DOIF auch dort nicht an.
Da ich den Code unter #1 gepostet habe, kannst du es ja vielleicht mal bei dir versuchen, zu reproduzieren.

Damian

Zitat von: heikoh81 am 09 Mai 2017, 22:44:36
Ich konnte es noch auf einer anderen fhem-Installation (slave zu meiner Haupt-Installation, wesentlich weniger defines) reproduzieren.
FHEMWEB nimmt mein DOIF auch dort nicht an.
Da ich den Code unter #1 gepostet habe, kannst du es ja vielleicht mal bei dir versuchen, zu reproduzieren.

gute Idee, gesagt, getan. Kein Problem bei mir.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

heikoh81

Also jetzt will ich schon wissen woran es liegt!
Probeweise habe ich nacheinander die Kommentar-Zeilen gelöscht.
Sobald ich insgesamt zwischen 51 - 56 Gesamt-Zeilen erreicht habe, nimmt FHEMWEB meinen Code an. Leider nicht reproduzierbar, die Grenze schwankt immer.
Dabei ist es egal, ob ich von oben oder unten anfange, Kommentar-Zeilen zu löschen.

Andererseits ist es kein Problem, eine fhem.cfg mit 1200kb über das DEF-Feld hochzuladen.

Damian

Zitat von: heikoh81 am 09 Mai 2017, 23:32:56
Also jetzt will ich schon wissen woran es liegt!
Probeweise habe ich nacheinander die Kommentar-Zeilen gelöscht.
Sobald ich insgesamt zwischen 51 - 56 Gesamt-Zeilen erreicht habe, nimmt FHEMWEB meinen Code an. Leider nicht reproduzierbar, die Grenze schwankt immer.
Dabei ist es egal, ob ich von oben oder unten anfange, Kommentar-Zeilen zu löschen.

Andererseits ist es kein Problem, eine fhem.cfg mit 1200kb über das DEF-Feld hochzuladen.

Vielleicht hat das etwas mit deinem Browser zu tun. Hast du schon mit einem anderen probiert?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Ich konnte das DOIF problemlos anlegen und erweitern.

Ich vermute Dein Problem hängt mit diesem Verhalten zusammen https://forum.fhem.de/index.php/topic,71763.0.html ; Das hat wahrscheinlich Deine FHEM-Installation negativ beeinflusst.

Ich würde das DOIF löschen (vorher als Text sichern) und einen Neustart des Rechners durchführen. vorher würde ich das statefile von Fragmenten befreien, die mit dem namenlosen DOIF zusammenhängen.

Zusätzlich würde ich auch fhemdebug laufenlassen um irgendwelche "typeless" Geschichten auszuschliessen.

Und dann das DOIF wieder anlegen.