Hauptmenü

Tastenfeld auswerten

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

Vorheriges Thema - Nächstes Thema

Wernieman

also z.B. ein notify auf:
SWZ1_Touch.ScanCode:2

Ungetestet ..
- 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

#16
Jup, das hatte ich probiert, aber wie hat das genau auszusehen? Korrekte Syntax?

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

#17
ESPEasy_SWZ1_Touch:ScanCode.* set SonoffWZ2 toggle funktioniert (also so lange ich quasi gedrückt halte, isses licht aus)...

Nur die Auswertung geht nicht:

ESPEasy_SWZ1_Touch:ScanCode.* = 2 set SonoffWZ2 toggle
oder
ESPEasy_SWZ1_Touch:ScanCode.*:2 set SonoffWZ2 toggle
oder
ESPEasy_SWZ1_Touch:ScanCode:2 set SonoffWZ2 toggle
oder
ESPEasy_SWZ1_Touch.ScanCode:2 set SonoffWZ2 toggle

is alles Murks. Ich bekomme den ScanCode nicht ausgewertet. Nur "Change" funktioniert....
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

OK, also als DOIF

([ESPEasy_SWZ1_Touch:ScanCode] == 2) (set SonoffWZ2 toggle)

tut es... augenscheinlich. Ist nur träge. Notify wäre mir aber lieber...
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

Als Notify musst du vermutlich sowas machen wie unten gezeigt
(als Beispiel mal meine Außenlichtsteuerung).
Du reagierst im Notify- Regex erstmal auf alles, was vom Tastenfeld
reinkommt. Danach wertest du in Perl den Inhalt von $EVENT aus
und reagierst darauf mit dem entspr. Set- Befehl.
Im Beispiel ist es etwas anders: Ich reagiere hier auf $NAME und das
Event ist immer "on".
Am Besten nutzt du dazu die auskommentierte "Log1"- Zeile, die dir
ins Log schreibt, was rein kommt.

Bei deinen Versuchen hast du übrigens noch ESPEasy_SWZ1_Touch:ScanCode.2 set SonoffWZ2 toggle
vergessen. Vielleicht geht das. Um sowas herauszubekommen gibt es den Eventmonitor.



Sens_BM_1.motion:.on.*|Sens_BM_2.motion:.on.* {

my $bright = (ReadingsVal("Sens_BM_1", "brightness", "---"));

# Log 1, "Name:$NAME ; Event:$EVENT" ;

  if ($bright <= 100) {
 
  if ($NAME eq "Sens_BM_1") {
     fhem("set Beleuchtung_Gar_03,Beleuchtung_Gar_04 on-for-timer 180");
  }
  if ($NAME eq "Sens_BM_2") {
     fhem("set Beleuchtung_Gar_04,Beleuchtung_Gar_03 on-for-timer 180");
  }
}

  if (($bright >= 100) and Value("Beleuchtung_Gar_04") eq "undef") {
fhem("set Beleuchtung_Gar_04,Beleuchtung_Gar_03 off");
  }
}

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

Zitat von: fiedel am 18 Februar 2018, 09:52:24


Bei deinen Versuchen hast du übrigens noch ESPEasy_SWZ1_Touch:ScanCode.2 set SonoffWZ2 toggle
vergessen. Vielleicht geht das. Um sowas herauszubekommen gibt es den Eventmonitor.


Nee, ich habe nur nicht alle Versuche dokumentiert  ;)

Also mit Perl-Code im Notify greife ich wohl doch lieber auf mein DOIF zurück. Ich meine es ist ja immerhin was, was funktioniert. Aber danke dafür!
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

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

Wernieman

notify macht weniger Systemlast ;o)

Also ich würde auch erstmal im Event-Monitor gucken, WAS genau ankommt ...
- 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

Da kommt in der Tat sowas an:

2018-02-18 17:53:56 ESPEasy ESPEasy_SWZ1_Touch ScanCode: 32768
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

#24
Blöd, dass er statt "1" ein "on" annzeigt (und ein "off" bei 0)...

Kann ich mein Doif so basteln?

define blabla doif ([ESPEasy_SWZ1_Touch:ScanCode] == 32768) (set ESPEasy_SWZ1_Touch oledframedcmd on,define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off) doelseif ([ESPEasy_SWZ1_Touch:ScanCode] == 2) (set SonoffWZ2 toggle,set ESPEasy_SWZ1_Touch oledframedcmd on,define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off) ......

usw?

wie macht man am Besten ein mehrzeiliges doif, doelseif, doelseif,....  ? Muss man da was beachten?

würde ich dann so machen so lange ich keine Notify-Lösung habe... Oder lieber einzelne DOIFs?

Damit Ihr wisst, was das wird, hier mal ein sehr Prototypiges Bild (Soll später Glas werden). Leider muss ich irgendwie noch die Empfindlichkeit vom Touchfeld pimpen, mir fehlt ein zehntel Millimeter, daher der grobe, blöde Ausschnitt...
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

nils_

warum erstellt du dir das notify nicht mit Hilfe des Eventmonitors, wenn du das "lieber als DOIF" nutzen willst....

define ntfy_whatever notify ESPEasy_SWZ1_Touch:ScanCode.* {
if ($EVTPART1 eq "on" ) fhem ("set bla 123");
if ($EVTPART1 == 2 ) fhem ("set bla asdf");
if ($EVTPART1 == 32768   ) fhem ("set bla xyz");
...
}


Zitat von: MAC66666 am 17 Februar 2018, 20:37:37
readings: ScanCode. Der lautet off, on, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16636 oder 32768  ;)

16636 ? das glaube ich nicht!
16384 glaube ich sofort :)
viele Wege in FHEM es gibt!

MAC66666

#26
Ist halt Pearl... Aber vieleicht mache ich es so  ;D


Zitat von: nils_ am 19 Februar 2018, 08:52:12

16636 ? das glaube ich nicht!
16384 glaube ich sofort :)

Ähm, Du hast Dir echt jede einzelne Zahl angeschaut?  Da hat mich kurz die Mathematik verlassen :P
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

Ansonsten wirklich mal im Event-Monitor die Zeile markieren udn auf dem Knopf "Notify generieren" (o.Ä.) drücken ....
- 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

nils_

Zitat von: MAC66666 am 19 Februar 2018, 09:25:58
Ist halt Pearl... Aber vieleicht mache ich es so  ;D
Perl.... ohne A  :P :P :P

Zitat von: MAC66666 am 19 Februar 2018, 09:25:58
Ähm, Du hast Dir echt jede einzelne Zahl angeschaut?  Da hat mich kurz die Mathematik verlassen :P
das fällt einem schon auf das die reihe da nicht so aussieht wie man sie kennt und gewohnt ist. :D
viele Wege in FHEM es gibt!

MAC66666

Bin irgendwie neben der Spur. Natürlich Perl ohne a  ;D

Und ja, ich habe diese Zahlen auch immer vor mir, weiß nicht was mich da geritten hat...

Schon zwei Patzer bei Selbsverständlichkeiten in diesem Threat, ich sollte mich mal untersuchen lassen  ???
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