hallo leute,
ich hoffe die Betreffanzeige passt soweit.
ich möchte von meinem Raumfeldgerät die Lautstärke ( von 0-100 ) auf meinen Pioneer Receiver kopieren. Also wenn ich in der Raumfeldapp die Lautstärke auf 50% hochdrehe, soll der Receiver auf 50% gehen. Hintergrund ist der, das der Connector über digital output verbunden ist und damit leider keine Lautstärkesteuerung mehr über die App geht.
am liebsten wäre mir das ganze in beide Richtungen, wenn ich über Fernbedienung vom Receiver die Lautstärke erhöhe, soll auch die Anzeige bei dem Connector erhöht werden und sich spiegeln.
vielleicht hat jemand einen Tip für mich.
Danke
Nabend.
Schau dir mal notify in Kombination mit $EVENT bzw. $EVTPART an.
Also nach dem Motto
define notify123 Pioneer:volume set Receiver $EVENT
Grüße
Zitat von: Esjay am 21 März 2019, 22:28:05
Nabend.
Schau dir mal notify in Kombination mit $EVENT bzw. $EVTPART an.
Also nach dem Motto
define notify123 Pioneer:volume set Receiver $EVENT
Grüße
Vielen Dank für den Tip. Schau ich mir heut Abend mal an
Zitat von: Esjay am 21 März 2019, 22:28:05
Nabend.
Schau dir mal notify in Kombination mit $EVENT bzw. $EVTPART an.
Also nach dem Motto
define notify123 Pioneer:volume set Receiver $EVENT
Grüße
ACHTUNG:
In $EVENT steckt auch noch ein Doppelpunkt wenn das Event Reading und Value enthält.
Ich würde folgendes Vorschlagen (damit sind beide Richtungen "erschlagen"):
defmod n_Volumechange notify (Pioneer|Raumfeld):volume:.* {\
my $v = $EVTPART1;;\
if ($NAME eq "Pioneer") {\
fhem "set Raumfeld:FILTER=volume!=$v volume $v";;\
} else {\
fhem "set Pioneer:FILTER=volume!=$v volume $v";;\
}\
}
Pinoeer und Raumfeld entsprechend mit den Devicenamen ersetzen.
Die FILTER sind dazu da um beim jeweils anderen Device kein neues Event auszulösen wenn der Wert schon übereinstimmt.
Gruß
Dan
Zitat von: DeeSPe am 22 März 2019, 08:32:25
ACHTUNG:
In $EVENT steckt auch noch ein Doppelpunkt wenn das Event Reading und Value enthält.
Ich würde folgendes Vorschlagen (damit sind beide Richtungen "erschlagen"):
defmod n_Volumechange notify (Pioneer|Raumfeld):volume:.* {\
my $v = $EVTPART1;;\
if ($NAME eq "Pioneer") {\
fhem "set Raumfeld:FILTER=volume!=$v volume $v";;\
} else {\
fhem "set Pioneer:FILTER=volume!=$v volume $v";;\
}\
}
Pinoeer und Raumfeld entsprechend mit den Devicenamen ersetzen.
Die FILTER sind dazu da um beim jeweils anderen Device kein neues Event auszulösen wenn der Wert schon übereinstimmt.
Gruß
Dan
Da ich das ziehmlich interessant finde hätte ich da auch eine kleine Lösung
Achtung nur Codeteile für das DEF, bitte selber vervollständigen
n_Volumechange notify (PIONEER|RAUMFELD):volume:.* {
my %h = ( PIONEER => 'RAUMFELD', RAUMFELD => 'PIONEER' );
fhem("set $h{$NAME}:FILTER=volume!=$EVTPART1 volume $EVTPART1");
}
Ich habe den Code nicht getestet, kann sein das ich einen Typo drin habe, dann bitte einfach noch mal kurz über den Code schauen.
Dan seine Lösung ist für nicht Perl Leute einfacher zu verstehen. Meine wäre einfach elegant ;D
Zitat von: CoolTux am 22 März 2019, 08:47:56
Meine wäre einfach elegant ;D
Angeber! ;)
Diese wollte ich extra nicht vorschlagen wegen:
Zitat von: CoolTux am 22 März 2019, 08:47:56
Dan seine Lösung ist für nicht Perl Leute einfacher zu verstehen.
Gruß
Dan
P.S. Es ist immer wieder toll zu sehen welche Lösungsansätze es so gibt um am Ende das selbe Ergebnis zu erzielen.
Das werde ich bei mir auch mal testen. Habe aber vermutlich das Problem, dass Volume bei den beiden Geräten nicht == ist. 35 bei Pioneer entspricht 42 bei Raumfeld. Gibt es dafür auch eine elegante Lösung? Ich würde es mit einem Faktor versuchen...
Gruss
Enno
Zitat von: enno am 22 März 2019, 08:57:16
Das werde ich bei mir auch mal testen. Habe aber vermutlich das Problem, dass Volume bei den beiden Geräten nicht == ist. 35 bei Pioneer entspricht 42 bei Raumfeld. Gibt es dafür auch eine elegante Lösung? Ich würde es mit einem Faktor versuchen...
Gruss
Enno
Wie meinst du das? Du kannst dir doch die entsprechende Lautstärke einstellen über die Raumfeld App. Ob da nun 35 oder 42 steht is doch völlig egal. Wenn du den Connector über toslink dran hast, gibt er ja
eine feste Lautstärke an den Verstärker.
Vielen Dank an euch.. geiles Forum
Zitat von: Abercrombie1892 am 22 März 2019, 09:28:50
Wie meinst du das? Du kannst dir doch die entsprechende Lautstärke einstellen über die Raumfeld App. Ob da nun 35 oder 42 steht is doch völlig egal. Wenn du den Connector über toslink dran hast, gibt er ja
eine feste Lautstärke an den Verstärker.
Ich hatte die Namen der Geräte in der Frage gelassen, nutze aber was (Yamaha) komplett anderes. Da geht das leider nicht. Daher die Frage nach z.B. einem Faktor.
Gruss
Enno
Zitat von: DeeSPe am 22 März 2019, 08:32:25
ACHTUNG:
In $EVENT steckt auch noch ein Doppelpunkt wenn das Event Reading und Value enthält.
Ich würde folgendes Vorschlagen (damit sind beide Richtungen "erschlagen"):
defmod n_Volumechange notify (Pioneer|Raumfeld):volume:.* {\
my $v = $EVTPART1;;\
if ($NAME eq "Pioneer") {\
fhem "set Raumfeld:FILTER=volume!=$v volume $v";;\
} else {\
fhem "set Pioneer:FILTER=volume!=$v volume $v";;\
}\
}
Pinoeer und Raumfeld entsprechend mit den Devicenamen ersetzen.
Die FILTER sind dazu da um beim jeweils anderen Device kein neues Event auszulösen wenn der Wert schon übereinstimmt.
Gruß
Dan
läuft soweit richtig gut. nur kommt es ab und an vor das er anfängt mit der lautstärke hin und her zuspringen wie in einer endlosschleife. muss dann erst den verstärker ausschalten, dann klappt es wieder.
Zitat von: Abercrombie1892 am 22 März 2019, 16:01:31
läuft soweit richtig gut. nur kommt es ab und an vor das er anfängt mit der lautstärke hin und her zuspringen wie in einer endlosschleife. muss dann erst den verstärker ausschalten, dann klappt es wieder.
event-on-change-reading gesetzt bei beiden Devices?
Gruß
Dan
Zitat von: DeeSPe am 22 März 2019, 20:40:57
event-on-change-reading gesetzt bei beiden Devices?
Gruß
Dan
ist bei beiden gesetzt.
hallo,
vielleicht kann mir jemand nochmal helfen bei dem thema. wollte heute den code wieder bei fhem einfügen, aber ich bekomme ihn nicht mehr eingefügt.
defmod n_Volumechange notify (Sonos_Wohnzimmer|Denon):Volume|volume:.* {
my $v = $EVTPART1;;
if ($NAME eq ,,Denon") {
fhem "set Sonos_Wohnzimmer:FILTER=Volume!=$v Volume $v";;
} else {\
fhem "set Denon:FILTER=volume!=$v volume $v";;
}
}
define n_Volumechange notify (Sonos_Wohnzimmer|Denon):Volume|volume:.* { my $v = $EVTPART1; if ($NAME eq ,,Denon") { fhem "set Sonos_Wohnzimmer:FILTER=Volume!=$v Volume $v"; } else {\ fhem "set Denon:FILTER=volume!=$v volume $v"; } }: Unrecognized character \xC2; marked by <-- HERE after undef; { <-- HERE near column 698 at (eval 181451340) line 1.
2020.03.28 16:59:01 1: ERROR evaluating my $EVTPART1='2';my $TYPE='n_Volumechange';my $EVTPART22='3';my $EVTPART4='5';my $EVTPART27='8';my $EVTPART9='0';my $EVTPART25='6';my $EVTPART7='8';my $EVTPART10='1';my $EVTPART16='7';my $EVTPART19='0';my $EVTPART18='9';my $EVTPART11='2';my $EVTPART0='1';my $EVTPART14='5';my $EVTPART6='7';my $EVTPART13='4';my $EVTPART8='9';my $EVTPART20='1';my $NAME='n_Volumechange';my $EVTPART26='7';my $EVTPART29='0';my $EVTPART28='9';my $EVTPART21='2';my $EVTPART23='4';my $SELF='n_Volumechange';my $EVTPART24='5';my $EVTPART17='8';my $EVTPART2='3';my $EVTPART12='3';my $EVTPART15='6';my $EVTPART3='4';my $EVTPART5='6';my $EVENT='1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0';{return undef; { my $v = $EVTPART1; if ($NAME eq ,,Denon") { fhem "set Sonos_Wohnzimmer:FILTER=Volume!=$v Volume $v"; } else {\ fhem "set Denon:FILTER=volume!=$v volume $v"; } }}: Unrecognized character \xC2; marked by <-- HERE after undef; { <-- HERE near column 698 at (eval 181452103) line 1.
der hintergrund ist ist hier. ich betreibe jetzt einen sonos connect am receiver und habe diesen auf einen festen laustärkepegel gestellt. den slider kann ich dennoch bedienen und ich wollte diesen dann sozusagen an den denon koppeln um auch über die sonos app die laustärke zuändern.
im event monitor wird mir der Sonos Volumewert angezeigt bei änderung
Hi,
das hier wirfst Du in die Raw Def (https://wiki.fhem.de/wiki/Import_von_Code_Snippets), in deinem Code fehlten fast alle \ am Zeilenende (ungetestet)
defmod n_Volumechange notify (Sonos_Wohnzimmer|Denon):Volume|volume:.* {\
my $v = $EVTPART1;;\
if ($NAME eq "Denon") {\
fhem "set Sonos_Wohnzimmer:FILTER=Volume!=$v Volume $v";;\
} else {\
fhem "set Denon:FILTER=volume!=$v volume $v";;\
}\
}
Gruß Otto
guten morgen otto und vielen dank für deine antwort
ich habe das mal in die rawdef geschrieben und erhalte diesen fehler
Unrecognized character \xE2; marked by <-- HERE after ($NAME eq <-- HERE near column 37 at (eval 2807341) line 3.
eine frage mal noch dazu. bei dem denon wird volume kleingeschrieben und bei sonos Volume gross. hab ich das soweit denn richtig angepasst?
Da hast hast Du einen bösen (meist copy und Paste fehler) die bösen, falschen Anführungszeichen
if ($NAME eq ,,Denon") -> if ($NAME eq "Denon")
Habe meinen Code editiert!
Der Trigger vom notify, da bin ich nicht ganz sicher/sattelfest. Eventuell besser so:
(Sonos_Wohnzimmer|Denon):Volume|volume:.* -> (Sonos_Wohnzimmer|Denon):(Volume|volume):.*
oder noch besser so:
(Sonos_Wohnzimmer|Denon):[Vv]olume:.*
Allerdings stimmt doch deine if Logik nicht: if ($NAME eq "denon") {set sonos...}
das muss doch genau andersrum?
Gruß Otto
defmod n_Volumechange notify (Sonos_Wohnzimmer_Sonos|Denon):[Vv]olume:.* {\
my $v = $EVTPART1;;\
if ($NAME eq "Sonos_Wohnzimmer_Sonos") {\
fhem "set Denon:FILTER=volume!=$v volume $v";;\
} else {\
fhem "set Sonos_Wohnzimmer_Sonos:FILTER=Volume!=$v Volume $v";;\
}\
}
da haut er mir jetzt den fehler raus
Unrecognized character \xC2; marked by <-- HERE after <-- HERE near column 1 at (eval 7638550) line 2.
Edit: nachdem ich den Code nochmal abgetippt hatte, ging es und das ganze läuft tip top. Vielen vielen Dank
Das sieht komisch aus : Sonos_Wohnzimmer_Sonos war in deinem ersten Code nicht so und ist ungewöhnlich - aber möglich :)
hallo in die runde. kann man dieses notify an eine bedingung knüpfen, damit es nur reagiert, wenn Sonos Wohnzimmer läuft?
mfg.
Ja|Nein|Vielleicht :)