Hauptmenü

Tastenfeld auswerten

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

Vorheriges Thema - Nächstes Thema

MAC66666

Hi,
ich habe gerade einen Hänger, schon mit notify und doif probiert, irgendwie will es nicht...

Ich kopiere meinen Code erst gar nicht hier rein, is eh blödsinn  ;)

Ich beschreibe es mal so :
Wenn tastenfeld = 1 dann set Licht1 toggle
wenn Tastenfeld = 2 dann set Licht2 toggle
wenn Tastenfeld = 4 dann irgendwas
wenn Tastenfeld = 8 dann .... usw
usw...

Komme mir gerade blöd vor  8)
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

Phill

Irgendwie komme ich mir gerade blöd vor.  ??? Welches Tastenfeld meinst du denn eigentlich. Wie ist das eingebunden?
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

MAC66666

#2
Achso, ja, ein TTP229, das hat 16 Tasten und liefert einen ScanCode Zurück, entweder 1-16 oder Binär 1-32768 (so habe ich es eingestellt, damit unauswertbare krumme Werte rauskommen, wenn ich mit meinen Wurschtfingern 2 Touchfelder gleichzeitig treffe). Ist per ESPEasy eingebunden.

Also wenn tastenfeld:scancode = 4 dann mach irgendwas
Also wenn tastenfeld:scancode = 8 dann mach irgendwas anderes sozusagen  ;)

und wenn null, mach nix.
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_

wie wäre es denn wenn du uns trotzdem etwas code zeigst.
so ist es schwer dir zu helfen, wir können ja nicht wissen, ob dein regexp im notify falsch ist. dein trigger im doif. oder ob du die if-abfrage falsch gebaut hast, und eine zuweisung '=' und keinen vergleich '==' im code stehen hast.... usw usw.


also bitte etwas mehr details :)
viele Wege in FHEM es gibt!

Wernieman

Habe etwas ähnliches mit lircd.

Habe lircd nicht direkt in FHEM (Zeit-Probleme), sondern extern und es pustet mir die Tastendrücke in einen Dummy.

Dann ein Notify:
define LIRC_play notify LIRC:play set Lautsprecher on

Also wenn die "play" Taste an der Fernbedienung gedrückt wird, macht er den set-Befehl. Nun für jede Taste ein Notify ... und das war es. Probleme damit?

- 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

Das ist wohl eine gute idee... Aber wie hat dann so ein Dummy auszusehen und wie bekomme ich die scancode Aktion ins dummy?
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

Dummy: Siehe Doku
Tastenfeld: Da kann ich Dir nicht helfen .. wie wird es denn aktuell "eingespielt"?
- 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

kadettilac89

wahrscheinlich mit weniger Konfigurationen ... ein einzelnes Notify und alles Weitere in eine Form in 99_myUtils auslagern. Übergabeparameter ist dann $EVENT oder $EVTPART1 in dem der Wert 1-16 enhalten ist ... je nachdem wie das Event aussieht.

In der Form baust du dann ein switch-case für die 16 Fälle + ggf. Fehler. ... https://perldoc.perl.org/5.8.9/Switch.html

Schau dir mal das hier an, Teile kannst wahrscheinlich übernehmen und anpassen ... https://forum.fhem.de/index.php/topic,20581.msg141181.html#msg141181


Wernieman

Ob Du jetzt in der 99_myUtils ein if machst, oder dieses durch die regex bei der notify-Erstellung .. da ziehe ich (persönlich) die notifys vor.

Aber jeder wie er will ;o)
- 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

Zitat von: Wernieman am 16 Februar 2018, 14:17:03
Dummy: Siehe Doku
Tastenfeld: Da kann ich Dir nicht helfen .. wie wird es denn aktuell "eingespielt"?

Wie man ein Dummy anlegt weiß ich, aber nir ist nicht ganzt klar, wie das entsprechend auf meine readings vom Tastenfeld reagiert / reagieren soll. Und brauche ich das Dummy, wenn ich sowieso direkt auf "ScanCode" reagieren könnte...

Tastenfeld: Habe ein Reading mit der entsprechenden Nummer: tastenfeld:scancode oder um es Präzise zu machen: ESPEasy_SWz1_Touch mit dem Reading ScanCode


Zitat von: Wernieman am 16 Februar 2018, 15:54:14
Ob Du jetzt in der 99_myUtils ein if machst, oder dieses durch die regex bei der notify-Erstellung .. da ziehe ich (persönlich) die notifys vor.

Aber jeder wie er will ;o)

Jup, wollte möglichst ein "sauberes" FHEM haben, was ausschließlich über die FHEM.cfg zu sichern ist. Hab schon einen MQTT Broker, den muss ich auch schnell wieder loswerden  ;) Womöglich bekäme ich den Umbau des Pear Codes sogar hin, auch wenn ich da keine Vorkenntnisse habe. Abe rich würde es gerne erst mal vermeiden 8)
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

Dz hast also ein Device mit einem Reading, auf das Du reagieren willst?
Gib uns mal mitte ein "list" des Device
- 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

Internals:
   CFGFN     
   DEF        192.168.5.222 80 espBridge SWZ1_Touch
   ESP_BUILD  20100
   ESP_BUILD_GIT mega-20180206
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID 17: ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   2
   ESP_VERSION 2
   HOST       192.168.5.222
   IDENT      SWZ1_Touch
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     135
   NAME       ESPEasy_SWZ1_Touch
   NOTIFYDEV  global
   NR         10043
   NTFY_ORDER 50-ESPEasy_SWZ1_Touch
   PORT       80
   STATE      absent
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.35
   espBridge_MSGCNT 135
   espBridge_TIME 2018-02-15 21:34:27
   READINGS:
     2018-02-15 21:34:27   ScanCode        off
     2018-02-17 10:03:06   presence        absent
     2018-02-17 10:03:06   state           absent
   helper:
     fpc        1518723246
     pm:
       Encode     1
       JSON       1
     received:
Attributes:
   IODev      espBridge
   Interval   300
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy
   setState   3


Wobei der ScanCode 0=off, 1=on ist, dann geht es erst mit Zahlen weiter...
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

Zitat von: nils_ am 16 Februar 2018, 08:50:23
wie wäre es denn wenn du uns trotzdem etwas code zeigst.
so ist es schwer dir zu helfen, wir können ja nicht wissen, ob dein regexp im notify falsch ist. dein trigger im doif. oder ob du die if-abfrage falsch gebaut hast, und eine zuweisung '=' und keinen vergleich '==' im code stehen hast.... usw usw.


also bitte etwas mehr details :)

Ups hatte Deinen Beitrag übersehen... Haber alles gelöscht weil es eh murks war ;-)
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

Ups .. sorry, aber bei felchem Feld kommt jetzt Deine Tasteninformationen?

Sehe momentan den Wald vor lauter Bäumen nicht ...
- 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

readings: ScanCode. Der lautet off, on, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16636 oder 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