FHEM Forum

FHEM - Anwendungen => Beleuchtung => Thema gestartet von: Ronald am 22 Februar 2017, 21:49:22

Titel: HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 22 Februar 2017, 21:49:22
Hallo,

ich möchte über eine HM Fernbedienung auf einer Taste mit langem Tastendruck abwechseln hoch- und runterdimmen.
Beispiel für runterdimmen:
define Button1_KuecheDeckenLicht_DIM_Toggle notify Remote8_1_Btn_01:Long.* set Kueche.DeckenLicht down
Beispiel für hochdimmen:
define Button1_KuecheDeckenLicht_DIM_Toggle notify Remote8_1_Btn_01:Long.* set Kueche.DeckenLicht up
Ich möchte beide Befehle mit Taste 1 Long abwechselnd ausführen, gibt es da eine Möglichkeit?
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 22 Februar 2017, 22:22:10
Noch ein Nachtrag dazu:
Wenn ich diesen Code benutze
define Button1_KuecheDeckenLicht_DIM_Toggle notify Remote8_1_Btn_01:Long.* {if (Value("Wohnzimmer.Lampe") eq "off") { fhem(" set Kueche.DeckenLicht down")}  else { fhem(" set Kueche.DeckenLicht up")}}
kann ich in Abhängigkeit von dem state Wohnzimmer.Lampe das Küchenlicht hoch- oder runterdimmen.
Stattdessen möchte ich gerne eine Variable bei jedem dimmen mit umschalten, sodass abwechselnd hoch- oder runtergedimmt wird.
Wie lässt sich das umsetzen?
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: automatisierer am 23 Februar 2017, 07:16:32
beiträge nicht schließen wenn sie gelöst sind, sondern als gelöst markieren.

wenn du dir die commandref zu notify durchliest, sollte dir klar werden wieso etwas mit .* funktioniert oder auch nicht.

zu diesem thema: dazu gibt es sicher mehrere lösungen. du könntest auf das event long_release reagieren und damit einen dummy umschalten. oder aber das ganze mit einem DOIF lösen. und ich tippe mal, ohne es probiert zu haben, das dir die forumsuche mit sicherheit ein paar Beiträge zum gleichen Thema ausspuckt.
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 25 Februar 2017, 01:06:19
zu Beiträge nicht schließen:
OK, kann ich die wieder freischalten oder kannst Du das machen?
zu diesem Thema:
Das Notify habe ich mir zusammengesetzt
define Button1_KuecheDeckenLicht_DIM_Toggle notify Remote8_1_Btn_01:Long.* {if (ReadingsVal("Btn_dim1", "state", "") eq "off") { fhem(" set Kueche.DeckenLicht up")}  else { fhem(" set Kueche.DeckenLicht down")}}
Es fonktioniert wenn ich dummy Btn_dim1 zu Fuß auf on oder off schalte.
Für automatisches wechseln auf long release habe ich dies angelegt:
define Btn_set1 notify Remote8_1_Btn_01:LongRelease.* {if (ReadingsVal("Btn_dim1", "state", "") eq "off") { fhem(" set Btn_dim1 on")}  else { fhem(" set Btn_dim1 off")}}
Wenn ich hinter :LongRelease das .* weglasse wird die variable Btn_dim1 generell nicht umgeschaltet.
Mit .* schaltet die variable mehrfach, sieht aus wie "prellen".
Ideen, wie ich das abstellen kann?
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: MadMax-FHEM am 25 Februar 2017, 01:14:00
In den EventMonitor kucken und schauen ob sich ein besseres RegEx bauen lässt...
...evtl. auch mal das Attribut event-on-change-reading anschauen...

Gruß, Joachim
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: DeeSPe am 25 Februar 2017, 03:02:35
Zitat von: Ronald am 25 Februar 2017, 01:06:19
zu Beiträge nicht schließen:
OK, kann ich die wieder freischalten oder kannst Du das machen?
zu diesem Thema:
Das Notify habe ich mir zusammengesetzt
define Button1_KuecheDeckenLicht_DIM_Toggle notify Remote8_1_Btn_01:Long.* {if (ReadingsVal("Btn_dim1", "state", "") eq "off") { fhem(" set Kueche.DeckenLicht up")}  else { fhem(" set Kueche.DeckenLicht down")}}
Es fonktioniert wenn ich dummy Btn_dim1 zu Fuß auf on oder off schalte.
Für automatisches wechseln auf long release habe ich dies angelegt:
define Btn_set1 notify Remote8_1_Btn_01:LongRelease.* {if (ReadingsVal("Btn_dim1", "state", "") eq "off") { fhem(" set Btn_dim1 on")}  else { fhem(" set Btn_dim1 off")}}
Wenn ich hinter :LongRelease das .* weglasse wird die variable Btn_dim1 generell nicht umgeschaltet.
Mit .* schaltet die variable mehrfach, sieht aus wie "prellen".
Ideen, wie ich das abstellen kann?

