Hallo zusammen,
ich habe mir mit Fhem auch meine Rollladensteuerung automatisiert.
Nun kommt es ja mal vor, dass man diese Steuerung deaktivieren möchte.
Damit ich sie nicht immer wieder erneut aktiviern muss, sofern sie nur einmal deaktivert werden soll habe ich mir hier den Schalter Rollladen_next_Automatic = on:off einfallen lassen.
Wenn dieser Schalter off gesetzt ist, soll die Automatic einmal deakiviert sein.
Soweit so gut, der AT - Befehl  erkennt den Schaltzustand und soll nun den Schaltzustand von Off wieder auf On schalten und die Rollläden sollen dann aber nicht fahren.
Ich habe die Programmierung(AT-Befehl) mit set Rollladen_alle_oben execNow überprüft und es funktionierte.
Mit der eigentlichen Automatic funktioniert es aber nicht.
Der Schalter wird Off nach OIn geschaltet und die Rollläden fahren trotzdem.
Es scheint so zu sein, dass Fhem das AT - Command mehrmals absetzt um hier sicherzustellen, dass dies auch ausgeführt wird.
Was für eine Möglichkeit habe ich hier damit meine Steuerung funktioniert.
Hier mein Code.
define Rollladen_alle_oben at *06:40:00 \
{if (Value("Rollladen_next_Automatic") eq "off") \
	{fhem("set Rollladen_next_Automatic on")} \
else \
	{fhem("set Rollladen_alle oben") } \
}
attr Rollladen_alle_oben room Rollladen
Viele Grüße
Sven
			
			
			
				ZitatEs scheint so zu sein, dass Fhem das AT - Command mehrmals absetzt um hier sicherzustellen, dass dies auch ausgeführt wird.
Mit Sicherheit nicht.
Dein Fehler scheint woanders zu liegen.
Grüße Markus
			
 
			
			
				Hast du eine Ahnung wo ich suchen kann ?
			
			
			
				Wo ist denn Rolladen_next_Automatic noch "eingebaut"?
Da wird wahrscheinlich der Fehler liegen.
Bestimmt in einem DOIF.
Gesendet von iPhone mit Tapatalk
			
			
			
				Hi Sven,
zunächst mal scheint es einen Tippfehler im Fhem-Befehl im Else-Zweig zu geben: Dort steht "set Rollladen_alle oben" müsste das nicht sowas wie "set Rollladen_alle_oben on" heißen?
Also das "oben" noch mit Unterstrich Bestandteil des Namens, und dann noch den Befehl dazu?
Wenn das allerdings so korrekt sein sollte, empfiehlt es sich immer eher, jedes Rolladendevice direkt zu schalten (anstatt einen "Sammeldummy" zu kreieren). Das kann ja in einem Schritt mit einer DevSpec passieren z.B.:
set Rolladen_.* oben
Ansonsten bräuchten wir für eine echte Hilfe, wie jemand schon geschrieben hat, alle Stellen, die irgendwie auf deine Devices einwirken: Notify/DoIf/At...
Grüße
Reinerlein
			
			
			
				Und am besten ein list dieser Devices. Ansonsten kann man halt nur raten.
			
			
			
				Hallo,
