Problem mit notify und Wartezeit

2,624 views
Skip to first unread message

puschel74

unread,
Jul 8, 2012, 9:02:07 AM7/8/12
to fhem-...@googlegroups.com
Hallo,

etwas schlecht gewählter Titel aber zur Frage:

Wenn ich

define OG_Zimmer_Rollo_25 notify OG_Zimmer_Rollo_2550:off { \
fhem ("set OG_Zimmer_Rollo off");;\
sleep 30;;\
fhem ("set OG_Zimmer_Rollo on-for-timer 2");;\
}

define OG_Zimmer_Rollo_50 notify OG_Zimmer_Rollo_2550:on { \
fhem ("set OG_Zimmer_Rollo off");;\
sleep 30;;\
fhem ("set OG_Zimmer_Rollo on-for-timer 4");;\
}

in meine fhem.cfg einfüge zu Testzwecken geht meine 7390 mit der Prozessorleistung
auf gut 90% hoch und fhem scheint sich am sleep 30 zu stören da im Logfile diese

2012.07.08 14:10:28 2: FS20 OG_Zimmer_Rollo_2550 off
2012.07.08 14:10:28 2: FS20 set OG_Zimmer_Rollo off
2012.07.08 14:10:59 2: FS20 set OG_Zimmer_Rollo on-for-timer 2
2012.07.08 14:10:59 2: FS20 OG_Zimmer_Rollo_2550 off
2012.07.08 14:10:59 2: FS20 set OG_Zimmer_Rollo off
2012.07.08 14:11:29 2: FS20 set OG_Zimmer_Rollo on-for-timer 2
2012.07.08 14:11:31 2: FS20 OG_Zimmer_Rollo_2550 off
2012.07.08 14:11:31 2: FS20 set OG_Zimmer_Rollo off
2012.07.08 14:12:01 2: FS20 set OG_Zimmer_Rollo on-for-timer 2
2012.07.08 14:12:01 2: FS20 OG_Zimmer_Rollo off
2012.07.08 14:12:03 2: FS20 OG_Zimmer_Rollo on-for-timer 2
2012.07.08 14:12:04 2: FS20 OG_Zimmer_Rollo on-for-timer 2
2012.07.08 14:12:07 2: FS20 OG_Zimmer_Rollo off
2012.07.08 14:12:09 2: FS20 OG_Zimmer_Rollo off
2012.07.08 14:12:09 2: FS20 OG_Zimmer_Rollo on-for-timer 2

Einträge auftauchen.

Das lässt sich erst durch ein beherztes shutdown mit anschliessendem ./startfhem über telnet
in den Griff bekommen.
Definiert in der fhem.cfg ist folgendes:

define OG_Zimmer_Rollo_2550 FS20 1b39 61
attr OG_Zimmer_Rollo_2550 IODev CUNO2
attr OG_Zimmer_Rollo_2550 eventMap /on-for-timer 2:off/on-for-timer 4:on
attr OG_Zimmer_Rollo_2550 model fs20
attr OG_Zimmer_Rollo_2550 room 03_Obergeschoss

define FileLog_OG_Zimmer_Rollo_2550 FileLog ./log/OG_Zimmer_Rollo_2550-%Y.log OG_Zimmer_Rollo_2550
attr FileLog_OG_Zimmer_Rollo_2550 logtype text
attr FileLog_OG_Zimmer_Rollo_2550 room 11_Logfiles

define OG_Zimmer_Rollo FS20 1b39 60
attr OG_Zimmer_Rollo IODev CUNO2
attr OG_Zimmer_Rollo eventMap /on-for-timer 2:Ab25/on-for-timer 4:Ab50/on-for-timer 8:Ab75/on-for-timer 12:Ab100/off:Auf/on:Ab/
attr OG_Zimmer_Rollo model fs20rsu
attr OG_Zimmer_Rollo room 03_Obergeschoss

