Hauptmenü

Tastenfeld auswerten

Begonnen von MAC66666, 15 Februar 2018, 21:40:36

Vorheriges Thema - Nächstes Thema

MAC66666

Der meckert meine geschweiften Klammern an:

define TouchWZ1 notify ESPEasy_SWZ1_Touch:ScanCode.* {

if ($EVTPART1 eq "on" )  {
fhem ("set SonoffWZ2 toggle,set SonoffWZ1 toggle,set ESPEasy_SWZ1_Touch oledframedcmd on,define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off");}
if ($EVTPART1 == 32768 ) {
fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on,define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off");
}

}
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

MAC66666

Habe als noch Syntaxprobleme
zuerst nimmt er das notify so nicht wie oben beschrieben:

Missing right curly or square bracket at (eval 29142) line 1, at end of line
syntax error at (eval 29142) line 1, at EOF

Unknown command }, try help.
Unknown command }, try help.


Und weitere Frage:


muss ich die "sets" durch Komma, Semikolon oder Doppelsemikolon trennen?
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

Wernieman

Nur mal  "Kuransicht":
fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on,define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off");
zwischen FHEM-Befehle kommt ein ; hier hast Du ein "," ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MAC66666

Danke. Syntax ist immer noch Murks

Ach das funzt wieder mal alles nicht.

Bin jetzt noch mal zurück zu meinem DOIF, da habe ich aber auch Probleme:
ohne do always  macht er es immer nur einmal. Mit Do always (hab ja toggle drin) vibriert quasi das Relais des Lichtes...

nur daraus werde ich nicht schlau, löst das mein Problem? :

Zitatwait

Das Attribut verzögert die Befehlsausführung, nach wahr werden einer Bedingung.

Laufende Wait-Timer werden bei einem eingeleiteten Statuswechsel des DOIF abgebrochen, daher werden die zu verzögernden Befehle nicht mehr ausgeführt.
do resetwait

Das Attribut beinhaltet do always, bricht aber die Wait-Timer bei wiederholtem Wahrwerden der Bedingung ab.
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

kadettilac89

hi, ein beispiel wie klammern, if, und kommas gesetzt werden damit es funktioniert ... entsprechend umbauen und deines mit 8 werten sollte funktionieren,.


dy_test1:* { if ($EVENT eq "on") {
   fhem ("set dy_test2 on");
   fhem ("set dy_test3 on");   
}
if ($EVENT eq "off") {
   fhem ("set dy_test2 off");
   fhem ("set dy_test3 off");
}
}

musst nur $EVENT gegen dein $EVTPART1 ersetzen wie du es oben schon hast

Wzut

Zitat von: MAC66666 am 19 Februar 2018, 14:47:47
muss ich die "sets" durch Komma, Semikolon oder Doppelsemikolon trennen?
Die Frage wurde oben ja schon mit ; beantwortet, aber noch was zum Stichwort Komma das ich hier sehr selten im Forum als Beispiel sehe :
Du kannst identische Device Kommandos zusammenführen und diese durch Komma trennen
also bei dir statt "set SonoffWZ2 toggle,set SonoffWZ1 toggle, etc"
"set SonoffWZ2,SonoffWZ1 toggle; etc"

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

MAC66666

Ja, das mit den identischen Devices habe ich scxhon mal gesehen, aber um mich nicht gänzlich zu verwirren, lass ich das bleiben  ;)

OK, dann werde ich mal versuchen ein Notify zu basteln.

Eines noch: warum mein Verhalten im DOIF? Mit Wait usw. habe ich das nicht in den Griff bekommen, nur mit einem unschönen sleep 0.4 am Ende Meiner Befehlsreihe...
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

fiedel

Brauchst doch nur mein Beispiel abwandeln:


define TouchWZ1 notify ESPEasy_SWZ1_Touch:ScanCode.* {
if ($EVTPART1 eq "on" )  {
fhem ("set SonoffWZ2,SonoffWZ1 toggle");
                fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on");
                fhem ("define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off");
                }
if ($EVTPART1 == 32768 ) {
                fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on");
                fhem ("define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off");
}
}


... aber mich macht Pearl auch immer ganz wuschig...  ;)
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

MAC66666

Jep, hatte ich derweil auch schon funktionierend umgesetzt, sieht haargenauso aus  ;)

Jetzt geht es bei mir weiter, z. B. will ich bei einem Tastendruck mein Max-Thermostat desiredTemperature um eines erhöhen bzw. verkleinern und einen toggle für ein ESPEasy Relais basteln. Naja, sind andere Baustellen. Das Grundnotify geht endlich, wenn auch mit Perl, aber habe mich dran "gewöhnt" 8)

Danke Leute!

Achso, wenn Ihr Ideen zu meinen weiteren Problemen habt, bitte gerne  :)
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

Wernieman

Mit DOIF kenne ich mich nicht aus ..

aber mal eine Grundsätzliche Frage:
fhem ("set SonoffWZ2,SonoffWZ1 toggle");
fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on");


Warum wird hier 2 Mal FHEM aufgerufen, wenn es auch ein mal geht?
fhem ("set SonoffWZ2,SonoffWZ1 toggle;
    set ESPEasy_SWZ1_Touch oledframedcmd on");


Bei Prototypen (und beim experimentieren) kann ich es verstehen, aber in einer Produktivumgebung ist es irgendwann schlechter "Stil" ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fiedel

Da hast du Recht, ist nur wegen der Übersichtlichkeit und um zu zeigen, dass auch sowas geht.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

MAC66666

Ja dann später vieleicht  ;)
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota