AT steuert mehrmals

Begonnen von sven.scherf, 03 Mai 2017, 19:33:10

Vorheriges Thema - Nächstes Thema

sven.scherf

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
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

KölnSolar

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
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

sven.scherf

Hast du eine Ahnung wo ich suchen kann ?
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

Ma_Bo

Wo ist denn Rolladen_next_Automatic noch "eingebaut"?
Da wird wahrscheinlich der Fehler liegen.
Bestimmt in einem DOIF.


Gesendet von iPhone mit Tapatalk
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Reinerlein

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
Da empfiehlt sich eine schöne Namensstruktur, dann braucht man auch nicht weiter zu filtern. Testen kannst du diese "DevSpec"s mit dem List-Befehl. Dort werden dann alle Devices als Ergebnis aufgelistet, die dieser DevSpec betrifft...

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

CoolTux

Und am besten ein list dieser Devices. Ansonsten kann man halt nur raten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

sven.scherf

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
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

amenomade

Wie ist der Dummy "Rollladen_Automatic" in der Logik involviert?

Wie sieht das Device "Rollladen_alle" aus?

Gruß
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

sven.scherf

#9
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




Raspi 3 mit CUL Stick 433/868MHZ, Homematic

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

sven.scherf

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



Raspi 3 mit CUL Stick 433/868MHZ, Homematic