define FileLog_OG_Zimmer_Rollo FileLog ./log/OG_Zimmer_Rollo-%Y.log OG_Zimmer_Rollo
attr FileLog_OG_Zimmer_Rollo logtype text
attr FileLog_OG_Zimmer_Rollo room 11_Logfiles

Mit OG_Zimmer-Rollo läßt sich der Rollladen wunderbar verfahren und auch stoppen.
Nur das notify (oder besser ich) scheine da irgendwas durcheinander zu bringen.

Über einen Gedankenstoss wäre ich sehr dankbar.

Grüße

Rudolf Koenig

unread,
Jul 8, 2012, 5:42:49 PM7/8/12
to fhem-...@googlegroups.com
Schlecht:

> fhem ("set OG_Zimmer_Rollo off");;\
> sleep 30;;\
> fhem ("set OG_Zimmer_Rollo on-for-timer 2");;\

da sleep 30 in perl ausgefuehrt wird, und damit fhem 30 Sekunden lang
blockiert wird.


Richtig (eine Zeile):

> fhem ("set OG_Zimmer_Rollo off;; sleep 30;; set OG_Zimmer_Rollo on-for-timer 2");;\

weil dieser sleep ein fhem-sleep ist, der die Ausfuehrung der restlichen
Kommandos in 30 Sekunden einplant (so 'ne Art at +00:00:30), und sofort
zurueckkehrt.

Warum die schlechte Variante hohe CPU erzeugt, kann ich mir noch nicht
erklaeren, das koenntest Du hoechstens durch hochdrehen des globalen verbose
lokalisieren.

JörgB

unread,
Jul 8, 2012, 6:43:09 PM7/8/12
to fhem-...@googlegroups.com


Am Sonntag, 8. Juli 2012 23:42:49 UTC+2 schrieb Rudolf Koenig:
Schlecht:

> fhem ("set OG_Zimmer_Rollo off");;\
> sleep 30;;\
> fhem ("set OG_Zimmer_Rollo on-for-timer 2");;\

da sleep 30 in perl ausgefuehrt wird, und damit fhem 30 Sekunden lang
blockiert wird.


 Hab's noch nicht ausprobiert, aber würde denn dadurch nicht auch das FHEM-Sleep angesprochen werden?
 fhem ("sleep 30");;\

puschel74

unread,
Jul 9, 2012, 5:16:09 AM7/9/12
to fhem-...@googlegroups.com
Hallo,

der kleine aber feine Unterschied ;-)

Danke Rudi für die Erklärung - jetzt hab ichs, glaube ich, auch kapiert mit dem sleep.

Ich werds gleich mal ausprobieren und berichten.

Den verbose hochsetzen kann ich mal machen und berichten was sich im Log ansammelt.
Vielleicht hilft es dir ja in irgendeiner Form weiter.

Grüße


Am Sonntag, 8. Juli 2012 23:42:49 UTC+2 schrieb Rudolf Koenig:

puschel74

unread,
Jul 9, 2012, 7:25:53 AM7/9/12
to fhem-...@googlegroups.com
Hallo,

so. Mit diesen beiden Notify


define OG_Zimmer_Rollo_25 notify OG_Zimmer_Rollo_2550:off { \
fhem ("set OG_Zimmer_Rollo off;; sleep 30;; set OG_Zimmer_Rollo on-for-timer 2");;\
}

define OG_Zimmer_Rollo_50 notify OG_Zimmer_Rollo_2550:on { \
fhem ("set OG_Zimmer_Rollo off;; sleep 30;; set OG_Zimmer_Rollo on-for-timer 4");;\
}

bleibt fhem wunderbar bedienbar.
Leider liefert mir das Log nach betätigen von OG_Zimmer_Rollo_2550 off

