Zusätzlichen Button einfugen

Begonnen von Jackeson, 21 März 2017, 14:44:39

Vorheriges Thema - Nächstes Thema

Jackeson

Hallo,
also ich versuche seit Tagen einen zusätzlichen Button oder Schalter hinzuzufügen komme aber überhaupt nicht klar wie ich das machen kann?
define EG.Wohnzimmer_Raffstor IT 00FF00F00F FF F0
attr EG.Wohnzimmer_Raffstor IODev CUL_0
attr EG.Wohnzimmer_Raffstor devStateIcon auf:fts_shutter_10@green zu:fts_shutter_100@red *:fts_shutter_50@blue
attr EG.Wohnzimmer_Raffstor icon fts_shutter@Violet
attr EG.Wohnzimmer_Raffstor model itswitch
attr EG.Wohnzimmer_Raffstor room Rollos
attr EG.Wohnzimmer_Raffstor webCmd on:off


soweit bin ich:
define at_ EG.Wohnzimmer_Raffstor at +00:00:01 set  EG.Wohnzimmer_Raffstor off ;  EG.Wohnzimmer_Raffstor off
führt das auch aus so wie ich es will
aber wie bringe ich bei "webCmd on:off:pos" den pos Button so hin das der Befehl wenn ich den pos anklicke ausgeführt wird?
geht das überhaupt?


aller anfang ist schwer

T3mplate

Was soll bei "pos" denn ausgeführt werden?

Jackeson

Hallo,
es soll ausgeführt werden das der Raffstore sich für 1 Sekunde aufbewegt und wieder stoppt so das man rausschauen kann.
Gruß
aller anfang ist schwer

Otto123

Hi,
es gibt da wahrscheinlich viele Möglichkeiten. webCmd selbst sendet Kommandos an das eigene Gerät, da kann man nicht direkt ein "Programm" hinterlegen.
Geht mit einem zusätzlichen notify, so ähnlich wie hier

define nty_pos notify EG.Wohnzimmer_Raffstor:pos set  EG.Wohnzimmer_Raffstor off

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

KernSani

Da gibt es mehrere Möglichkeiten... Wenn du was Vorgefertigtes willst könnte das Modul ROLLO ein Lösung sein.

Wenn ich das richtig verstehe, versteht dein raffstor nur on und off, oder? Da kannst du dir z.B. mit ReadingsProxy oder Dummy Notifyoder DOIF etc... einen Knopf bauen, der z.B. ein on-for-timer an den raffstor schickt. 
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

the ratman

kann das rollo auch % (pct)?
so habs ich gelöst ... je nach rollo fahr ich das entsprechende rollo  ein paar % (hier 2%) auf oder zu.

nachdem das genze leider mit abstand ist, brauch ich erst mal eine
eventMap mit /up 2:up2/down 2:down2/
und dann einfach
webCmd mit zusätzlich up2:down2
und natürlich dann noch
cmdIcon zusätzlich mit up2:fts_blade_arc_close_00@black down2:fts_blade_arc_close_100@black
nicht ganz die richtigen icons, aber ich war faul *g*
→do↑p!dnʇs↓shit←

Jackeson

ja richtig der Raffstore kann nur on und off deswegen auch(on on ist Stopp)
at +00:00:01 set  EG.Wohnzimmer_Raffstor off ;  EG.Wohnzimmer_Raffstor off
das ja auch funktioniert mit zweimal off hintereinander
das Rollo modul  hab ich auch versucht aber mit on for timer geht er dann wieder zurück auf die gleiche Pos denke das das ihn das zweite off zum stoppen fehlt.
pct kann das intertechno nicht
bin echt ratlos wie ich das hinbekommen soll
aller anfang ist schwer

Jackeson

Hallo, the ratman
wieder Rollo modul instaliert und getestet aber bei

commandDown2 set OG.BueroMichael_Rolladen on
oder so
commandDown2 set OG.BueroMichael_Rolladen at +00:00:01 on
dann kommt immer diese Meldung
Unknown argument up2, choose one of  extern:open,closed,stop open:noArg unblocked:noArg blocked:noArg closed:noArg position:0,10,20,30,40,50,60,70,80,90,100 half:noArg stop:noArg reset:open,closed

oder hab ich was falsch gemacht? hast du auch einen Schalter der bei on on stopt ?
aller anfang ist schwer

