Yamaha RX A2020

Utvecklar du en smartphone-app? Datorprogramvara? Få hjälp av andra och bidra med dina egna erfaranheter.
Post Reply
Bonden
Medlem
Posts: 43
Joined: 06 Nov 2013, 20:37
10

Försöker styra min reciever via en virtuell enhet men får inte till detta alls. Någon som lyckats få kontakt med Yamahas prylar via HC2?
JensSam
Ny medlem
Posts: 13
Joined: 05 Nov 2013, 14:36
10

Hej,

jag har ingen HC2 själv, och någon RX-A2020 (jag har en RX-1500 som måste styras med RS232), men jag letade efter protokoll och hittade ett sådant på http://files.remotecentral.com/view/712 ... ivers.html.

Yamaha's protokoll brukar vara relativt generella för de flesta av deras modeller, det som skiljer är vilka inputs som finns osv, samt zon-kontroll.

Jag kollade lite snabbt i HTTP-protokollet för din receiver och du borde kunna styra den via vanliga HTML POST och HTML GET kommandon. T ex skulle du kunna testa att sätta på receivern genom ett HTTP POST-kommando som ser ut så här:

Code: Select all

@MAIN:PWR=On
För att kontrollera status borde du kunna skicka ett HTTP GET-kommando:

Code: Select all

@MAIN:PWR=?
Det borde vara enkelt att göra ett lualibrary med färdiga kommandon om det går att göra i HC2?

Testa av ovan och återkom med resultat så kan jag hjälpa dig med att guida vidare om det behövs! :)

Mvh,
Jens
Bonden
Medlem
Posts: 43
Joined: 06 Nov 2013, 20:37
10

Tack Jens, ett steg närmare men jag lyckas inte få kontakt med recievern via LUA. Någon som har skapat någon kodsnutt som kommunicerar någon reciever eller likanande på detta sätt?
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Hej

Jag kickar liv i denna tråd då jag sitter med motsvarande grejer hemma och försöker få detta att lira.

Har snott/snickrat ihop ett script som ansluter på port 50000 och sedan skickar ett kommando, uppenbarligen är det något som inte stämmer då receivern struntar fullständigt i det.
Jag kan köra telnet in på receivern på samma port och skriva kommandot och får då önskad respons, har provat att ansluta mot en ftp server med scriptet bara för att se att det lirar och jag kan klart och tydligt se att ansluter och skickat "kommandot"

Det går som sagt att göra med http anrop också men det har jag inte försökt (kompetensbrist), men ska väl försöka snickra på det ikväll om inte annat går

Code: Select all

tcpSocket = Net.FTcpSocket("192.168.1.20", 50000);
tcpSocket:setReadTimeout(5000);
--fibaro:log(tcpSocket);
fibaro:sleep(300);
tcpSocket:write("@MAIN:PWR=On\r");
Tacksam för hjälp :)

//a
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Då var gåtan knäckt
Så här stänger man av eländet via http anrop.

En virtual device och lua, kör så det ryker :D

Code: Select all

foo = Net.FHttp ("192.168.1.19", 80);
zapp ='<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>Standby</Power></Power_Control></Main_Zone></YAMAHA_AV>'
response, status, errorCode = foo: POST ('/YamahaRemoteControl/ctrl', zapp);
Deeet kommer mera....

//a
Daniel
Medlem
Posts: 75
Joined: 04 Mar 2014, 18:27
10
Location: Stockholm

Har inte provat i LUA men däremot gjort en virtuell enhet till Yamaha RX A1020 med de vanligaste funktionerna och det funkar bra. Har även kopplat den till larmet så stärkaren stängs av resp startas när huset larmas på/av.
Attachments
Yamaha VDi Fibaro.jpg
Yamaha VDi Fibaro.jpg (48.5 KiB) Viewed 21207 times
HC 2 med 4.6.3 och en massa enheter och scener som just nu faktiskt fungerar.
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Tjusigt Daniel.