Ich denke das macht schon logisch keinen Sinn!
Bei langem Drücken willst Du also hoch dimmen falls aus ist. Nach dem langen Drücken kommt das lange Loslassen und das schaltet  sofort wieder aus sofern das Device an ist. Hmm, ich glaube nicht dass es das ist was Du willst.
Also entweder machst Du "Long" oder eben "LongRelease". Beides gleichzeitig ist doof.

Gruß
Dan
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 25 Februar 2017, 18:54:53
Ich versuche zu verdeutlichen, was ich machen will und wo aktuell die Tücken sind.
vor HomeMatic / FHEM hatte ich standard Tast Dimmer mit folgender funktionalität, die ich in etwa mit HM/FHEM nachilden möchte:
Taste antippen, toggeln zwischen 0% und 100% Lichthelligkeit.
Taste lang betätigen abwechselnd hoch- bzw. runter dimmen.
Mein Lösungsversuch sieht so aus:
Taste Btn_01:Short.* toggelt Dimer mit 0% / 100%:
define Button1_KuecheDeckenLichtToggle notify Remote8_1_Btn_01:Short.* set Kueche.DeckenLicht toggle
Das funktioniert sauber, allerdings auch nur durch das .* hinter short
Dimmen, hoch oder runter:
define Btn_dim1 dummy
attr Btn_dim1 setList on off
set Btn_dim1 on
define Button1_KuecheDeckenLicht_DIM_Toggle notify Remote8_1_Btn_01:Long.* {if (ReadingsVal("Btn_dim1", "state", "") eq "off") { fhem(" set Kueche.DeckenLicht up")}  else { fhem(" set Kueche.DeckenLicht down")}}
define Btn_set1 notify Remote8_1_Btn_01:LongRelease.* {if (ReadingsVal("Btn_dim1", "state", "") eq "off") { fhem(" set Btn_dim1 on")}  else { fhem(" set Btn_dim1 off")}}

Wenn ich die letzte Zeile auskommentiere und den Dummy Btn_dim1 von Hand auf on oder off setze kann ich mit langem Tastendruck hoch - oder runterdimmen in Abhängigkeit von Btn_dim1.
Wenn ich die letzte Zeile im Einsatz habe erwarte ich nach jedem langen Tastendruck ein long release. Damit will ich wie in der letzten ZEile angegeben die Dimmrichtung toggeln.
Anscheinend senden die HM FErnbedienungen aber die Befehle, auch ling release mehrfach, dann gibt es natürlich Probleme.
Weiter unten ein listing aus dem Event Monitor.
Ist die Frage ob es andere Ideen gibt, die das Problem umgehen oder ob es Möglichkeiten gibt die Fernbedienungen sauberer abzufangen. Die Fernebdienung wird nur von FHEM ausgewertet, es gibt keine direkte Kopplung mit dem Dimmer. Kann man der Fernbedienung evtl. irgendwie aus FHEM ein Ackn. senden? Oder bin ich auf dem falschen Dampfer?
Hier das Listing aus dem Event Monitor:
18:29:07 kommt ein LongRelease, dummy Btn_dim1 wird auf on gesetzt.
18:29:08 kommt noch ein LongRelase, dummy Btn_dim1 wird zurück auf off gesetzt, dim Richtung toggelt nicht  :-\
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: automatisierer am 25 Februar 2017, 20:57:46
Dimmen per Taster und notify ist eher suboptimal und nicht empfehlenswert. Eine Möglichkeit wäre vielleicht den Long_xx Zähler zu nehmen, damit den Dimmwert zu "berechnen" und dann einmalig an den Dimmer zu übertragen - aber doll is das bestimmt auch nicht...

