NEWS
Http requests via Alexa an Denon Receiver senden
-
So habe ich mal versucht, bekomme es natürlich nicht hin ` alles was ich sehen kann ist, das wohl Du einen http-request absetzen willst der bei dir "Lautsprecher" heißt.
Du erwähnst weiterhin, dass irgendetwas in einer Alexa-App nicht auftaucht, daraus schließe ich, Du hast folgendes vor:
"Alexa, schalte Lautsprecher"
und darufhin wird ein http-rquest abgesetzt … was auch immer "Lautsprecher" bewirkt 8-)
ab hier beschlägt meine Glaskugel gerade plötzlich und ich bin raus :lol:
Du siehst also, Du musst uns schon sehr genau sagen was Du vor hast.
So eine hhtp request ist wie Fernbedienungsknopf ... du drückst ihn und es passiert etwas, aber auch nur genau das was diese eine Taste kann.
Du kannst diese "Taste" natürlich auch immer wieder drücken.
Du kannst diese "Taste/Befehl" nun über den Cloud-Adapter auch an die Alexa-App übergeben.
Dafür legst Du im Cloud-Adapter eine neues Smart-Gerät an und gibst diesem "Gerät" eiinen Namen der dem Alexa-Kommando entspricht.
Diese Smart Gerät verweist z.B. auf dieses Blockly-Script (simuliert also den vorher geschilderten Tastendruck) .
So ist die Vorgehensweise
-
schau dir mal das folgende Thema an … lies ab dem Punkt ruhig ein paar Seiten weiter
viewtopic.php?f=24&t=5461&hilit=broadli … =60#p77911
hieraus sollte die Vorgehensweise "Wie bekomem ich einen Datenpunkt (oder auch Script) aus ioBroker über den cloud-Adapter in Alexa abgebildet und entsprechend gesteuert" hervorgehen.
-
Also mein Ziel ist es zu sagen "Alexa dimme Lautsprecher auf 50" z.B. dann würde die Lautstärke des Verstärkers auf
50 gehen, Werte von 1 - 80 sind bei dem Verstärker möglich.
So war es auf jeden Fall bei der ha bridge. Dort wird halt emuliert das "die Lampe" auf 50% gestellt werden soll, stattdessen wird
halt die Lautsprecher Lautstärke auf 50 gestellt.
Werde mir mal den Link anschauen.
-
Und dein hhtp-request kann einen variablen Wert übergeben?
also einen "Parameter" enhalten?
-
http://192.168.200.36/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/${intensity.math((X/2.55)-80)}
Wie gesagt bei ha bridge geht das damit.
Dort kann man halt on, dimm und off Befehle geben
-
http://192.168.200.36/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/${intensity.math((X/2.55)-80)} ```` ` was übergibst Du in deinem Beispiel?
ist "-80" am ende des http-request hier der zu übergebene Wert / Parameter / Lautstärke?
-
Ne das ist nur die Formel.
Den Wert zieht er sich dann selbst, der wird wenn ich es richtig verstanden habe errechnet
Habe das damals auch nur aus einem anderen Forum kopiert…
-
dann ist "x" der Wert?
-
Gehe ich von aus ja
-
folgendes könnte funktionieren …
Du legst einen Datenpunkt vom Typ "Zahl" als rolle "level" (ich habe ihn "level.audio" genannt" für die Lautsärke deines Denon an.
Wichtig ist, das der Zahlen (ich habe mal 0 - 100 unterstellt) kennt.
Dann legst Du ein Smartgerät im Cloud Adapter mit einem Namen an, der dem Alex Befehl entspricht
Ich habe dem "Lautärke Denon" genannt
"Alexa, stelle Lautsärke Denon auf 35%"<<
in den Cloud Einstellungen bin ich von einer Normallautstärke von 30% ausgegangen.
1917_denon_0.png
1917_denon_1.png
1917_denon_2.png -
Wenn Du nun über Alexa nach neuen Geräten suchst, dann sollte die ALexa App diesen Datenpunkt finden und auch drauf reagieren.
Das kannst Du auch gleich ausprobieren in dem Du einen Wert an Alexas übergibst:
"Alexa. stelle Lautsärke Denon auf 60%"<<
Der Datenpunkt "Denon_Lautstärke" sollte sich entsprechend auf 60% aktualisieren, das müßtest Du in ioBroker sofort sehen können … mehr passiert bis hierhin aber noch nicht!
-
sry aber ich verstehe nur bahnhof
-
sry aber ich verstehe nur bahnhof ` ich hatte dir ein paar Antworten weiter oben einen Link empfohlen … <u>LIES</u> und versuche zu verstehen.
Dann kommst Du wieder hierher zurück und ich könnte mir vorstellen, das es bei dir "klick" macht …. Grundvoraussetung ist allerdings, das Du mitmachst, anfängst zu lesen und zu verstehen!
Frage: Wenn Du Alexa sagst: "stelle die Lautsärke auf 50"
Wo ist denn denn dann diese ominöse "50"?
Wo lässt Du diese?
Wo schreibst Du die hin?
Und was passiert wenn Du das nächste mal etwas etwas anderes als "50" sagst?
Also benötigen wir als Erstes mal einen Datenpunkt wo diese "Variable bzw. Lautstärke bzw. "Wert zwischen 0 und 100" hinlegen, und das ist eben der Datenpunkt den wir soeben angelegt haben.
-
oki doki werde ich machen. guck mir das heute abend mal an.
Muss jetzt nur nochmal weg.
Melde mich später, hoffe dann hat es klick gemacht
Aber auf jeden fall schonmal vielen dank für deine hilfe
-
Was jetzt noch benötigt wird ist ein Script, welches prüft ob sich die Lautstärke über den von Alexa angesprochenen Datenpunkt verändert hat.
Falls ja, soll das script nun letztendlich den http Befehl an den Receiver schicken.
Da ich keinen Denon Receiver habe, weiss ich nicht was genau von dem http-befehl alles mitgeschickt weren muß, dass mußt Du ausprobieren:
Gemäß der Formel wäre bei "Lautstärke = 20%" der zu übergebene Wert "-72"
(20 / 2.55) - 80 = -72
Folgendes würde ich an Deiner Stelle mal ausprobieren:
nur Wert
http://192.168.200.36/MainZone/index.pu … umeSet/-72
oder Wert mit vorangestellten "$"-Zeichen)
http://192.168.200.36/MainZone/index.pu ... meSet/$-72
oder mit Funktion(?)
http://192.168.200.36/MainZone/index.pu ... .math(-72)}
Code zum blockly import
! ````
<block xmlns="http://www.w3.org/1999/xhtml" type="request" id="hWq]a^0,RR/{G*/zvL%*" x="-187" y="-137"><mutation with_statement="false"></mutation>
<field name="WITH_STATEMENT">FALSE</field>
<field name="LOG">log</field>
<value name="URL"><shadow type="text" id="!J6#5n3%ohYbM|e2r]/i"><field name="TEXT">http://192.168.200.36/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/$-72</field></shadow></value></block>[1917_denon_3.png](/assets/uploads/files/1917_denon_3.png)
-
Und das wäre ein Vorschlag um den Blockly Code zusammenzubauen
! ````
<block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="UOdt?(t{Z=~|8j`o/t#d" x="-212" y="-137"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="O
^i|+{HHFGg}oA#NT@G"><field name="oid">MultiMedia.0.Denon.Lautstärke_Denon</field></shadow></value> <statement name="STATEMENT"><block type="request" id="hWq]a^0,RR/{G*/zvL%*"><mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG">log</field> <value name="URL"><shadow type="text" id="!J6#5n3%ohYbM|e2r]/i"><field name="TEXT">text</field></shadow> <block type="text_join" id="%kc/v;oE/EWZs*v%LG{x"><mutation items="2"></mutation> <value name="ADD0"><block type="text" id="8DU{-Vb7b1ebG@^fA;2K"><field name="TEXT">http://192.168.200.36/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/$</field></block></value> <value name="ADD1"><block type="math_round" id=".!2WtTVAm#,3j
4si-au"><field name="OP">ROUND</field>
<value name="NUM"><shadow type="math_number" id="o@jdd6w#hn52KFHG6mFb"><field name="NUM">3.1</field></shadow>
<block type="math_arithmetic" id="!KX5E8BoqHRCku[99m%~"><field name="OP">MINUS</field>
<value name="A"><shadow type="math_number" id="8H2QIQr@!fml({/w(10"><field name="NUM">1</field></shadow>
<block type="math_arithmetic" id="L5pq5jsBY7W#yOLp,X3"><field name="OP">DIVIDE</field>
<value name="A"><shadow type="math_number" id="_Y_ap==mVi7yAC:oLo31"><field name="NUM">1</field></shadow>
<block type="convert_tonumber" id="!gTxu5O34YyX~dU!VM)e"><value name="VALUE"><block type="get_value" id=":@J?uHW[L32WTNj33a`M"><field name="ATTR">val</field>
<field name="OID">MultiMedia.0.Denon.Lautstärke_Denon</field></block></value></block></value>
<value name="B"><shadow type="math_number" id="4OdVW+Plb[8U~+sWGF9x"><field name="NUM">2.55</field></shadow></value></block></value>
<value name="B"><shadow type="math_number" id="x#/f%42-;#^^|{~4+C}0"><field name="NUM">80</field></shadow></value></block></value></block></value></block></value></block></statement></block>[1917_denon_4.png](/assets/uploads/files/1917_denon_4.png)
-
Hallo, für meinem Denon läuft dieses Script für die Lautstärke.
! /* – do not edit following lines - START --
! {
! "debug": false,
! "verbose": false
! }
! -- do not edit previous lines - END --*/
! createState('Denon.Denon_Lautstärke', {
! type: 'number',
! name:'Denon-Lautstärke',
! min: 0,
! max: 100,
! def: 50,
! read: true,
! write: true,
! role: 'level.volume'});
! var http = "http://192.168.180.6/goform/formiPhoneAppDirect.xml?";
! on({id: "javascript.0.Denon.Denon_Lautstärke", change: "any"},
! function (obj) {
! var x = obj.state.val;
! if (x === 0) {
! require("request")(http + 'MUON'); // Bei Befehl "aus" wird Vol. auf Mute gesetzt.
! console.log("Lautstärke AVR-4520 auf -MUTE- gesetzt.");
! } else {
! require("request")(http + 'MV' + x);
! console.log("Lautstärke AVR-4520 auf " + x + " gesetzt.");
! }});
Die 80% Begrenzung habe ich bei mir direkt im Verstärker eingestellt. (so sind in dem Script Deine 80% dann trotzdem 100% für die Alexa Geschichte)Der Alexa Befehl bei mir : Alexa, Lautstärke im Wohnzimmer (so heißt das Ding bei mir als Smartgerät im Cloud Adapter) auf xy Prozent. (also nicht dimmen oder so…)
-
Puh. ich habe mir den Link von dir jetzt 2x durch gelesen, aber das ist mir wirklich zu hoch… habe
echt keine Ahnung davon...
-
was verstehst Du denn nicht ?
Du musst nur ein neues leeres Script erstellen und das von mir dort rein kopieren. Die IP Adresse musst Du noch mit der Deines Verstärkers überschreiben. (Sollte eigentlich beim Denon funktionieren. Welchen hast Du eigentlich ?)
Das Script erstellt Dir dann einen Datenpunkt, wenn es gestartet wird.
Dann gehst Du in den Cloud Adapter und fügst ein neues Smart Gerät über das + Zeichen hinzu. Den Datenpunkt findest Du dann unter JavaScript in den Objekten. Dann vergibst Du einen Namen, z.B. Lautstärke im Wohnzimmer, oder Verstärker, oder halt so wie es heißen soll. Danach sagst Du nur: Alexa, suche neue Geräte und es sollte gefunden werden.
Sonst frage einfach….
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201804 ... 6e72fd.jpg">https://uploads.tapatalk-cdn.com/20180417/11a1f76fd629c860f2729313536e72fd.jpg</link_text>" /> -
was verstehst Du denn nicht ? ` ich glaube es ging hier um die Erläuterungen in dem von mir empfohlenen Link viewtopic.php?f=24&t=5461&hilit=broadli … =60#p77911