Jag har iofs inte provat något annat än LUA då jag har noll koll :) , så jag blev lite nyfiken på hur din kod/string ser ut. Kan du posta en snutt så jag får se.


// andreas
Daniel
Medlem
Posts: 75
Joined: 04 Mar 2014, 18:27
10
Location: Stockholm

Andreas,

Blev enklast att göra en skärmdump för att få med allt, men den blev åtta sidor lång och lite svår att lägga upp här :)
Men det är mest bara grafik och tomrum i pdf'en, inte alls mycket kod att knappa in.

Om du PM'ar din e-postadress så skickar jag den i ett mail.

/Daniel
HC 2 med 4.6.3 och en massa enheter och scener som just nu faktiskt fungerar.
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Du vet att du kan exportera en VD som fil och lägga upp här på forumet?
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Daniel
Medlem
Posts: 75
Joined: 04 Mar 2014, 18:27
10
Location: Stockholm

Aha - det var ju mera praktiskt! :) Tack för det.

Bifogar komprimerad fil eftersom bilaga med ".json" fil inte gillas av forumet.
Ange din förstärkares lokala IP adress samt port 50000 under fliken Advanced för att det skall fungera.
Attachments
Yamaha_RX-1020.vfib-2.json.zip
Virtual device för Yamaha RX-1020
(1.54 KiB) Downloaded 551 times
HC 2 med 4.6.3 och en massa enheter och scener som just nu faktiskt fungerar.
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Tack, då är jag med på hur det är gjort..
Och jag säger bara det att men gud förbannat vad jag försökte få det att fungera på liknande sätt innan jag gick över till att dra igång det med LUA (och det tog en stund det med).

Bifogar min device och ett dokument med resterande YNC kommandon om någon vill leka med det, men rent spontant känns det som att Daniels lösning med YNCA är smidigare.
Här finns alla koder till det senare för den nyfikne.
http://calaos.fr/download/Yamaha_Spec_UK_Ireland/YNCA/

edit
bifogade YNCA också :)
/edit

happy helg!

//andreas
Attachments
YNCA.zip
(509.53 KiB) Downloaded 495 times
YNC_RX-A2010_PUT_B.zip
YNC kommandon
(87.68 KiB) Downloaded 486 times
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Och helgens funderingar får då bli :

Hur får jag en slider att fungera där jag kan ställa volymen från tex -60 till -20 , har provat med lite olika tabeller och annat men inte lyckats :/

Hur hämtar jag info mha GET kommandot över ync/ynca och över vad tex volymen är och annan status, och hur presenterar jag det ?
Antar att jag behöver en scen som körs lite då och då.

//andreas
Daniel
Medlem
Posts: 75
Joined: 04 Mar 2014, 18:27
10
Location: Stockholm

Har inte gett mig på volymslidern och GET så när du löser det är jag mycket intresserad :)
Kräver lite LUA i mainloop har jag förstått.

Det funkar utmärkt utan GET, man hör ju liksom vad som händer :) Men det är klart att det vore snyggt om "fjärrkontrollen" uppdaterades med aktuella värden på samma sätt som när man styr stärkaren via webinterfacet.
HC 2 med 4.6.3 och en massa enheter och scener som just nu faktiskt fungerar.
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Ska ta omtag på slidern, bara jag hittar igen mina kodsnuttar.

Jo visst funkar det utan GET som det är nu även med min variant, men det levererar en högre WAF om det finns med ;) , och sedan bara för att det går så vill jag ju försöka :D

//a
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Code: Select all

st_volym = math.floor(_sliderValue_ - 80);
fibaro:debug(st_volym);
foo = Net.FHttp ("192.168.1.19", 80);
zapp ='<YAMAHA_AV cmd="PUT"><Main_Zone><Volume><Lvl><Val>'st_volym'</Val><Exp></Exp><Unit></Unit></Lvl></Volume></Main_Zone></YAMAHA_AV>'
response, status, errorCode = foo: POST ('/YamahaRemoteControl/ctrl', zapp);
felmeddelande jag får när jag flyttar slidern.