the ratman

naja, wenn dein rollo kein pct kann, kannst meinen obigen beitrag eh in die tonne schmeißen. ich hab hier halt homematic-taster, die machen das halt auch, wenns die rollo eig. nicht kann.

primitiv idee hab:
nen dummy als schalter und nem entsprechenden doif oder notify, das auf den dummy reagiert?
so kannst im doif dann ja deine 2*befehl absetzen, wenn du 1*dummy klickst.
→do↑p!dnʇs↓shit←

Jackeson

kannst du mir helfen ?
wäre echt super  :-[
oder dies genauer erklären ?
aller anfang ist schwer

Ellert

Mit DOIF geht es so:

zum Import mit "Raw definition"
defmod rollodi DOIF ([?$SELF]) (set rollo off) (set rollo off)\
DOELSEIF ([?$SELF]) (set rollo off)\
DOELSEIF ([?$SELF]) (set rollo on)
attr rollodi cmdState pos,pos|off|on
attr rollodi do always
attr rollodi wait 0,2
attr rollodi webCmd pos:off:on
defmod rollo dummy
save


Rollo müsstest Du mit dem Namen Deines Gerätes ersetzen. Zum Probieren geht es auch so.

KernSani

Nochmal kurz zum ROLLO Modul. Ich will dir nicht das Vergnügen nehmen, die Doku zu lesen daher in aller Kürze:

Du gibst dem ROLLO mit, was der Befehl für "hoch" ist (also das set Kommando, mit dem dein Raffstor hoch faährt)
Du gibst dem ROLLO mit, was der Befehl für "unten" ist
Du gibst dem ROLLO mit, was der Befehl für "stop" ist
wenn mehrere set-Befehle notwendig sind (2mal off) kannst du das über die jeweiligen Attribute ebenfalls mitgeben.

Du sagst dem ROLLO wie lange dein raffstor braucht um ganz hoch und runter zu fahren

aus diesen Angaben berechnet ROLLO wie lange er fahren muss um z.B. 10% zu öffnen und setzt dann intern die Timer um die oben angegebenen set Kommandos auszulösen.

Grüße,

Oli

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

Ok das mit dem rollo modul hab ich verstanden übrigens Doko hab ich gelesenaber warscheinlich nicht so richtig verstanden.
werde es versuchen

dann

defmod rollodi DOIF ([?$SELF]) (set OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen on)

meldung:
rollodi DOIF: expected DOELSEIF or DOELSE: \ DOELSEIF ([?rollodi]) (set OG.BueroMichael_Rolladen off)\ DOELSEIF ([?rollodi]) (set OG.BueroMichael_Rolladen on)

geht nicht was kann ich falsch gemacht haben ?
aller anfang ist schwer

Ellert

Zitat von: Jackeson am 21 März 2017, 17:43:29
Ok das mit dem rollo modul hab ich verstanden übrigens Doko hab ich gelesenaber warscheinlich nicht so richtig verstanden.
werde es versuchen

dann

defmod rollodi DOIF ([?$SELF]) (set OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen on)

meldung:
rollodi DOIF: expected DOELSEIF or DOELSE: \ DOELSEIF ([?rollodi]) (set OG.BueroMichael_Rolladen off)\ DOELSEIF ([?rollodi]) (set OG.BueroMichael_Rolladen on)

geht nicht was kann ich falsch gemacht haben ?

Weiss ich nicht, was hast Du denn gemacht?

KernSani


defmod rollodi DOIF ([?$SELF]) (set OG.BueroMichael_Rolladen off, set OG.BueroMichael_Rolladen off)\
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

weiß nicht einfach die "set OG.BueroMichael_Rolladen off" reingeschrieben
jetzt hab ich leute die helfen aber denk ist ein fehler bei mir
hab das so eingegeben in fhem
defmod rollodi DOIF ([?$SELF]) (set OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen on)
dann
attr rollodi cmdState pos,pos|off|on
attr rollodi do always
attr rollodi wait 0,2
attr rollodi webCmd pos:off:on
dann
defmod rollo dummy
aller anfang ist schwer

T3mplate

Nach lesen deiner Problemstellung ist eindeutig das Modul "ROLLO" die Lösung deines Problems.
Nach kurzem Studium kann das nicht unmöglich sein: https://wiki.fhem.de/wiki/ROLLO

Lege als erstes das device an:
define Test_Rollo ROLLO
Danach definierst du in diesem device mindestens folgende Attribute:
- type (wahrscheinlich normal)
- secondsDown und secondsUp (deine Laufzeiten)
- commandUp (set EG.Wohnzimmer_Raffstor on)
- commandDown (set EG.Wohnzimmer_Raffstor off)
- commandStopUp (set EG.Wohnzimmer_Raffstor on)
- commandStopDown (set EG.Wohnzimmer_Raffstor off)

Jackeson

das rollo modul versuche ich die ganze zeit schon aber da mein rollo nur bei on on stopt weiß ich nicht wie ich das im rollo modul sende versuche es schon die ganze zeit
commandDown2 set OG.BueroMichael_Rolladen at +00:00:02 on ; set OG.BueroMichael_Rolladen on
da ich den Befehl zum stoppen zweimal schicken muß
das Rollo modul kann ich schon bald auswendig (ist ein super modul)
aller anfang ist schwer

Ellert

Zitat von: Jackeson am 21 März 2017, 18:19:04
weiß nicht einfach die "set OG.BueroMichael_Rolladen off" reingeschrieben
jetzt hab ich leute die helfen aber denk ist ein fehler bei mir
hab das so eingegeben in fhem
defmod rollodi DOIF ([?$SELF]) (set OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([?$SELF]) (set OG.BueroMichael_Rolladen on)
dann
attr rollodi cmdState pos,pos|off|on
attr rollodi do always
attr rollodi wait 0,2
attr rollodi webCmd pos:off:on
dann
defmod rollo dummy

Hast Du den Code über "Raw definiton" importiert, so wie ich schrieb?

Jackeson

ja wie in diesem link beschrieben
https://wiki.fhem.de/wiki/Import_von_Code_Snippets
und dann shutdown gemacht

aber im er bleibt nicht drin nach dem neustart ist er weg ?
aller anfang ist schwer

T3mplate

#20
Zitat von: Jackeson am 21 März 2017, 18:31:35
das rollo modul versuche ich die ganze zeit schon aber da mein rollo nur bei on on stopt weiß ich nicht wie ich das im rollo modul sende versuche es schon die ganze zeit
commandDown2 set OG.BueroMichael_Rolladen at +00:00:02 on ; set OG.BueroMichael_Rolladen on
da ich den Befehl zum stoppen zweimal schicken muß
das Rollo modul kann ich schon bald auswendig (ist ein super modul)
Ganz so auswendig kennst du es glaube ich noch nicht  ;)
Der Befehl zum Stoppen ist nicht commandDown2 (den nimmst du wenn du alleine für das Herunterfahren mehr als einen Befehl benötigst). Der Befehl für das Stoppen ist commandStopUp und commandStopDown.
Um das "at" etc. brauchst du dir keine Sorgen machen. Das regelt dann das Modul.
Trage es einfach mal so ein wie oben von mir geschrieben und dann gebe über das Ergebnis Bescheid.

Hier nochmal die Beschreibung:
Zitat von: T3mplate am 21 März 2017, 18:20:25
Nach lesen deiner Problemstellung ist eindeutig das Modul "ROLLO" die Lösung deines Problems.
Nach kurzem Studium kann das nicht unmöglich sein: https://wiki.fhem.de/wiki/ROLLO

Lege als erstes das device an:
define Test_Rollo ROLLO
Danach definierst du in diesem device mindestens folgende Attribute:
- type (wahrscheinlich normal)
- secondsDown und secondsUp (deine Laufzeiten)
- commandUp (set EG.Wohnzimmer_Raffstor on)
- commandDown (set EG.Wohnzimmer_Raffstor off)
- commandStopUp (set EG.Wohnzimmer_Raffstor on)
- commandStopDown (set EG.Wohnzimmer_Raffstor off)

KernSani

Das Problem wird sein, dass es CommandStop nur einmal vorhanden ist und er zwei off/on braucht...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

Genau das ist es
das denke ich auch
aller anfang ist schwer

Jackeson

#23
secondsDown 24
secondsUp 26
wurde von mir schon eingetragen die auf und abfahrzeit

das hab ich bei commandDown2 eingetragen
commandDown2 set OG.BueroMichael_Rolladen at +00:00:02 on
aller anfang ist schwer

Ellert

Zitat von: Jackeson am 21 März 2017, 19:50:07
ja wie in diesem link beschrieben
https://wiki.fhem.de/wiki/Import_von_Code_Snippets
und dann shutdown gemacht

aber im er bleibt nicht drin nach dem neustart ist er weg ?

Dann hast Du save nicht mit ausgeführt.

KernSani

Probier mal in commanStopUp bzw. beide offs bzw ons einzutragen. Ich würde mal vermuten, dass das funktioniert. Wenn nicht, poste ein "list" vom ROLLO und ich schau mir das später am Rechner an.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

T3mplate

Zitat von: KernSani am 21 März 2017, 19:55:45
Das Problem wird sein, dass es CommandStop nur einmal vorhanden ist und er zwei off/on braucht...
Zitat von: Jackeson am 21 März 2017, 19:57:24
Genau das ist es
das denke ich auch
Erstmal glaube ich nicht das er den Befehl 2 mal zum Stoppen absetzen muss, sondern einmal zum starten und einmal zum Stoppen.
Wenn ich recht habe, dann würde es genauso funktionieren wie ich es eingetragen habe.
Wenn man wirklich nach einem "on" für start noch 2 mal "on" drücken muss, dann würde man aber auch dafür eine Lösung finden.

@Jackeson: commandDown2 brauchst du definitiv nicht und auch das at nicht. Kannst du es mal mit commandStopDown versuchen?

KernSani

ZitatWenn man wirklich nach einem "on" für start noch 2 mal "on" drücken muss, dann würde man aber auch dafür eine Lösung finden.
yep. Habe mir gerade das Coding angesehen, es wird einfach ausgeführt, was im Attribut eingetragen ist....

also sollte:
attr Test_Rollo commandStopDown set OG.BueroMichael_Rolladen off;set OG.BueroMichael_Rolladen off

es tun (ich hoffe ich habe jetzt up/down, on/off nicht verdreht, aber das solltest du hinbekommen ;-)

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Jackeson

Hallo KernSani
eigendlich ist es doch nur so das ich einen Button möchte wo mein Rollo sich 2 sek. bewegt und dann stehenbleibt?
also habe ich das modul rollo zum test genommen lt.Commandref also alles eingestellt usw.ging super
jetzt dachte ich mir einen extra Button anzulegen sodas der Raffstore nach 2Sek. stopt das die Lammellen leicht schräg stehen
mein Gedanke war:
                             commandUp2:at +00:00:02 set OG.BueroMichael_Rolladen off
                             eventMap:off:off
                             webCmd:open:closed:half:stop:position:off         
so dazu zu benutzen   
               
sende ich dies:
define at_OG.BuroMichael_Rolladen at +00:00:01 set OG.BueroMichael_Rolladen off ; set OG.BueroMichael_Rolladen off
macht er genau das was ich will, aber es lässt sich weder Speichern noch irgendwas anderes
und habe wieder keinen Button wo ich das ausführen kann?
aller anfang ist schwer

Jackeson

So erstmal Danke an alle "es geht"
zwar nicht im modul Rollo  :(
aber Ellert hatte recht seine Lösung war super hat aber erst später das speichern angenommen weiß nicht warum, aber ich hab jetzt den Button :D auf dem ich drücke und der Raffstore bewegt sich
2 Sekunden nach oben so das ich rausschauen kann.

Grosser Dank an Ellert
aller anfang ist schwer

KernSani

Nette Signatur ;-) Das Einsteiger-PDF hast du aber nicht gelesen, oder? ROLLO kann wohl viel zu viel für deinen Anwendungsfall, daher nehmen wir die basics.

Bin zwar spät dran, aber ich habe das mal etwas ausführlicher runtergetippselt... DOIF geht natürlich auch, verwirrt aber viele Anfänger, da die Syntax anders ist als in FHEM üblich (aber sehr mächtig)

Also. Das at dient dazu einen Befehl zu einem bestimmten Zeitpunkt auszuführen. In deinem Fall "in einer Sekunde". Das funktioniert. gut.

Nun wollen wir einen "button". Dazu nehmen wir einen Dummy. Der Dummy ist einfach ein dummes Device:

define OG.BueroMichael_Rolladen.dummy dummy

der Dummy soll im ersten Schritt nur zwei Befehle verstehen, nämlich "hoch" und "stop" (mit "hoch" läuft er los, mit "stop" hält er an), die bringen wir ihm so bei:
attr OG.BueroMichael_Rolladen.dummy setList hoch stop
Jetzt hast du in deinem Dummy ein Dropdown, um die beiden Befehle abzusenden. Um diese auch noch als "Buttons" zu bekommen, setzen wir webcmd
attr OG.BueroMichael_Rolladen.dummy webCmd hoch:stop
Wenn du einen der Befehle clickst, ändert sich der Status des Dummies, aber es passiert nichts sichtbares... Tatsächlich passiert doch etwas, in FHEM wird ein Event ausgelöst - und auf dieses Event können wir reagieren...
Zwischenbemerkung: Du hast gesehen, dass links oben neben "save config" ein rotes Fragezeichen aufgetaucht ist? Das heißt deine Änderungen sind noch nicht gespeichert, drück mal auf "Save Config", dass dein Dummy auch nach dem nächsten Neustart noch da ist.
Auf ein Event reagieren wir mit notify. In unserem Fall haben wir zwei Events: hoch und stop, die jeweils von deinem Dummy ausgelöst werden. Im folgenden Beispiel reagieren wir auf das Ereignis "hoch". Wir schicken einmal "off", warten zwei Sekunden und schicken dann zweimal "off" (so habe ich verstanden, funktioniert das hochfahren?)
define OG.BueroMichael_Rolladen.notify notify OG.BueroMichael_Rolladen.dummy:hoch set OG.BueroMichael_Rolladen off;;sleep 2;;set OG.BueroMichael_Rolladen off;;set OG.BueroMichael_Rolladen off

(Rotes Fragezeichen --> Save config)

Wenn du jetzt in deinem Dummy auf "hoch" drückst, sollte das notify mit den angegebenen Befehlen ausgeführt werden...


   
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Otto123

@ KernSani Stand in meiner Antwort 3 auch schon in Kurzform (ausführlich im Link), mal sehen ob der Hinweis bei Antwort 30 mit mehr Text auch noch vorbeirauscht :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Jackeson

Hallo,
es war alles sehr viel was mir an Hilfe angeboten wurde,deswegen kann auch mal was vorbeirauschen. ich hoffe du kannst mir vergeben Otto(ich finde dich in Sache Hilfe echt Super) ;)
Bin halt doch noch Anfänger (lese zwar viel aber verstehen muß man es)
"die Lösung von Ellert tut genau das was ich will"
Das von KernSani werde ich jetzt ganz in Ruhe anschauen und ausprobieren damit ich auch
Verstehe wie es funktioniert.