vielen Dank euch allen es wäre besser gewesen wenn ich gleich alle Infos hierein gepackt hätte.
Ich habe nun alles aus der Konfigdatei herausgezogen und hoffe nichts vergessen zu haben.
Der AT - Befehl der die Rollläden nach oben fährt
define Rollladen_alle_oben at *06:40:00 \
{if (Value("Rollladen_next_Automatic") eq "off") \
	{fhem("set Rollladen_next_Automatic on")} \
else \
	{fhem("set Rollladen_alle oben") } \
}
attr Rollladen_alle_oben room Rollladen
Der AT - Befehl der die Rollläden nach unten fährt
define Rollladen_alle_unten at *{sunset("REAL",1800,"18:00","23:00")} \
{if (Value("Rollladen_next_Automatic") eq "off") \
	{fhem("set Rollladen_next_Automatic on")} \
else \
	{fhem("set Rollladen_alle unten") } \
}
attr Rollladen_alle_unten room Rollladen
Die Fahrzeiten werden von dem folgendem AT angepasst.
Dies Funktionalität ist in Ordnung und läuft einwandfrei
define Rollladen_alle_Zufall_oben at *00:05:00 { \
if (!$we) { \
		my $Zufallszahl = int(rand(15) +1 );; \
		my $Uhr = "06:".(30 + $Zufallszahl).":00";; \
		fhem("set Lampe1 ".$Uhr);; \
		fhem("modify Rollladen_alle_oben *".$Uhr);; \
	}else{ \
		my $Zufallszahl = int(rand(15) +1 );; \
		my $Uhr = "07:".(44 + $Zufallszahl).":00";; \
		fhem("modify Rollladen_alle_oben *".$Uhr);; \
		fhem("set Lampe1 ".$Uhr);; \
	} \
}
attr Rollladen_alle_Zufall_oben room Rollladen
Hier der Dummy Schalter Automatic Dummy
Dies funktioniert auch einwandfrei. Hier schalte ich die Automatic kpl. aus und an
define Rollladen_Automatic dummy
attr Rollladen_Automatic room Rollladen
attr Rollladen_Automatic webCmd on:off
Dies der Schalter der die Automatik einmal abschalten soll.
Dies funktioniert nicht einwandfrei
define Rollladen_next_Automatic dummy
attr Rollladen_next_Automatic room Rollladen
attr Rollladen_next_Automatic webCmd on:off
set Rollladen_next_Automatic on
Wenn ich den Schalter Rollladen_next_Automatic mit execNow überprüfe funktioniert es einwandfrei.
Mit der eigentlichen Automatic funktioniert es aber nicht.
Der Schalter wird Off nach OIn geschaltet und die Rollläden fahren trotzdem.
Vielen Dank schon mal.
Sven
			
			
			
				Wie ist der Dummy "Rollladen_Automatic" in der Logik involviert?
Wie sieht das Device "Rollladen_alle" aus?
Gruß
			
			
			
				Zitat von: sven.scherf am 05 Mai 2017, 07:48:59
Hallo,
vielen Dank euch allen es wäre besser gewesen wenn ich gleich alle Infos hierein gepackt hätte.
Ich habe nun alles aus der Konfigdatei herausgezogen und hoffe nichts vergessen zu haben.
Der AT - Befehl der die Rollläden nach oben fährt
define Rollladen_alle_oben at *06:40:00 \
{if (Value("Rollladen_next_Automatic") eq "off") \
	{fhem("set Rollladen_next_Automatic on")} \
else \
	{fhem("set Rollladen_alle oben") } \
}
attr Rollladen_alle_oben room Rollladen
Der AT - Befehl der die Rollläden nach unten fährt
define Rollladen_alle_unten at *{sunset("REAL",1800,"18:00","23:00")} \
{if (Value("Rollladen_next_Automatic") eq "off") \
	{fhem("set Rollladen_next_Automatic on")} \
else \
	{fhem("set Rollladen_alle unten") } \
}
attr Rollladen_alle_unten room Rollladen
Die Fahrzeiten werden von dem folgendem AT angepasst.
Dies Funktionalität ist in Ordnung und läuft einwandfrei
define Rollladen_alle_Zufall_oben at *00:05:00 { \
if (!$we) { \
		my $Zufallszahl = int(rand(15) +1 );; \
		my $Uhr = "06:".(30 + $Zufallszahl).":00";; \
		fhem("set Lampe1 ".$Uhr);; \
		fhem("modify Rollladen_alle_oben *".$Uhr);; \
	}else{ \
		my $Zufallszahl = int(rand(15) +1 );; \
		my $Uhr = "07:".(44 + $Zufallszahl).":00";; \
		fhem("modify Rollladen_alle_oben *".$Uhr);; \
		fhem("set Lampe1 ".$Uhr);; \
	} \
}
attr Rollladen_alle_Zufall_oben room Rollladen
Hier der Dummy Schalter Automatic Dummy
Dies funktioniert auch einwandfrei. Hier schalte ich die Automatic kpl. aus und an
define Rollladen_Automatic dummy
attr Rollladen_Automatic room Rollladen
attr Rollladen_Automatic webCmd on:off
Dies der Schalter der die Automatik einmal abschalten soll.
Dies funktioniert nicht einwandfrei
define Rollladen_next_Automatic dummy
attr Rollladen_next_Automatic room Rollladen
attr Rollladen_next_Automatic webCmd on:off
set Rollladen_next_Automatic on
Wenn ich den Schalter Rollladen_next_Automatic mit execNow überprüfe funktioniert es einwandfrei.
Mit der eigentlichen Automatic funktioniert es aber nicht.
Der Schalter wird Off nach OIn geschaltet und die Rollläden fahren trotzdem.
Vielen Dank schon mal.
Sven
Mit den Infos kann ich nicht helfen. Was ich wollte ist ein list von allen beteiligten Devices.
list DEVICENAME
oben in die Commandline eingeben bitte.
			
 
			
			
				Hallo,
