Hallo,
ich möchte die Lautstärke meines VDR über TabletUI steuern.
Hierzu habe ich mir das Volumen Modul eingerichtet
<div class="col"
data-type="volume" data-device="VDR_Wohnzimmer"
data-height="90"
data-width="90"
data-min="0"
data-max="255"
data-off="0"
data-tickstep="5"
data-set="cmd ssh poweroff\@192.168.0.9 svdrpsend VOLU"
data-get="pct"
data-unit="%"
class="dim-tick big">Lautstärke</div>
Das ganze geht nicht. Vermutlich deshalb, weil ja das Device "VDR_Wohnzimmer" angesprochen wird und der "cmd" Befehl ja eigentlich ein System Befehl sein muss.
Hätte mir da jemand einen Lösungsansatz? Muss ich in Fhem erst mal im Device "VDR_Wohnzimmer" was anlegen um hier den "cmd" Befehl absenden zu können.
??
Gruß Albi
Das Ändern der Lautstärke würde ich von FHEM machen lassen. Mittels Perl-Funktion z.B.. FTUI gibt dann nur den Befehl zum Ändern an FHEM weiter.
Ich weiß nicht, wie genau die Lautstärke an deinem VDR geändert wird. Aber der Ablauf könnte so sein:
* Mit FTUI änderst du den Wert eines FHEM-Dummys
* Ein Notify/DOIF triggert dann den Befehl zum Ändern der Lautstärke auf den Wert im Dummy
Verstehst du, was ich meine?
Nein,
bin leider Anfänger.
Die Lautstärke am VDR wird über einen SSH Befehl gesteuert. Ich habe eine HU-Bridge am Laufen mit der mit Hilfe von Alexa Echo die Lautstärke regeln kann. Hier wird eben ein CMD an Fhem gesendet der die Lautstärke regelt. Der Befehl sieht wie folgt aus.
cmd ssh poweroff@/192.168.0.9 svdrpsend VOLU
Hinter VOLU wird dann der gewünschte Wert gesetzt (0-255)
Im Grunde müsste ich ja nur den CMD Befehl absetzten an Fhem....
Zitat von: Albi am 12 Februar 2018, 11:08:19Im Grunde müsste ich ja nur den CMD Befehl absetzten an Fhem....
Ja. Das geht nur leider mit dem Volume-Widget nicht. Zumindest wüsste ich nicht, wie. Deswegen der Plan mit dem Dummy. Hat auch den Vorteil, dass nicht nur der DVR, sondern auch FHEM die aktuelle Lautstärke kennt (vorausgesetzt, sie wird nicht durch eine IR-Fernbedienung geändert). Sonst zeigt dir ja das Volume-Widget eine Phantasie-Zahl an. Oder?
Ok,
Dann werde ich das mal versuchen.
Momentan wird übrigens gar kein Wert angezeigt, da ja keiner abfragbar ist. Denn das device "VDR_Wohnzimmer" ist ja nur ein WOL Modul, also quasi nur ein on/off Schalter.
Mal schauen ob ich das hinbekomme, bin wie gesagt Anfänger. Aber learning by dooing....
Gruß Albi
Wenn's Fragen gibt, nur her damit.
Hmm,
also irgenwie scheine ich zu doof zu sein.
Habe ein Dummy Defice definiert.
Versucht über atrr dem cmd Befehl hinzuzufügen.
JEdoch kapier ich nicht wie jetzt der eigebenen Wert mit dazu übernommen werden soll. Oder bin ich da voll auf dem Holzweg.
Der Befehl wäre:
{ system("ssh poweroff\@192.168.0.9 svdrpsend VOLU *hier muss die Zahl zwischen 0und255 rein*") }
Komme da mit meinen Anfänger Know How nicht weiter
Ergänzung.
Ich habe ein notify angelegt mit dem modify wo der Befehl vom Post oben eingetragen ist.
Vom Dummy Defice kann ich nun den Status entsprechend im Tablet UI wieder geben.
Jetzt hänge ich daran, wie das Dummy das ganze an den notify weitergibt und/um den Befehl auszuführen.
Ich kann auch über das TabletUI das Dummy entsprechend den Wert einstellen, also nicht nur abfragen.
Gruß Albi
Nun gut, ich möchte dir nicht das Denken abnehmen, deswegen nur ein ungefähr ähnliches Beispiel von mir ;).
Ich steuere meinen nicht-smarten TV mit LIRC (IR-Diode an einem Raspberry). In FTUI habe ich Kanal-Logos. Ein Klick darauf sendet die Kanal-Nr. an einen Dummy. Auf dessen Status-Änderung reagiert ein Notify. Dieses Notify triggert dann eine Funktion in 99_myUtils.pm. Letzeres ist aber jetzt mal irrelevant.
Du bist ja schon so weit, dass du den Wert im Dummy hast. Dir fehlt also nur noch das Notify dazu.
Mein Dummy:
Internals:
NAME rcTvChannel
NR 57
STATE 214
TYPE dummy
READINGS:
2018-01-13 18:43:56 state 214
Attributes:
icon it_remote
room Dummy,Multimedia
Das Notify:
Internals:
DEF rcTvChannel {sendTVChannel("$EVENT")}
NAME notTvChannel
NOTIFYDEV rcTvChannel
NR 58
NTFY_ORDER 50-notTvChannel
REGEXP rcTvChannel
STATE active
TYPE notify
READINGS:
2018-02-13 17:04:39 state active
Attributes:
Und der Vollständigkeit halber noch die Perl-Funktion:
sub sendTVChannel($)
{
my $strChannel = shift;
my @arrChannel = split('',$strChannel,length($strChannel));
foreach (@arrChannel)
{
#fhem( "set rcTVSony KEY_$_\n");
my $curl=`curl --silent --data '' http://fqdn:3000/remotes/SONY-TV/KEY_$_`;
sleep(1);
}
}
Die Lösung für dein Problem liegt im Notify. Du musst sie jetzt nur noch finden ;)
Hallo und danke,
Im notify fehlte im def das Dummy Device. Vielen Dank für die schnelle Antwort und Hilfe.
Gruß Albi
Ergänzend dazu.
Im Notify steht nun folgendes im DEF
LautVDR { system("ssh poweroff\@192.168.0.9 svdrpsend VOLU $EVENT") }
Gruß Albi
Genau. Auf das $EVENT wollte ich hinaus. :)
Joap, danke fürs "rauflupfen" (ist schwäbisch)....
Entscheidend war aber auch das meine Device Angabe fehlte. Dann habe ich im log gesehen, dass nur der Befehl abgesendet wurde, ohne einen Wert mitzugeben. Das hat übrigens die Auswirkung das mein Vdr an Fhem die aktuelle Lautstärke anzeigt bzw übermittelt.
Auf jeden Fall war mit dann klar, ich muss den Wert aus dem device mitgeben in den Befehl. Und da sah ich in deinem Code oben das $Event....
Und siehe da, es wird laut und leise.
Gruß Albi