Also Danke nochmals an alle

aller anfang ist schwer

Damian

Nur mal zum Verständnis.
Durch die neuen Features beim DOIF lässt sich das bedingungslose Ausführen von DOIF-Zweigen durch eine zum Status des DOIF Moduls passende Definition von webCmd erreichen. Beim Beispiel von Ellert sind die Bedingungen ([?SELF]) eigentlich bedeutungslos. Man könnte, wenn man nur auf die Buttons reagieren möchte, z. B. auch definieren:

DOIF (1) (set OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSEIF (2) (set OG.BueroMichael_Rolladen off)\
DOELSEIF (3) (set OG.BueroMichael_Rolladen on)


Besonders interessant ist aber die Möglichkeit zusätzlich in den Bedingung Abfragen zu definieren, die z. B. auf eine Fernbedienung reagieren, dann könnte man die Rolladen sowohl über Buttons (wie bereits definiert), wie auch über externe Ereignisse steuern ohne weitere Module definieren zu müssen.

z. B.


DOIF ([Button1]) (set OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([Button2]) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([Button3]) (set OG.BueroMichael_Rolladen on)






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

Jackeson

Hallo, Damian
ich hab jetzt das mal so versucht umzusetzen zum üben

define DoifMichaelRollo DOIF ([Button1]) (set at +00:00:01 OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSE ([Button2]) (set OG.BueroMichael_Rolladen off)\
DOELSE ([Button3]) (set OG.BueroMichael_Rolladen on)

dann kam diese Fehlermeldung:

DoifMichaelRollo DOIF: expected DOELSEIF or DOELSE: \ DOELSE ([Button2]) (set OG.BueroMichael_Rolladen off)\ DOELSE ([Button3]) (set OG.BueroMichael_Rolladen on)
aller anfang ist schwer

Damian

Zitat von: Jackeson am 29 März 2017, 00:00:30
Hallo, Damian
ich hab jetzt das mal so versucht umzusetzen zum üben

define DoifMichaelRollo DOIF ([Button1]) (set at +00:00:01 OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSE ([Button2]) (set OG.BueroMichael_Rolladen off)\
DOELSE ([Button3]) (set OG.BueroMichael_Rolladen on)

dann kam diese Fehlermeldung:

DoifMichaelRollo DOIF: expected DOELSEIF or DOELSE: \ DOELSE ([Button2]) (set OG.BueroMichael_Rolladen off)\ DOELSE ([Button3]) (set OG.BueroMichael_Rolladen on)

Die Abfrage nach den Buttons ist eine Bedingung, also musst du DOELSEIF statt DOELSE angeben
und wenn du OG.BueroMichael_Rolladen zwei mal hintereinander off schalten willst, dann kannst du einfach mit wait arbeiten.

define DoifMichaelRollo DOIF ([Button1]) (set OG.BueroMichael_Rolladen off) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([Button2]) (set OG.BueroMichael_Rolladen off)\
DOELSEIF ([Button3]) (set OG.BueroMichael_Rolladen on)

attr DoifMichaelRollo wait 0,1



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

Jackeson

Hallo,
da das wait nicht so genau geht könnte man den Befehl von Button1 auch so definieren damit der Befehl so ausgefürt wird? bsp.

define DoifRaffstore DOIF ([Button1]) (set EG.Wohnzimmer_Raffstore on;sleep 1;set EG.Wohnzimmer_Raffstore off;sleep 0.8;set EG.Wohnzimmer_Raffstore off) \
DOELSEIF ([Button2]) (set EG.Wohnzimmer_Raffstore off)\
DOELSEIF ([Button3]) (set EG.Wohnzimmer_Raffstore on)
aller anfang ist schwer

Damian

Zitat von: Jackeson am 02 Mai 2017, 11:31:44
Hallo,
da das wait nicht so genau geht könnte man den Befehl von Button1 auch so definieren damit der Befehl so ausgefürt wird? bsp.

define DoifRaffstore DOIF ([Button1]) (set EG.Wohnzimmer_Raffstore on;sleep 1;set EG.Wohnzimmer_Raffstore off;sleep 0.8;set EG.Wohnzimmer_Raffstore off) \
DOELSEIF ([Button2]) (set EG.Wohnzimmer_Raffstore off)\
DOELSEIF ([Button3]) (set EG.Wohnzimmer_Raffstore on)

Wenn hinter sleep ein Semikolon steht, ist es unkritisch.

Wait beruht auf den gleichen Timer-Mechanismen wie sleep und arbeitet ebenso auf Millisekunden genau.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jackeson

#38
Hallo
da ich ja" set EG.Wohnzimmer_Raffstore on;sleep 1;set EG.Wohnzimmer_Raffstore off;sleep 0.8;set EG.Wohnzimmer_Raffstore off) \"
also 3 Befehle hintereinander absetze komm ich nicht ganz klar

da ich ja nur bei attr wait 0,8 eingeben kann oder ist es möglich: wait 1,0 on und dann wait 0,8 off einzugeben?(also als ein Befehl)
dann müsste es auch so gehn?
define DoifRaffstore DOIF ([Button1]) (set EG.Wohnzimmer_Raffstore on;wait 1 set EG.Wohnzimmer_Raffstore off;wait 0.8 set EG.Wohnzimmer_Raffstore off) \
DOELSEIF ([Button2]) (set EG.Wohnzimmer_Raffstore off)\
DOELSEIF ([Button3]) (set EG.Wohnzimmer_Raffstore on)
aller anfang ist schwer

Damian

(set EG.Wohnzimmer_Raffstore on;sleep 1;set EG.Wohnzimmer_Raffstore off;sleep 0.8;set EG.Wohnzimmer_Raffstore off)

ist das Gleiche wie:

(set EG.Wohnzimmer_Raffstore on)(set EG.Wohnzimmer_Raffstore off)(set EG.Wohnzimmer_Raffstore off)

attr wait 0,1,0.8
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jackeson

aller anfang ist schwer