Hallo zusammen,
manchmal steht man auf dem Schlauch.
Eigentlich will ich was ganz einfaches:
Ein an GPIO21 angeschlossener Taster soll ein Lampe schalten. Beim ersten drücken geht die Lampe an, beim nächsten drücken geht die Lampe aus, usw. Ich dachte eigentlich, das sei total einfach und mit dem Befehl:
define n_Test notify Eingang21:on set Tastlampe toggle
realisierbar. Aber das funktioniert nicht.
Was mache ich falsch?
Hallo,
Ein wenig geraten aber ich denke, dass das Event nicht jedesmal :on ist. Hast du mal im Eventmonitor geschaut? Ist da evtl. kein Doppelpunkt oder kommt beim zweiten Mal ein off?
Der Taster könnte prellen!? Bei gerade Anzahl geht es schief, bei ungerade Anzahl geht es gut.
Genau: Erst Frage: Was sendet der Taster beim drücken? Sendet er auch was beim loslassen un wen ja was? Was beim nächsten Drücken?
Und prellen hab ich auch mit einem Taster der an einem FS20 S4M 2-/4-Kanal-Sendemodul angeschlossen ist.
Kann man versuchen mit attr aktor event-min-interval on:2
oder so zu lösen
Wie immer würde ein Blick in den EventMonitor das Rätsel lösen.
Warum aber auch niemand meinen angepinnten Beitrag liest - oder versteht (ist er zu schwer geschrieben?).
Angeklickt wird er ja.
Hallo zusammen,
ich bedanke mich für Eure Mühe, aber sorry, manches verstehe ich nicht. Das ist doch ein Anfängerforum. Was ist "prellen"?
Ich kennen das nur aus der Kneipe ;-)))
Ich habe einen ganz normalen Taster: Kontakt geschlossen beim drücken, offen beim loslassen.
Ist der Befehl: define n_Test notify Eingang21:on set Tastlampe toggle
grundsätzlich richtig?
Sorry, wenn ich "doofe" Fragen stelle, aber als ANFÄNGER muss man doch irgendwie anfangen. Und trotz vielem Lesen und recherchieren erschliesst sich nicht alles.
Zitat von: Jogi am 22 Januar 2017, 12:29:27
Hallo zusammen,
ich bedanke mich für Eure Mühe, aber sorry, manches verstehe ich nicht. Das ist doch ein Anfängerforum. Was ist "prellen"?
Hi,
Kontakte bestehen Federn, die Berührung ist nie ideal und einmalig. Alles führt dabei Schwingungen aus.Der Kontakt wird zwar von Dir einmal gedrückt, er selbst bringt aber im millisec Bereich mehrere Berührungen. Dies nennt man Prellen.
Hast Du Dir es mal im Eventmonitor angeschaut?
Gruß Otto
ZitatIch habe einen ganz normalen Taster: Kontakt geschlossen beim drücken, offen beim loslassen.
Entschuldige bitte, aber das ist zu kurz gedacht.
Mechanisch mag das sein. Aber du kannst den Taster ja nicht direkt abfragen. Da ist ja eine Mimik hinter, die aus Tastendrücken FHEM Events macht. Diese Teil heisst in deinem Fall "GPIO21" bzw das Softwaremodul die aus den an der GPIO21 gemessenn Eriegnissen FHEM Events macht. Ich weiss auswendig noch nicht mal welche Singalisierung das GPIO21 aus Tastendrücken macht, geschweige denn wie das in FHEM aussieht.
Also WELCHE Zustände werden erzeugt? Es gibt z.b. HW Module für FS20, die erzeugen den ON Event, wenn man die Taste LOSLÄSST.
Und erzeugt das Dingen beim Drücken der Taste ON und beim loslassen der Taste NICHTS? Oder beim Loslassen der Taste OFF? Oder beim ersten Mal drücken ON und beim zweiten Mal OFF? Oder bei jedem Drücken TOGGLE? Oder beim Drücken wegen "prellen" 5x ON? Oder: Normale HM und FS20 Devices erzeugen einen DIM Befehl, wenn man die Taste länger als 0,4 Sekunden drückt.
Und so weiter und so focht...
Das alles kann man im Eventmonitor oder im Logfile sehen. Taste drücken und sehen was dort als Event für Eingang21 erzeugt wird.
ZitatIst der Befehl: define n_Test notify Eingang21:on set Tastlampe toggle
grundsätzlich richtig?
FALLS Eingang21 mit jedem Drücken der Taste nur EIN Event erzeugt, das "on" heisst ... ja.
Grundsätzlich kann man auch mal folgendes versuchen:
define n_Test notify Eingang21 set Tastlampe toggle
Dann geht die Lampe an/aus, EGAL was genau Eingang21 sendet.
Alles klar, da habe ich tatsächlich etwas zu einfach gedacht.
Das ist das Ergebnis aus dem Eventmonitor:
2017-01-23 13:13:23 RPI_GPIO Relais_1 on
2017-01-23 13:13:23 RPI_GPIO Relais_1 on
2017-01-23 13:13:23 dummy GPIOStatus on
2017-01-23 13:13:23 RPI_GPIO Eingang21 Pinlevel: high
2017-01-23 13:13:23 RPI_GPIO Eingang21 on
2017-01-23 13:13:23 RPI_GPIO Eingang21 Dblclick: off
2017-01-23 13:13:23 dummy GPIOStatus off-for-timer 1
2017-01-23 13:13:23 RPI_GPIO Eingang21 Pinlevel: low
2017-01-23 13:13:23 RPI_GPIO Eingang21 off
2017-01-23 13:13:23 RPI_GPIO Eingang21 Longpress: off
2017-01-23 13:13:23 RPI_GPIO Relais_1 off
Ne Menge Zeug.
Da muss ich wohl noch etwas basteln.
Vielen Dank für Eure Infos.
Hi Jogi,
versuche -> define n_Test notify Eingang21:on sleep 0.2;;set Tastlampe toggle
Und lerne bitte Codetags -> die # taste über dem Smily :-X
Ich würde allerdings erst den Taster entprellen und dann weiterverarbeiten. Das RPI_GPIO MOdul (https://fhem.de/commandref_DE.html#RPI_GPIO)enthält doch alles - Stichwort attr <> debounce ...
Gruß Otto
Zitat von: Jogi am 23 Januar 2017, 13:15:30
Ne Menge Zeug.
Da muss ich wohl noch etwas basteln.
Vielen Dank für Eure Infos.
nö, das ist durchaus normal!
wäre noch interessant zu wissen, was das nun war... 1 Tastendruck kurz und einer lang oder nur einer kurz oder nur einer lang oder was auch immer... wenn du mehrmals drückst, dann lass da mehr Zeit zwischen, damit du die Events den entsprechenden Tastendrücken zuweisen kannst. dann könntest du noch das
att global msecog 1
einschalten, dann stehen hinter der Event-Zeit noch Millisekunden, somit kann man dann auch besser sehen wie die Events zusammen hängen...