die Devices habe ich nun mit list ausgelesen und hier die Ausgaben eingefügt.
Der AT - Befehl der die Rollläden nach oben fährt
Internals: 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   COMMAND 
{if (Value("Rollladen_next_Automatic") eq "off") 
	{fhem("set Rollladen_next_Automatic on")} 
else 
	{fhem("set Rollladen_alle oben") } 
} 
   DEF        *07:56:00 
{if (Value("Rollladen_next_Automatic") eq "off") 
	{fhem("set Rollladen_next_Automatic on")} 
else 
	{fhem("set Rollladen_alle oben") } 
} 
   NAME       Rollladen_alle_oben 
   NR         209 
   PERIODIC   yes 
   RELATIVE   no 
   REP        -1 
   STATE      Next: 07:56:00 
   TIMESPEC   07:56:00 
   TRIGGERTIME 1494136560 
   TRIGGERTIME_FMT 2017-05-07 07:56:00 
   TYPE       at 
   Readings: 
     2017-05-06 16:49:50   state           Next: 07:56:00 
Attributes: 
   room       Rollladen 
Der AT - Befehl der die Rollläden nach unten fährt
Internals: 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   COMMAND 
{if (Value("Rollladen_next_Automatic") eq "off") 
	{fhem("set Rollladen_next_Automatic on")} 
else 
	{fhem("set Rollladen_alle unten") } 
} 
   DEF        *{sunset("REAL",1800,"18:00","23:00")} 
{if (Value("Rollladen_next_Automatic") eq "off") 
	{fhem("set Rollladen_next_Automatic on")} 
else 
	{fhem("set Rollladen_alle unten") } 
} 
   NAME       Rollladen_alle_unten 
   NR         206 
   NTM        21:15:42 
   PERIODIC   yes 
   RELATIVE   no 
   REP        -1 
   STATE      Next: 21:15:42 
   TIMESPEC   {sunset("REAL",1800,"18:00","23:00")} 
   TRIGGERTIME 1494098142 
   TRIGGERTIME_FMT 2017-05-06 21:15:42 
   TYPE       at 
   Readings: 
     2017-05-06 16:49:37   state           Next: 21:15:42 
Attributes: 
   room       Rollladen 
Hier habe ich die einzelen Rollläden zusammen gefasst.
Internals: 
   ATTR       room 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   DEF        room WC_Rol Bad_Rol Kue_Rol_Li Kue_Rol_Re Wz_Rol_Fenster Esse_Rol Bue_Rol_Fenster 
   NAME       Rollladen_alle 
   NR         203 
   NTFY_ORDER 50-Rollladen_alle 
   STATE      IOerr 
   TYPE       structure 
   Content: 
     Bad_Rol    IOerr 
     Bue_Rol_Fenster IOerr 
     Esse_Rol   IOerr 
     Kue_Rol_Li IOerr 
     Kue_Rol_Re IOerr 
     WC_Rol     IOerr 
     Wz_Rol_Fenster IOerr 
   Readings: 
     2017-05-06 16:50:01   LastDevice      Wz_Rol_Fenster 
     2017-05-06 16:50:01   LastDevice_Abs  Wz_Rol_Fenster 
     2017-05-06 16:50:01   state           IOerr 
Attributes: 
   eventMap   on:unten off:oben 
   room       Rollladen
Die Fahrzeiten werden von dem folgendem AT angepasst.
Dies Funktionalität ist in Ordnung und läuft einwandfrei
Internals: 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   COMMAND    { 
if (!$we) { 
		my $Zufallszahl = int(rand(15) +1 ); 
		my $Uhr = "06:".(30 + $Zufallszahl).":00"; 
		fhem("set Lampe1 ".$Uhr); 
		fhem("modify Rollladen_alle_oben *".$Uhr); 
	}else{ 
		my $Zufallszahl = int(rand(15) +1 ); 
		my $Uhr = "07:".(44 + $Zufallszahl).":00"; 
		fhem("modify Rollladen_alle_oben *".$Uhr); 
		fhem("set Lampe1 ".$Uhr); 
	} 
} 
   DEF        *00:05:00 { 
if (!$we) { 
		my $Zufallszahl = int(rand(15) +1 ); 
		my $Uhr = "06:".(30 + $Zufallszahl).":00"; 
		fhem("set Lampe1 ".$Uhr); 
		fhem("modify Rollladen_alle_oben *".$Uhr); 
	}else{ 
		my $Zufallszahl = int(rand(15) +1 ); 
		my $Uhr = "07:".(44 + $Zufallszahl).":00"; 
		fhem("modify Rollladen_alle_oben *".$Uhr); 
		fhem("set Lampe1 ".$Uhr); 
	} 
} 
   NAME       Rollladen_alle_Zufall_oben 
   NR         199 
   PERIODIC   yes 
   RELATIVE   no 
   REP        -1 
   STATE      Next: 00:05:00 
   TIMESPEC   00:05:00 
   TRIGGERTIME 1494108300 
   TRIGGERTIME_FMT 2017-05-07 00:05:00 
   TYPE       at 
   Readings: 
     2017-05-06 16:49:37   state           Next: 00:05:00 
