FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: ergerd am 20 Dezember 2014, 18:56:54

Titel: Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: ergerd am 20 Dezember 2014, 18:56:54
Hallo Gemeinde,

ich habe mir den 1Wire-LCD-Controller von Fuchs besorgt und ein Display draufgesetzt.
Funktioniert tadellos.
Wo ich aber so meine Schwierigkeiten habe ist die Abfrage der 4 Buttons des Controllers.
Gibt es ein Modul dafür (irgendwo habe ich etwas von OWID gelesen)?
Muss ich das "händisch" programmieren (polling o.ä.)?
Kann mir jemand vielleicht sogar ein Codeschnipsel zur Verfügung stellen?

Danke im voraus,
Rainer
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: Prof. Dr. Peter Henning am 21 Dezember 2014, 03:13:16
Mein Tipp: Commandref lesen.

Außerdem ist das Modul nicht von "Fuchs".

LG

pah
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: ergerd am 21 Dezember 2014, 13:28:50
Hallo pah,

vielen Dank für den "Tipp".
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: ext23 am 21 Dezember 2014, 13:39:37
Zitat von: Prof. Dr. Peter Henning am 21 Dezember 2014, 03:13:16
Mein Tipp: Commandref lesen.

Naja wenn die mal immer so stimmen würde ;-)
"get <name> gpio - Obtain state of all four input counters (4 x 16 Bit)"

Das sollte bestimmt "counter" heißen und nicht "gpio" ...

@ergerd: Beispiel: get az_OW_LCD1 counter
Da musst dann schauen ob die counter hochgezählt wurden, dann weiß du das eine Taste gerdrückt wurde. Sprich du musst pollen. (Wenn ich das richtig verstanden habe...)

Gruß
Daniel
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: Prof. Dr. Peter Henning am 21 Dezember 2014, 15:12:59
@ext23: Na, ganz unlesbar scheint das nicht zu sein - dieser Tippfehler ist in den 23 Monaten des Bestehens dieses Moduls noch niemandem aufgefallen.

LG

pah
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: ergerd am 21 Dezember 2014, 17:28:12
Vielen Dank für die Antwort Daniel.

Scheint als würde ich in die richtige Richtung laufen.

Ich habe folgendes definiert:

define owx_lcd OWLCD FF.F30900000100

define Taste notify owx_lcd:counter.* {\
my $Taste0   = ReadingsVal("owx_lcd", "counter.0", "0");;\
my $Taste1   = ReadingsVal("owx_lcd", "counter.1", "0");;\
my $Taste2   = ReadingsVal("owx_lcd", "counter.2", "0");;\
my $Taste3   = ReadingsVal("owx_lcd", "counter.3", "0");;\
if($Taste0 ne "0") {\
   fhem("set owx_lcd backlight on;; define owx_lcd_off_at at +00:00:10 set owx_lcd backlight off");;\
}\
}

define owx_lcd_trigger_at at +*00:00:05 get owx_lcd counter


Funktioniert aber nicht. Vielleicht ist jemand so freundlich und gibt mir sachdienliche Hinweise.

Freundliche Grüße
Rainer
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: ext23 am 22 Dezember 2014, 14:28:28
Also ich habe das nicht in Benutzung, ich hab das auch nur eben aus der command ref gelesen (Wo mir dann auch nach 23 Monaten der Fehler aufgefallen ist ;-) )

Du müsstest aber auch mal schreiben was genau nicht geht, sonst ist das immer etwas blöd zu analysieren. Funktioniert das mit dem at? Sprich hast du die Werte anschließend im reading?

counter.0 etc. das passt auch, kann man das so machen ja?

/Daniel
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: Prof. Dr. Peter Henning am 22 Dezember 2014, 16:57:11
Natürlich nicht. Steht weder so in der commandref, noch sonstwo - hat er wahrscheinlich geraten.  ::)

Noch liefert das Modul die Werte einzeln als readings. Es gibt nur EIN reading counter mit allen 4 Werten => etwas Perl ist nötig.

LG

pah
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: ergerd am 22 Dezember 2014, 22:48:54
Geraten, natürlich.
Das hatte ich hier gefunden: http://forum.fhem.de/index.php?topic=11857.0 (http://forum.fhem.de/index.php?topic=11857.0)

Aber die Aussage "etwas Perl ist nötig" reicht mir doch schon, damit ist das Thema für mich erledigt, Perl kann ich buchstabieren, programmieren nicht.

Danke und Grüße
Rainer
Titel: Antw:Abfrage der Buttons am LCD-Controller von Fuchs
Beitrag von: fiedel am 23 Dezember 2014, 09:14:53
So schnell gibst du auf?  ;) Du hast doch schon irre komplizierte Sachen im Zus. mit FHEM eingerichtet. Und Perl ist kein Hexenwerk.  In FHEM kannst du z.B. auch mit Value und OldValue einen Vergleicher aufbauen, der ganz einfach die Abfrage macht.

Prinzip in etwa: "if value von button1 größer oldvalue button1 -> mache irgendwas".

Das value / oldValue noch hübsch in lok. Variablen verpackt, dann macht es gleich mehr Spaß. Beispiele für solche einfachen Vergleichsroutinen findest du zu Hauf im Wiki oder Forum. Du müsstest vermutlich die Tasten recht häufig pollen, damit der Tastendruck zeitnah erkannt wird. Aber auch nicht zu häufig, denn die Änderung bleibt ja gespeichert und wird erst durch die nächste Abfrage erkannt und gleichzeitig verworfen.

Gruß

Frank