2012.07.09 13:03:58 2: FS20 OG_Zimmer_Rollo_2550 off
2012.07.09 13:03:58 2: FS20 set OG_Zimmer_Rollo off
2012.07.09 13:03:59 2: FS20 OG_Zimmer_Rollo_2550 off
2012.07.09 13:03:59 2: FS20 set OG_Zimmer_Rollo off
2012.07.09 13:04:00 2: FS20 OG_Zimmer_Rollo off
2012.07.09 13:04:29 2: FS20 set OG_Zimmer_Rollo on-for-timer 2
2012.07.09 13:04:29 2: FS20 set OG_Zimmer_Rollo on-for-timer 2

Fhem scheint das off des Senders (OG_Zimmer_Rollo_2550) zweimal zu empfangen
und sendet mir auch 2-mal dann ein OG_Zimmer_Rollo off und zweimal den on-for-timer 2.
Konsequenz:
Der Rolladen fährt hoch bis zum zweiten off und bleibt dann stehen.
Mit den beiden on-for-timer 2 dann die andere Richtung.

Das set OG_Zimmer_Rollo off möchte ich machen damit der Rolladen aus jeder Position
erstmal ganz auf fährt um dann, anch 30 Sekunden, mit dem on-for-timer 2 25% zu schliessen.

Für Ideen bin ich immer zu haben ;-)

Grüße

puschel74

unread,
Jul 9, 2012, 7:33:16 AM7/9/12
to fhem-...@googlegroups.com
Nachtrag:

Ein OG_Zimmer_Rollo_2550 on funktioniert.

2012.07.09 13:28:25 2: FS20 OG_Zimmer_Rollo_2550 on
2012.07.09 13:28:25 2: FS20 set OG_Zimmer_Rollo off
2012.07.09 13:28:55 2: FS20 set OG_Zimmer_Rollo on-for-timer 4
2012.07.09 13:28:56 2: FS20 OG_Zimmer_Rollo on-for-timer 4

2012.07.09 13:29:10 2: FS20 OG_Zimmer_Rollo_2550 off 2012.07.09 13:29:10 2: FS20 set OG_Zimmer_Rollo off 2012.07.09 13:29:10 2: FS20 OG_Zimmer_Rollo_2550 off 2012.07.09 13:29:11 2: FS20 set OG_Zimmer_Rollo off 2012.07.09 13:29:40 2: FS20 set OG_Zimmer_Rollo on-for-timer 2 2012.07.09 13:29:41 2: FS20 set OG_Zimmer_Rollo on-for-timer 2

2012.07.09 13:30:20 2: FS20 OG_Zimmer_Rollo_2550 on 2012.07.09 13:30:21 2: FS20 set OG_Zimmer_Rollo off 2012.07.09 13:30:51 2: FS20 set OG_Zimmer_Rollo on-for-timer 4

Nur das off streikt.

Grüße

puschel74

unread,
Jul 9, 2012, 8:04:15 AM7/9/12
to fhem-...@googlegroups.com
Zurückruder!!

Es funktioniert doch.

Grüße

puschel74

unread,
Jul 9, 2012, 11:39:14 AM7/9/12
to fhem-...@googlegroups.com
So, nächstes "Problem".
Wobei solche Probleme meist zwischen Tastatur und Bildschirm zu lösen sind ;-)

Wenn ich meinen OG_Zimmer_Rollo_2550 mit

attr OG_Zimmer_Rollo_2550 eventMap /on:75%/off:50%/

mappe wird mir in der Übersicht schön 75%    50%    angezeigt.

Wenn ich den zugehörigen Taster betätige (off == 50%) wird im Log ein
on empfangen, in fhem wird mir ein 50% angezeigt aber die Rollo bewegt
sich keinen Millimeter.
Wenn ich das eventMap lösche und mit on und off in fhem arbeite bewegt sich
die Rollo so wie im notify definiert.

Bin, mal wieder, für jeden Gedankenanstoss dankbar.

Grüße
Reply all
Reply to author
Forward
0 new messages