Attributes: 
   room       Rollladen
Hier der Dummy Schalter Automatic Dummy
Dies funktioniert auch einwandfrei. Hier schalte ich die Automatic kpl. aus und an
Internals: 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   NAME       Rollladen_Automatic 
   NR         240 
   STATE      on 
   TYPE       dummy 
   Readings: 
     2017-05-06 16:47:07   state           on 
Attributes: 
   room       Rollladen 
   webCmd     on:off 
Da dazu gehörige Notify On
Internals: 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   DEF        Rollladen_Automatic:on set Rollladen_alle_oben active; set Rollladen_alle_unten active 
   NAME       n_RollladenAutomatikOn 
   NOTIFYDEV  Rollladen_Automatic 
   NR         253 
   NTFY_ORDER 50-n_RollladenAutomatikOn 
   REGEXP     Rollladen_Automatic:on 
   STATE      2017-05-06 17:01:08 
   TYPE       notify 
   Readings: 
     2017-05-06 16:49:37   state           active 
Attributes: 
   room       Rollladen 
und das Off
Internals: 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   DEF        Rollladen_Automatic:off set Rollladen_alle_oben inactive; set Rollladen_alle_unten inactive 
   NAME       n_RollladenAutomatikOff 
   NOTIFYDEV  Rollladen_Automatic 
   NR         254 
   NTFY_ORDER 50-n_RollladenAutomatikOff 
   REGEXP     Rollladen_Automatic:off 
   STATE      2017-05-06 17:01:07 
   TYPE       notify 
   Readings: 
     2017-05-06 16:49:37   state           active 
Attributes: 
   room       Rollladen 
Dies der Schalter der die Automatik einmal abschalten soll.
Dies funktioniert nicht.
Internals: 
   CFGFN      /usr/local/fhem/opt/rollladen.cfg 
   NAME       Rollladen_next_Automatic 
   NR         242 
   STATE      on 
   TYPE       dummy 
   Readings: 
     2017-05-06 16:49:37   state           on 
Attributes: 
   room       Rollladen 
   webCmd     on:off 
Wenn ich den Schalter Rollladen_next_Automatic mit execNow überprüfe funktioniert es einwandfrei.
Mit der eigentlichen Automatic funktioniert es aber nicht.
Der Schalter wird Off nach OIn geschaltet und die Rollläden fahren trotzdem.
Vielen Dank schon mal.
Sven
			
			
			
				Auf den ersten Blick konnte ich nichts feststellen was zur Nichtfunktion führen könnte.
Ich würde mir gerne morgen Früh etwas Zeit nehmen und das ganze mal in meine Testinstallation einbringen.
Grüße
			
			
			
				Hallo,
vielen Dank an alle.
Die Fehlerwirkung hat sich in Luft aufgelöst.
Gestern morgen fiel mir auf, dass meine Funktion Rollladen_alle_Zufall _oben nicht mehr richtig funktionierte. Ich wurde zu früh geweckt :((
Das Wochenende wurde nicht erkannt.
Um den Fehler auf die Spur zu kommen habe ich die Config-Dateien ein wenig aufgeräumt und auch hier das Posting mit dem List Command erstellt.
Nun funktionierte die Zufalls Funktion wieder uns auch das einmalige Abschalten hat nun funktioniert.
Woran dies nun lag kann ich nicht sagen.
Ich könnte nun die alten Config Files nochmal wieder einspielen und es austesten aber das möchte ich im Augenblick nicht riskieren. Das System will ich erst einmal runter von der NAS auf einen RASPI spielen damit es ein wenig stabiler ist.
Man lernt ja :)
Danke nochmals und viele Grüße
Sven