Yamaha RX A2020
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:
För att kontrollera status borde du kunna skicka ett HTTP GET-kommando:
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
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
Code: Select all
@MAIN:PWR=?
Testa av ovan och återkom med resultat så kan jag hjälpa dig med att guida vidare om det behövs!
Mvh,
Jens
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
Tacksam för hjälp
//a
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");
//a
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
Deeet kommer mera....
//a
Så här stänger man av eländet via http anrop.
En virtual device och lua, kör så det ryker
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);
//a
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 (48.5 KiB) Viewed 21213 times
HC 2 med 4.6.3 och en massa enheter och scener som just nu faktiskt fungerar.
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
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.
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.
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.
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
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
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
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
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.
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.
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);
[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);
[ERROR] 22:27:42: line :debug (arg 2), expected 'string const &' got 'table'
tacksam för hjälp
//a