[DEBUG] 22:11:05: -68
[ERROR] 22:11:05: line 4: attempt to call global 'st_volym' (a number value)
[DEBUG] 22:11:08: -20
[ERROR] 22:11:08: line 4: attempt to call global 'st_volym' (a number value)
[DEBUG] 22:11:09: 6
[ERROR] 22:11:09: line 4: attempt to call global 'st_volym' (a number value)
[DEBUG] 22:12:17: -65
[ERROR] 22:12:17: line 4: attempt to call global 'st_volym' (a number value)

Vars har jag tänkt tokigt ?


Provade även med en tabell men där är jag på ännu djupare vatten.

Code: Select all

local st_volym = {"-70.0", "-69.5", "-69.0", "-68.5", "-68.0", "-67.5", "-67.0", "-66.5", "-66.0", "-65.5", "-65.0", "-64.5", "-64.0", "-63.5", "-63.0", "-62.5", "-62.0", "-61.5", "-61.0", "-60.5", "-60.0", "-59.5", "-59.0", "-58.5", "-58.0", "-57.5", "-57.0", "-56.5", "-56.0", "-55.5", "-55.0", "-54.5", "-54.0", "-53.5", "-53.0", "-52.5", "-52.0", "-51.5", "-51.0", "-50.5", "-50.0", "-49.5", "-49.0", "-48.5", "-48.0", "-47.5", "-47.0", "-46.5", "-46.0", "-45.5", "-45.0", "-44.5", "-44.0", "-43.5", "-43.0", "-42.5", "-42.0", "-41.5", "-41.0", "-40.5", "-40.0", "-39.5", "-39.0", "-38.5", "-38.0", "-37.5", "-37.0", "-36.5", "-36.0", "-35.5", "-35.0", "-34.5", "-34.0", "-33.5", "-33.0", "-32.5", "-32.0", "-31.5", "-31.0", "-30.5", "-30.0", "-29.5", "-29.0", "-28.5", "-28.0", "-27.5", "-27.0", "-26.5", "-26.0", "-25.5", "-25.0", "-24.5", "-24.0", "-23.5", "-23.0", "-22.5", "-22.0", "-21.5", "-21.0", "-20.5", "-20.0", "-19.5", "-19.0", "-18.5", "-18.0", "-17.5", "-17.0", "-16.5", "-16.0", "-15.5", "-15.0", "-14.5", "-14.0", "-13.5", "-13.0", "-12.5", "-12.0", "-11.5", "-11.0", "-10.5", "-10.0", "-9.5"}; 
fibaro:debug(st_volym);
foo = Net.FHttp ("192.168.1.19", 80);
zapp ='<YAMAHA_AV cmd="PUT"><Main_Zone><Volume><Lvl><Val>'st_volym'</Val><Exp></Exp><Unit></Unit></Lvl></Volume></Main_Zone></YAMAHA_AV>'
response, status, errorCode = foo: POST ('/YamahaRemoteControl/ctrl', zapp);


felmeddelande
[ERROR] 22:27:42: line :debug (arg 2), expected 'string const &' got 'table'

tacksam för hjälp :)

//a
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

fibaro:debug kan inte skriva ut en hel tabell, utan bara ENSKILDA element. Om du vill skriva ut tabellen så måste du loopa igenom hela tabellen helt enkelt.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Rasmussen
Medlem
Posts: 36
Joined: 04 Dec 2014, 17:00
9

Ok tack, då är jag nästan med :)
Nybörjare som jag är så finns det en hel del luckor här, men hur går jag ut "värdet" från tabellen som slidern motsvarar ?

//andreas
Post Reply