KNX <-> FHEM <-> Yamaha RX-A

Begonnen von Black7king, 13 November 2016, 12:23:02

Vorheriges Thema - Nächstes Thema

Black7king

Hallo zusammen,

Habe ein Problem bei den ich eure Hilfe brächte.
Und zwar möchte ich über meinen KNX/EIB Bus die Audio Anlage steuern.

Vorhanden Hardware Wäre:
- Berker B.IQ Wippe X Als Dimmer parametriert ON/OFF (dpt1) und Lauter/Leiser (dpt3.007)
- FHEM mit KNXD und YAMAHA_AVR Modul
- Yamaha RX-A 2030 und 3-Zonen

Jetzt wollte ich das wenn ich Kurz Drücke eben Links ON und rechts OFF bzw. bei längeren tasten Druck Lauter oder eben Leiser wird.
Habe mir dafür  GA für ON/OFF und und VOL+/VOL- erstellt. Das funktioniert auch alles soweit. ON/OFF ist kein Problem.
Nur wie Bekomme ich den Notif Gesagt das es aus dem dpt3 +/- werten eben die Lautstärke des Verstärkers ändert

erster Versuch war Mit: KNX_0600001 set AV_Receiver_Zone2 $EVENT

war aber nichts... Jemand eine Idee was ich für attr setzen muss das er das mit übernimmt?


Vielen Dank schon mal für eure Hilfe!

Mit freundlichen Grüßen
B7K

PS: es soll dann  nicht nur ON/OFF Laut/Leiser sondern später auch noch Play/Pasue, Forward/Reward, Mute/Unmute und InPut Select dazu kommen.

Andi291

Abend!

ICH persönlich würde dem Volume-Taster ja simpelst einen dpt1 verpassen. Letztendlich willst Du ja nur dem FHEM mitteilen "mach was". Da ist der DPT3 nicht am einfachsten.

Aber gut - mit einem DPT3 müsste es so gehen:
define Notify_lauter_25_prozent notify dein_tasterdevice.* {fhem ("set AV_Receiver_Zone2 $EVENT")}
Könnte sein, dass Du noch per Regex das Prozent wegnehmen musst...

Grüße, Andi

Black7king

Abend

also generell würde(wollte) ich es auch so machen. Aber Da mein B.IQ auch nur begrenzt tasten habe ware eben meine Idee. Eine Wippe mit der Funktion Dimmen.
Linke Taste ON(kurz Drücken dpt1) bzw. Lauter(Lang Drücken dpt3) und Rechte Taste OFF(kurz Drücken dpt1) bzw. Leiser(Lang Drücken dpt3).

Aber zurück zum Problem. Habe gerade mal dein Notify ausprobiert.
Wenn ich es Richtig verstehe.define AV_VP_VM_BZ notify KNX_0603001.* {fhem ("set AV_Receiver_Zone2 $EVENT")}
also das KNX_0603001.* nimmt dem Befehl vom KNX Bus und gibt ihm an set AV_Receiver_Zone2 $EVENT weiter der das aus führen sollte oder?

Bei mir wenn ich eine Taste am Schalter drücke kommt aber im KNX_0603001 Device immer nur entweder -50 oder 50 angezeigt als state.

Was mache ich falsch?

Mit freundlichen Grüßen

Andi291

Das dachte ich mir...

Der DPT3 ist nicht so einfach - das ist kein Relativwert, der läuft. Je nach Parametrierung sendet er ein +50% oder -50%. Natürlich lassen sich auch andere Stufen parametrieren, aber im Prinzip immer gleich.
Schau mal, ob Du auf nen DPT5 (Zähler oder so) umbiegen kannst.

Und jein - Google mal nach Notify und spiel ein wenig mit Deinem Event-Monitor rum. Jede eingehende Nachricht im ganzen System löst bei FHEM sogenannte Events aus, die widerum mit Notifies aufgefangen werden können (um weitere Aktionen auszulösen).

Black7king

Okay werde ich mal die Tage aus probieren und schauen wie ich es hin bekomme.
Danke erst mal für den Lösung Ansatz.

Aber noch eine frage zum Thema. Bei ein Paar Funktionen ist es ja nicht so tragisch ein Notify da für zu erstellen aber wenn ich jetzt mal rechne.
Sagen wir mal Ich Habe insgesamt 7 Zonen und jede Zone soll von mir aus im Toggel ON/OFF, PLAY/PAUSE, LAUT/LEISER, FORWORD/REWORD, MUTE/UNMUTE INPUT_SEL usw. Haben.
des sind dann 7Zone x 6 (Oder Mehr) Notify für die Befehle. Gibt es da keine Elegantere Lösung als mehr als 40 Notify dafür zu erstellen. Des wäre ja nur Audio. Soll ja noch Bild auch dazukommen....
Sage doch mal bitte deinen Gedanken Dazu!

MfG

B7K

Black7king

Also eine Muster Lösung ist es bestimmt nicht. Aber habe mir zwei Notifys erstellt, die das machen....

KNX_0603001:50 {fhem ("set AV_Receiver_Zone2 volumeUp 3")}

KNX_0603001:-50 {fhem ("set AV_Receiver_Zone2 volumeDown 3")}


gibts dazu eine Elegantere Lösung?

Andi291

Abend!

Leider fällt mir keine elegantere ein. Ich fürchte, so musst Du es machen...

Grüße, Andi

Black7king

Morgen!

DANKE Andi für deine Hilfe. Hat mir echt weiter geholfen.
Zwecks der Verschönerung habe ich mir nochmal Hilfe von andere Seite geholt.

Ergebnis ist dann das:

defmod n notify KNX_0603001:(50|-50) set AV_Receiver_Zone2 volume{($EVENT == "50" ? "Up" : "Down")} 3

defmod n notify KNX_0603001:(50|-50) { fhem("set AV_Receiver_Zone2 ".($EVENT == "50" ? "volumeUp 3" : "volumeDown 3")) }


KNX_0603001:(50|-50) { if( $EVTPART1 == -50) {
   fhem ("set AV_Receiver_Zone2 volumeDown 3");
  } else {
    ("set AV_Receiver_Zone2 volumeUp 3");
  }
}

Lösung 1. sieht für mich am elegantesten aus. Wobei zwei wieder schöner zum Nachlesen ist. Finde ich.

mfg
b7k
PS: Sind aber noch ungetestet :-)