Wenn du den Dimmer per Taster Steuern willst, empfehle ich dir diese zu peeren. Das bedeutet, dass der Taster und der Dimmer direkt miteinander reden und nicht über FHEM.


Die Geschichte mit dem .*
Der Punkt steht für ein beliebiges Zeichen, aber nicht für kein Zeichen.
Der Stern steht für eine oder mehrere Wiederholungen des davor stehenden Zeichens, auch für keine Wiederholung.

Beispiel:
Long.*
passt also auf:
Long_99
und
LongRelease
aber nicht auf:
Long

weil bei Long.* noch midestens ein weiteres Zeichen nach dem Long erwartet wird.
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 25 Februar 2017, 21:09:52
Beim peeren benötige ich generell zwei Taster, einen für up/on, einen für down/off.
Mein Ziel ist mit einer Taste on/off, dim up/ down.
Ich habe in dem Raum 6 verschiedene Dimmer / Lampen zu steuern.
Mit je einem Tastenpaar wird es da schnell unübersichtlich.
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: rvideobaer am 25 Februar 2017, 21:17:12
Hallo,

zum Dimmen braucht es nur einen Taster, Du must das mit Hilfe von fhem peeren dann kannst Du als Dual Peeren.

set <sensChan> peerChan 0 <actChan> [single|dual] [set|unset]

Gruß Rolf
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 26 Februar 2017, 11:06:26
Hallo Rolf,

ich wollte das mit dem Dual peeren probieren, habe aber wohl die Terminologie falsch:
Habe vorher in der fhem.cfg die notifys für Btn_01 auskommentiert und nach shutdown restart direkt im browser eingegeben
set Kueche.DeckenLicht peerChan 0 4FAFC401 dual

liefert zurück:
Wie wäre denn die richtige Schreibweise um Taste 1 der FB als dual peer für den dimmer laufen zu lassen?
Auszug aus der fhem.cfg für Fernbedienung und Dimmer:


Gruß, Ronald
[/list]
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 26 Februar 2017, 11:32:13
Nochmals @ Rolf
bin etwas weiter, habe folgendes probiert:
set Remote8_1_Btn_01 peerChan 0 Kueche.DeckenLicht dual

Damit scheint die Taste gepeered, allerdings direkt wieder Taste 1 für off/down, Taste 2 für on/up
Was mache ich da falsch?
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: rvideobaer am 26 Februar 2017, 11:36:28
Hallo,

dann must Du wohl erstmal das alte peer aufheben

set Remote8_1_Btn_01 peerChan 0 Kueche.DeckenLicht single unset

Gruß Rolf
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: automatisierer am 26 Februar 2017, 12:01:23
Und die Befehle sind nicht vollständig, da fehlt das 'set' oder halt 'unset' am Ende.

set Remote8_1_Btn_01 peerChan 0 Kueche.DeckenLicht dual set

Hier ist das peering beschrieben, evtuell bringt das ein wenig Licht ins Dunkel...
https://wiki.fhem.de/wiki/Homematic_Peering_Beispiele (https://wiki.fhem.de/wiki/Homematic_Peering_Beispiele)


Hab allerdings die Befürchtung, dass das peeren in die falsche Richtung geht:
ZitatBei einem "dual" Peering werden die beiden zusammengehörenden Kanäle der Fernbedienung mit einem Aktorkanal gepeert - einer der Buttons wirkt dann als "on", der andere als "off"-Schalter.
Demnach werden bei peering dual, die beiden Sensor Kanäle mit einem Aktor Kanal gepeert.
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: rvideobaer am 26 Februar 2017, 12:06:56
Hallo,

@automatisierer
Du hast recht, aber ich habe jetzt auch erst gemerkt das eine vorher gehende Antwort von mir nicht angekommen ist.
erstmal
set Remote8_1_Btn_01 peerChan 0 Kueche.DeckenLicht dual unset
und dann
set Remote8_1_Btn_01 peerChan 0 Kueche.DeckenLicht single set

Gruß Rolf
Titel: Antw:HM Dimmer Trigger up down abwechselnd mit einer Taste
Beitrag von: Ronald am 26 Februar 2017, 13:01:16
Super, danke, das funktioniert  ::)
In der config änder sich dann das peer für den Dimmer, da ist nur noch die eine Taste drin: