Hallo zusammen!
Nach dem ich nun die Raffstore einzeln fahren kann (siehe https://forum.fhem.de/index.php/topic,114707.msg1091693.html#msg1091693)
, würde ich noch einen Schalter benötigen, mit dem ich alle Raffstore zusammen fahren kann.
Ich hätte es (analog zu den Einzelschaltungen) einmal so probiert,
define SchalterAll dummy
attr SchalterAll room RAFFSTORES
attr SchalterAll webCmd UP:DOWN
define RAFFSTORES.SchalterAll DOIF ([SchalterAll:"UP"]) ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs1=up") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs2=up") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs4=up") DOELSEIF ([SchalterAll:"DOWN"]) ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs1=down") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs2=down") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=down") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs4=down")
attr RAFFSTORES.SchalterAll do always
hat soweit mal funktioniert.
Bei einem Raffstore wurde jedoch nicht ausgelöst, ich nehme an da haben sich die Signale die zeitgleich versendet wurden überlagert.
Kann man die Befehle zeitversetzt abgeben?
Vielen Dank!
Günther
Ich habe den Code jetzt mal um
attr RAFFSTORES.SchalterAll wait 0,5,5,5
ergänzt.
Aber es scheint so, als ob da keine Delay (jeweils 5 Sekunden) zwischen den einzelenen Fahrbefehlen wäre.
https://fhem.de/commandref_DE.html#DOIF_wait
hat die Anwort geliefert
Mit
attr RAFFSTORES.SchalterAll wait 0,5,5,5:0,5,5,5
sieht die Sache nun besser aus, ich teste das mal weiter aus.
Schau dir auch mal "structure" an. Das kann auch kurze Verzögerungen via Attribut.
Hallo,
ich habe dies über einen Dummy (RolloAlle) gelöst und ein notify welches auf diesen Dummy reagiert.
RollosAlle:Auf|aktion {fhem("define tmp_time1 at +00:00:00 set Rollo1 Auf ; define tmp_time2 at +00:00:00 set Rollo2 Auf ;
define tmp_time3 at +00:00:00 set Rollo3 Auf ; define tmp_time4 at +00:00:00 set Rollo4 Auf ; define tmp_time5 at +00:00:00 set Rollo5 Auf ;
define tmp_time6 at +00:00:00 set Rollo6 Auf ;
define tmp_time7 at +00:00:00 set Rollo7 Auf ;")}
Bei mir macht FHEM automatisch eine Verzögerung (433Mhz) aber das könnte man auch im notify handisch machen.
Gruß
Zitat von: Müller am 17 Oktober 2020, 09:35:19
Hallo,
ich habe dies über einen Dummy (RolloAlle) gelöst und ein notify welches auf diesen Dummy reagiert.
RollosAlle:Auf|aktion {fhem("define tmp_time1 at +00:00:00 set Rollo1 Auf ; define tmp_time2 at +00:00:00 set Rollo2 Auf ;
define tmp_time3 at +00:00:00 set Rollo3 Auf ; define tmp_time4 at +00:00:00 set Rollo4 Auf ; define tmp_time5 at +00:00:00 set Rollo5 Auf ;
define tmp_time6 at +00:00:00 set Rollo6 Auf ;
define tmp_time7 at +00:00:00 set Rollo7 Auf ;")}
Bei mir macht FHEM automatisch eine Verzögerung (433Mhz) aber das könnte man auch im notify handisch machen.
Gruß
Du kannst die Geschweiften Klammern weglassen, dann brauchst du auch den "fhem-Befehl" nicht:
{ -> wechsle nach Perl
fhem(" -> wechsle (zurück) nach fhem
EDIT: https://wiki.fhem.de/wiki/Klammerebenen
Und ich würde statt define defmod nehmen...
Bzw. überhaupt keine at definieren, sondern "einfach" sleep.
Ist in diesem "Konstrukt" ungefährlich (nicht blockierend)...
Gruß, Joachim
*Kopfschüttel* Warum würgarounds optimieren und nicht das Original verwenden?....?!?
Zitat von: Beta-User am 17 Oktober 2020, 11:01:45
*Kopfschüttel* Warum würgarounds optimieren ...
Ist doch offensichtlich, dem Vorschlag aus #3 sich mal mit
structure zu beschäftigen, ist bisher keiner gefolgt.
Zitat von: Beta-User am 17 Oktober 2020, 11:01:45
... nicht das Original verwenden?....?!?
schlussfolgernd kann auch kein(e) Verbindung/Querverweis hergestellt werden was den nun das Original ist.
Auch wenn man sich mit structure beschäftigt hat, wird nicht jeder Anfänger (aber auch Fortgeschrittene) in den Quellcode schauen um festzustellen das structure mehr oder weniger genau das macht was der letzte Vorschlag zeigt. (ich hab bis jetzt auch nicht in den Modul-Code reingeschaut, aber meine Vorstellung sagt mir das er so oder ähnlich aufgebaut sein muss)
Also auch mein Vorschlag: schaut euch beide
structure an, die Definition wird am Ende übersichtlicher und sehr viel kürzer sein.
Gruß
Thomas