Denon AV Reciver - plugin
Moderators: leecollings, remb0
-
- Posts: 612
- Joined: Wednesday 07 August 2013 19:09
- Target OS: -
- Domoticz version:
- Location: UK
- Contact:
Re: Denon AV Reciver - plugin
Great work mate!
Sent from my iPhone using Tapatalk
Sent from my iPhone using Tapatalk
- Egregius
- Posts: 2582
- Joined: Thursday 09 April 2015 12:19
- Target OS: Linux
- Domoticz version: v2024.7
- Location: Beitem, BE
- Contact:
Re: Denon AV Reciver - plugin
I don't understand why the status of the receiver must be published to domoticz.
Why not just use a page to control it?
Why not just use a page to control it?
-
- Posts: 612
- Joined: Wednesday 07 August 2013 19:09
- Target OS: -
- Domoticz version:
- Location: UK
- Contact:
Denon AV Reciver - plugin
I have it in domoticz so I can control it via Siri
*There is a plugin that does this but that crashed my homebridge when the amp was turned off at the wall and couldn't be reached from the homebridge plugin.
Sent from my iPhone using Tapatalk
*There is a plugin that does this but that crashed my homebridge when the amp was turned off at the wall and couldn't be reached from the homebridge plugin.
Sent from my iPhone using Tapatalk
-
- Posts: 71
- Joined: Monday 12 October 2015 15:46
- Target OS: Raspberry Pi / ODroid
- Domoticz version: V4.10232
- Contact:
Re: Denon AV Reciver - plugin
OK so this is brilliant, and I've been at this for a long time not wanting to go into .sh but remain pure Lua.simon_rb wrote:Don't know how pretty this is but it works
This updates the sliders and only updates the switch if its different...
Code: Select all
commandArray = {} function execute(command) -- returns success, error code, output. local f = io.popen(command..' 2>&1 && echo " $?"') local output = f:read"*a" return output end --read xml and remove value strings --<MasterVolume><value>-60.0</value></MasterVolume> becomes -60.0 function get(data,name) data = data:match("<"..name..">(.-)</"..name..">") data = data:gsub("<value>", "") data = data:gsub("</value>", "") return data end vol_tv = execute('curl --url "http://192.168.1.12/goform/formMainZone_MainZoneXml.xml" &') --get volume of TV and update volume switch in Domoticz if it differs local vol_tv = get(vol_tv,"MasterVolume") local vol_domo = otherdevices_svalues['Denon Volume'] print(vol_tv) vol_tv = tonumber(vol_tv) + 80 print(vol_tv) if otherdevices['Denon Volume'] ~= 'Off' then --if (vol_domo ~= vol_tv) then difference = math.abs(vol_domo - vol_tv) if difference > 1 then --commandArray['UpdateDevice'] = otherdevices_idx['Denon Volume'] ..' |2|' .. vol_tv os.execute('curl -s "http://192.168.1.26:8080/json.htm?type=command¶m=switchlight&idx=284&switchcmd=Set%20Level&level='..vol_tv..'" &') end end return commandArray
Mymissing piece was getting the correct value back from the xml stripping all the stuff you don't want. The rest of my script worked apparently, but getting values like SAT</ and such got me crazy.
This Volume example works like a charm, and I have also created this for my Selector Switch with SOURCES on the Amp. After 1 minute, the Selector Switch is set to the current mode when you for example use the remote to switch on the Amp itself, extracting the <InputFuncSelectMain><value>SAT</value> as SAT in this case. If the Selector Switch is not matching that, the script will set it correctly.
I wanted to move on to the Surround mode, which is an easy copy over from the sources script, but searching for: <selectSurround><value>DOLBY DIGITAL </value> gives me an additional SPACE before the </value> and this is why it cannot be compared to the Levels named on the Selector Switch exactly it seems. Any idea to strip SPACE character before the </value> but not entirely as there is a space between DOLBY and DIGITAL too?
Cheers,
Ray
-
- Posts: 8
- Joined: Saturday 17 September 2016 9:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Latest
- Location: Netherlands
- Contact:
Re: Denon AV Reciver - plugin
Hi All,
Just wondering if it is possible to modify the range of the dummy switch - slider object.
If so I can match the range displayed on the AV receiver perfectly with the Domoticz object, in addition autoswitch to absolute <> relative which I can read from the actual configuration.
Next will be to implement the Source Select and synchronization to the scripts I posted
Thanks
Just wondering if it is possible to modify the range of the dummy switch - slider object.
If so I can match the range displayed on the AV receiver perfectly with the Domoticz object, in addition autoswitch to absolute <> relative which I can read from the actual configuration.
Next will be to implement the Source Select and synchronization to the scripts I posted
Thanks
-
- Posts: 612
- Joined: Wednesday 07 August 2013 19:09
- Target OS: -
- Domoticz version:
- Location: UK
- Contact:
Re: Denon AV Reciver - plugin
I use absolute for my amp and use the 100 (0-99) slider within Domoticz. I don't believe you can change it within Domoticz as such. It depends on the dummy switch you create. For me the 100 dummy is enough as I didn't like .5 volumes anyways - would bug me if it was at 65.5 for example lol.Bart77 wrote:Hi All,
Just wondering if it is possible to modify the range of the dummy switch - slider object.
If so I can match the range displayed on the AV receiver perfectly with the Domoticz object, in addition autoswitch to absolute <> relative which I can read from the actual configuration.
Next will be to implement the Source Select and synchronization to the scripts I posted
Thanks
Sent from my iPhone using Tapatalk
-
- Posts: 71
- Joined: Monday 12 October 2015 15:46
- Target OS: Raspberry Pi / ODroid
- Domoticz version: V4.10232
- Contact:
Re: Denon AV Reciver - plugin
I've written the script which I will share soon after cleaning it up a bit.Bart77 wrote:Hi All,
Just wondering if it is possible to modify the range of the dummy switch - slider object.
If so I can match the range displayed on the AV receiver perfectly with the Domoticz object, in addition autoswitch to absolute <> relative which I can read from the actual configuration.
Next will be to implement the Source Select and synchronization to the scripts I posted
Thanks
I'm working on the Surround Setting Selector Switch too, but ran into a problem I posted just above.
Cheers,
Ray
-
- Posts: 71
- Joined: Monday 12 October 2015 15:46
- Target OS: Raspberry Pi / ODroid
- Domoticz version: V4.10232
- Contact:
Re: Denon AV Reciver - plugin
OK, that was easier than I thought cleaning it up. Here's my script for getting the Selector Switch for Marantz SOURCE in sync.raymond wrote:I've written the script which I will share soon after cleaning it up a bit.Bart77 wrote:Hi All,
Just wondering if it is possible to modify the range of the dummy switch - slider object.
If so I can match the range displayed on the AV receiver perfectly with the Domoticz object, in addition autoswitch to absolute <> relative which I can read from the actual configuration.
Next will be to implement the Source Select and synchronization to the scripts I posted
Thanks
I'm working on the Surround Setting Selector Switch too, but ran into a problem I posted just above.
Cheers,
Ray
Code: Select all
-- Reading Denon/Marantz xml file to update a Selector Switch to reflect current state of the receiver
-- July 2016 v0.1 first try testing
-- November 2016 v1.0 with help of G3rard and simon_rb for extracting the xml values
MarantzInput = 'Marantz Input Select'
InputValue = otherdevices['Marantz Input Select']
MarantzIP = '192.168.200.160'
Port = '80'
debug = true
logging = false
-- Name of the levels in the selector
ONLevel = 'On'
BDLevel = 'BD'
SATLevel = 'SAT'
TUNERLevel = 'TUNER'
GAMELevel = 'GAME'
OFFLevel = 'Off' --optional
-- Values from each level name
ONLevelValue = '10'
BDLevelValue = '20'
SATLevelValue = '30'
TUNERLevelValue = '40'
GAMELevelValue = '50'
OFFLevelValue = '0' --optional
commandArray = {}
function execute(command)
-- returns success, error code, output.
local f = io.popen(command..' 2>&1 && echo " $?"')
local output = f:read"*a"
return output
end
--read xml and remove value strings
--<InputFuncSelect><value>SOURCE</value></MasterVolume>
function get(data,name)
data = data:match("<"..name..">(.-)</"..name..">")
data = data:gsub("<value>", "")
data = data:gsub("</value>", "")
return data
end
av_status = execute('curl --url "http://192.168.200.160/goform/formMainZone_MainZoneXml.xml" &')
pw_status = execute('curl --url "http://192.168.200.160/goform/formMainZone_MainZoneXml.xml" &')
--get volume of TV and update volume switch in Domoticz if it differs
local av_status = get(av_status,"InputFuncSelect")
local pw_status = get(pw_status,"Power")
if debug then
print("av_status: '" .. av_status .."'")
print("pw_status: '" .. pw_status .. "'")
print("InputValue: '" .. InputValue .. "'")
end
if (pw_status == 'STANDBY') then
if debug then
print("Marantz is set to Off");
end
if (otherdevices[MarantzInput] ~= OFFLevel) then
print("Updating '" .. MarantzInput .. "' selector to '" .. OFFLevel .. "'")
commandArray['UpdateDevice'] = otherdevices_idx[MarantzInput]..'|1|'..OFFLevelValue
end
goto done
end
if (av_status == InputValue) then
if debug then
print("Marantz gelijk aan Marantz Input Domoticz");
end
elseif (av_status == ONLevel) then
print('<font color="blue">Marantz Input equals to ON </font>');
if InputValue ~= ONLevel then
print('<font color="blue">Updating ' .. MarantzInput .. ' selector to ' .. ONLevel .. '</font>')
commandArray['UpdateDevice'] = otherdevices_idx[MarantzInput]..'|1|'..ONLevelValue
end
elseif (av_status == GAMELevel) then
print('<font color="blue">Marantz Input equals to GAME </font>');
if (otherdevices[MarantzInput] ~= GAMELevel) then
print('<font color="blue">Updating ' .. MarantzInput .. ' selector to ' .. GAMELevel .. '</font>')
commandArray['UpdateDevice'] = otherdevices_idx[MarantzInput]..'|1|'..GAMELevelValue
end
elseif (av_status == BDLevel) then
print('<font color="blue">Marantz Input equals to BD </font>');
if (otherdevices[MarantzInput] ~= BDLevel) then
print('<font color="blue">Updating ' .. MarantzInput .. ' selector to ' .. BDLevel .. '</font>')
commandArray['UpdateDevice'] = otherdevices_idx[MarantzInput]..'|1|'..BDLevelValue
end
elseif (av_status == SATLevel) then
print('<font color="blue">Marantz Input equals to SAT </font>');
if (otherdevices[MarantzInput] ~= SATLevel) then
print('<font color="blue">Updating ' .. MarantzInput .. ' selector to ' .. SATLevel .. '</font>')
commandArray['UpdateDevice'] = otherdevices_idx[MarantzInput]..'|1|'..SATLevelValue
end
elseif (av_status == TUNERLevel) then
print('<font color="blue">Marantz Input equals to TUNER </font>');
if (otherdevices[MarantzInput] ~= TUNERLevel) then
print('<font color="blue">Updating ' .. MarantzInput .. ' selector to ' .. TUNERLevel .. '</font>')
commandArray['UpdateDevice'] = otherdevices_idx[MarantzInput]..'|1|'..TUNERLevelValue
end
end
::done::
return commandArray
Cheers,
Ray
-
- Posts: 4
- Joined: Friday 02 December 2016 0:02
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Denon AV Reciver - plugin
Hi guys,
EDIT: Problem solved, keeping this post for future guidance!
First off I want to thank you for all the hard work you've put into this. I've read the entire thread a few times, both before installing and now again to get help. I'm a beginner in unix and I don't do code so I might have made some rookie mistake, feel free to point and laugh if so.
So here's the setup:
*Denon AVR-4200X that I control through HTTP
*Domoticz running on an RPi
When I run the script with the amp turned on it mutes it. I've added the http://IP/MainZone/index.put.asp?cmd0=P ... Mute%2Foff to the On Action and the opposite (On) for the Off Action for the Volume switch according to the instruction.
Here's what I get when I run the script (the not found's are empty lines as someone previously pointed out):
No settings are updated except for the Text Switch that get's the "No denon detected" tag. It seems as the defaulting function is not running properly. that's really all I can guess.
Here's the XML from the amp:
Edit:
Forgot to add the dummy device list and the settings in the script for comparison -> Edit2: I've been doing another tutorial for something completely different and they suggested that you execute the script with sudo ./nameofscript.sh. As I did that for the Denon script it gave me a different error and the denon.mainzone.settings and denon.net.settings files were finally created! One step forward!
The error I got was "row 149: bc: command does not exist" but I was able to solve it by installing bc (sudo apt-get install bc). It finally seem to work! The volume is updated and next step for me will be setting the inputs!
EDIT: Problem solved, keeping this post for future guidance!
First off I want to thank you for all the hard work you've put into this. I've read the entire thread a few times, both before installing and now again to get help. I'm a beginner in unix and I don't do code so I might have made some rookie mistake, feel free to point and laugh if so.
So here's the setup:
*Denon AVR-4200X that I control through HTTP
*Domoticz running on an RPi
When I run the script with the amp turned on it mutes it. I've added the http://IP/MainZone/index.put.asp?cmd0=P ... Mute%2Foff to the On Action and the opposite (On) for the Off Action for the Volume switch according to the instruction.
Here's what I get when I run the script (the not found's are empty lines as someone previously pointed out):
Code: Select all
pi@raspberrypi:~/domoticz/scripts $ ls -l denon.sh
-rwxr-xr-x 1 pi pi 14119 dec 1 00:21 denon.sh
pi@raspberrypi:~/domoticz/scripts $ sudo sh -x denon.sh
+
: not found6: denon.sh:
+ DOMO_IP=192.168.0.100
+ DOMO_PORT=8080
+ DENONIP=192.168.0.32
+ DENON_IDX=69
+ DENON_STATUS_IDX=64
+ DENON_MUTE_IDX=71
+ DENON_VOL_REL_IDX=72
+ DENON_VOL_ABS_IDX=71
+ DENON_SURROUND_IDX=73
+ DENON_INPUT_IDX=74
+ DENON_NET_INPUT_IDX=62
+ DENON_AIRPLAY_IDX=75
+
: not found0: denon.sh:
+
: not found3: denon.sh:
+
: not found7: denon.sh:
+ ping -c 1 -q 192.168.0.32
+ awk -F/ {print $5}
+ xargs
+ PINGTIME=0.512
+
: not found0: denon.sh:
+ function defaulting {
denon.sh: 45: denon.sh: function: not found
+
: not found6: denon.sh:
+
+ +
curl -s -i -H Accept: application/json http://192.168.0.100:8080/json.htm?type=command¶m=udevice&idx=64&nvalue=0&svalue=No%20Denon%20Detected
+ +
curl -s -i -H Accept: application/json http://192.168.0.100:8080/json.htm?type=command¶m=switchlight&idx=75&switchcmd=Off
+
+ +
curl -s -i -H+ Accept: application/json http://192.168.0.100:8080/json.htm?type=command¶m=udevice&idx=72&nvalue=0&svalue=-80.5
: not found4: denon.sh: +
+ }
: not found5: denon.sh: }
+
: not found6: denon.sh:
+
: not found7: denon.sh:
curl -sdenon.sh: 90: denon.sh: Syntax error: "fi" unexpected (expecting "then")
-i -H Accept: application/json http://192.168.0.100:8080/json.htm?type=command¶m=switchlight&idx=69&switchcmd=Off
pi@raspberrypi:~/domoticz/scripts $ HTTP/1.1 200 OK
Content-Length: 53
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "Update Device"
}
+ curl -s -i -H Accept: application/json http://192.168.0.100:8080/json.htm?type=command¶m=switchlight&idx=71&switchcmd=Set%20Level&level=0
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
Content-Length: 53
Content-Length: 51
Content-Type: application/json;charset=UTF-8
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Allow-Origin: *
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "Update Device"
}
{
"status" : "OK",
"title" : "SwitchLight"
}
Content-Length: 51
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "SwitchLight"
}
HTTP/1.1 200 OK
Content-Length: 51
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "SwitchLight"
}
Here's the XML from the amp:
Code: Select all
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<item>
<FriendlyName>
<value>Denon AVR-X4200W</value>
</FriendlyName>
<Power>
<value>STANDBY</value>
</Power>
<ZonePower>
<value>OFF</value>
</ZonePower>
<RenameZone>
<value>MAIN ZONE</value>
</RenameZone>
<TopMenuLink>
<value>ON</value>
</TopMenuLink>
<VideoSelectDisp>
<value>OFF</value>
</VideoSelectDisp>
<VideoSelect>
<value/>
</VideoSelect>
<VideoSelectOnOff>
<value>OFF</value>
</VideoSelectOnOff>
<VideoSelectLists>
<value index="ON">På</value>
<value index="OFF">Av</value>
<value index="SAT/CBL">Dator</value>
<value index="DVD">DVD</value>
<value index="GAME">Wii U</value>
<value index="MPLAY">Shield TV</value>
</VideoSelectLists>
<ECOModeDisp>
<value>ON</value>
</ECOModeDisp>
<ECOMode>
<value>OFF</value>
</ECOMode>
<ECOModeLists>
<value index="ON" table="MILJÖ: PÅ" param=""/>
<value index="OFF" table="MILJÖ: AV" param=""/>
<value index="AUTO" table="MILJÖ: AUTO" param=""/>
</ECOModeLists>
<AddSourceDisplay>
<value>FALSE</value>
</AddSourceDisplay>
<ModelId>
<value>4</value>
</ModelId>
<BrandId>
<value>DENON_MODEL</value>
</BrandId>
<SalesArea>
<value>4</value>
</SalesArea>
<InputFuncSelect>
<value>Dator</value>
</InputFuncSelect>
<NetFuncSelect>
<value>NET</value>
</NetFuncSelect>
<selectSurround>
<value>Multi Ch Stereo</value>
</selectSurround>
<VolumeDisplay>
<value>Relative</value>
</VolumeDisplay>
<MasterVolume>
<value>-40.0</value>
</MasterVolume>
<Mute>
<value>off</value>
</Mute>
<RemoteMaintenance>
<value>OFF</value>
</RemoteMaintenance>
<SubwooferDisplay>
<value>FALSE</value>
</SubwooferDisplay>
<Zone2VolDisp>
<value>TRUE</value>
</Zone2VolDisp>
<SleepOff>
<value>Av</value>
</SleepOff>
</item>
Forgot to add the dummy device list and the settings in the script for comparison -> Edit2: I've been doing another tutorial for something completely different and they suggested that you execute the script with sudo ./nameofscript.sh. As I did that for the Denon script it gave me a different error and the denon.mainzone.settings and denon.net.settings files were finally created! One step forward!
The error I got was "row 149: bc: command does not exist" but I was able to solve it by installing bc (sudo apt-get install bc). It finally seem to work! The volume is updated and next step for me will be setting the inputs!
-
- Posts: 1
- Joined: Wednesday 20 January 2016 10:54
- Target OS: Windows
- Domoticz version:
- Contact:
Re: Denon AV Reciver - plugin
Firstoff -> Thank you to everybody creating awesome things, and trixwood for denon.sh
Maybe somebody can help me out, because i cant seem to find the solution.
i have an RPI, denon avr-x2000, and the denon.sh script in my /home/pi/domoticz/scripts location.
i've configured a few switches:
also configured these settings in denon.sh
# Settings
DOMO_IP="domo" # Domoticz IP Address
DOMO_PORT="80" # Domoticz Port
DENONIP="denon" # Denon IP Address
DENON_IDX="79" # On/Off (Switch) IDX *1
DENON_STATUS_IDX="81" # Status (Text) IDX
DENON_MUTE_IDX="80" # Absolute Volume (Slider) IDX (same as Absolute Volume)
DENON_VOL_REL_IDX="82" # Relative Volume (Sound Volume) IDX
DENON_VOL_ABS_IDX="80" # Absolute Volume (Slider) IDX
but as you can see on the screenshot, i get these outputs on my switches:
202% or 25.0% on my denon.
the denon is using absolute, which i can also see on the webpage from "http://denon/goform/formMainZone_MainZoneXml.xml
<VolumeDisplay>
<value>Absolute</value>
</VolumeDisplay>
and also retrieve "absolute" from using code from denon.sh
"sed -n -e 's/.*\<VolumeDisplay><value>\(.*\)<\/value>.*/\1/p' denon.mainzone.settings"
so i am lost, how can i receive the correct (25.0) output on my virtual device (IDX=80)
Maybe somebody can help me out, because i cant seem to find the solution.
i have an RPI, denon avr-x2000, and the denon.sh script in my /home/pi/domoticz/scripts location.
i've configured a few switches:
also configured these settings in denon.sh
# Settings
DOMO_IP="domo" # Domoticz IP Address
DOMO_PORT="80" # Domoticz Port
DENONIP="denon" # Denon IP Address
DENON_IDX="79" # On/Off (Switch) IDX *1
DENON_STATUS_IDX="81" # Status (Text) IDX
DENON_MUTE_IDX="80" # Absolute Volume (Slider) IDX (same as Absolute Volume)
DENON_VOL_REL_IDX="82" # Relative Volume (Sound Volume) IDX
DENON_VOL_ABS_IDX="80" # Absolute Volume (Slider) IDX
but as you can see on the screenshot, i get these outputs on my switches:
202% or 25.0% on my denon.
the denon is using absolute, which i can also see on the webpage from "http://denon/goform/formMainZone_MainZoneXml.xml
<VolumeDisplay>
<value>Absolute</value>
</VolumeDisplay>
and also retrieve "absolute" from using code from denon.sh
"sed -n -e 's/.*\<VolumeDisplay><value>\(.*\)<\/value>.*/\1/p' denon.mainzone.settings"
so i am lost, how can i receive the correct (25.0) output on my virtual device (IDX=80)
Re: Denon AV Reciver - plugin
I never tested the final script it with absolute so look into denon.sh at this piece of code
And put in a lot of and run it in the terminal (not from domoticz) and check the output if its correct...
and in the lua code for the device event you have to look at since that is always relative...
Code: Select all
if [ "$AVvolume" == "--" ] ; then
AVvolume="0"
AVisvolumerelative="Infinity"
fi
if [ "$AVisvolumerelative" == "Relative" ] ; then
#echo "Volume: Relative"
AVvolumeAbs=$(echo "80.5 + $AVvolume" | bc)
AVvolumeRel=$AVvolume
else
#echo "Volume: Absolute"
AVvolumeRel=$(echo "80.5 - $AVvolume" | bc)
AVvolumeAbs=$AVvolume
fi
# exterminate, exterminate, convert... convert...
AVvolumeAbs=$((${AVvolumeAbs//\./}/10))
# decode old value
AVvolumeoldAbs=$(($(curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$DENON_VOL_ABS_IDX" | grep Data | grep -Eo '[0-9]{1,4}')+1))
#echo "Volume: $AVvolumeRel db $AVvolumeAbs ($AVvolumeoldAbs)"
Code: Select all
echo "Volume: $AVvolumeRel db $AVvolumeAbs"
and in the lua code for the device event you have to look at
Code: Select all
SendLevel = NewLevel - 79.5
-
- Posts: 822
- Joined: Wednesday 12 November 2014 15:01
- Target OS: Raspberry Pi / ODroid
- Domoticz version: latest b
- Contact:
Re: Denon AV Reciver - plugin
This script works great.
The only thing i dont understand is the code:
SendLevel = NewLevel - 80 --79.5
I think i can change this by SendLevel = NewLevel
I will try it out.. rest is working great with my denon!
My wife didnt understand how to operate the reciever and now she can with the domoticz app!
<script> (
commandArray = {}
IPDENON = '192.168.178.176'
IPTV = '192.168.178.13'
DEV='Denon aanuit'
MAXLEVEL=60
if devicechanged[DEV] == 'On' then
local play = 'curl --url "http://' .. IPDENON .. '/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FON" &'
os.execute(play)
ping_success=os.execute('ping -c1 ' .. IPTV)
if ping_success then
commandArray[1]={['Denon mode']='Set Level 20 AFTER 2'} -- set versterker op tv
commandArray[2]={['Denon mixer']='Set Level 10 AFTER 2'} -- set versterker op stereo
else
commandArray[1]={['Denon mode']='Set Level 10 AFTER 2'} -- set versterker op radio
commandArray[2]={['Denon zender']='Set Level 10 AFTER 2'} -- set radio zender sky
commandArray[3]={['Denon mixer']='Set Level 20 AFTER 2'} -- set versterker op multichannel stereo
end
elseif devicechanged[DEV] == 'Off' then
local play = 'curl --url "http://' .. IPDENON .. '/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FOFF" &'
os.execute(play)
end
if devicechanged[DEV] then
NewLevel = otherdevices_svalues[DEV]
if NewLevel ~= "Off" and NewLevel ~= "0" then
if tonumber(NewLevel) > MAXLEVEL then --volume maxlevel
NewLevel = MAXLEVEL
end
SendLevel = NewLevel - 80 --79.5
os.execute ("curl http://" .. (IPDENON) .. "/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/" .. (SendLevel))
end
end
return commandArray
The only thing i dont understand is the code:
SendLevel = NewLevel - 80 --79.5
I think i can change this by SendLevel = NewLevel
I will try it out.. rest is working great with my denon!
My wife didnt understand how to operate the reciever and now she can with the domoticz app!
<script> (
commandArray = {}
IPDENON = '192.168.178.176'
IPTV = '192.168.178.13'
DEV='Denon aanuit'
MAXLEVEL=60
if devicechanged[DEV] == 'On' then
local play = 'curl --url "http://' .. IPDENON .. '/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FON" &'
os.execute(play)
ping_success=os.execute('ping -c1 ' .. IPTV)
if ping_success then
commandArray[1]={['Denon mode']='Set Level 20 AFTER 2'} -- set versterker op tv
commandArray[2]={['Denon mixer']='Set Level 10 AFTER 2'} -- set versterker op stereo
else
commandArray[1]={['Denon mode']='Set Level 10 AFTER 2'} -- set versterker op radio
commandArray[2]={['Denon zender']='Set Level 10 AFTER 2'} -- set radio zender sky
commandArray[3]={['Denon mixer']='Set Level 20 AFTER 2'} -- set versterker op multichannel stereo
end
elseif devicechanged[DEV] == 'Off' then
local play = 'curl --url "http://' .. IPDENON .. '/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FOFF" &'
os.execute(play)
end
if devicechanged[DEV] then
NewLevel = otherdevices_svalues[DEV]
if NewLevel ~= "Off" and NewLevel ~= "0" then
if tonumber(NewLevel) > MAXLEVEL then --volume maxlevel
NewLevel = MAXLEVEL
end
SendLevel = NewLevel - 80 --79.5
os.execute ("curl http://" .. (IPDENON) .. "/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/" .. (SendLevel))
end
end
return commandArray
Raspberry (raspbian on rpi 3) , Domoticz Beta, dzVents , RFXtrx433e, P1, Hue, Yeelight, Zwave+, X10, ESP(easy), MQTT,Weather Underground, System Alive Checker, Domoticz Remote Server to RPI with Google Assistant,
Jablotron connection, Ikea
Jablotron connection, Ikea
-
- Posts: 1
- Joined: Saturday 22 July 2017 19:09
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Denon AV Reciver - plugin
Hey guys!
First of all, thanks for all the hard work. It's great to see so many people spending their free time to build all of this.
I was wondering if anyone made any further progress with this project. I've followed the wiki page (https://www.domoticz.com/wiki/Denon) and all of it seems to work fine. I still have the 'issue' that was discussed earlier with the volume changes back to 55 when you change it. I've read the topic but i'm not sure how i'm able to fix it because of the amounts of code. Is it possible to update the wiki page or something?
First of all, thanks for all the hard work. It's great to see so many people spending their free time to build all of this.
I was wondering if anyone made any further progress with this project. I've followed the wiki page (https://www.domoticz.com/wiki/Denon) and all of it seems to work fine. I still have the 'issue' that was discussed earlier with the volume changes back to 55 when you change it. I've read the topic but i'm not sure how i'm able to fix it because of the amounts of code. Is it possible to update the wiki page or something?
-
- Posts: 2
- Joined: Saturday 15 April 2017 22:52
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Denon AV Reciver - plugin
Yes with http you can, simply add in the URL (or in the message body if you're using POST) &ZoneName=ZONE2piokuc wrote:Hi
Did you know how create virtual device in Domoticz to set for Zone 1 and other to Zone 2 SLEEP TIME in DENON AVR-X2100W ?
You can also set MAINZONE to this value (&ZoneName=MAINZONE) to explicitely say that you are working on zone 1 (usefull if you use a parameter to set the zone)
For instance if you want to set MPLAY source for zone 2:
Code: Select all
http://DENONIP/MainZone/index.put.asp?cmd0=PutZone_InputFunction/MPLAY&ZoneName=ZONE2
-
- Posts: 2
- Joined: Thursday 19 October 2017 20:50
- Target OS: Linux
- Domoticz version: Beta
- Location: Lublin, PL
- Contact:
Re: Denon AV Reciver - plugin
Hello there,
First of all thanks for the nice work. I'm using event script and bash script as described here: https://www.domoticz.com/wiki/Denon , with my Denon AVR 1100X however there is one thing that I don't get...
When you switch off device using "DENON_SOURCE" switch from defined source - for example "DVD" to 'Off' and you would like to turn in on again to the same source ie. "DVD" - it's won't work. So for example if your Denon was switched off when being on 'dvd' state, it works when you switch it back to 'AUX1' but it doesn't when you try to switch to the last input source (dvd).
The workaround is to switch it to another state before "off" and then switch to the different state to be "on" - then it works.
Anyone had this problem ? and anyone have a patch for this ?
First of all thanks for the nice work. I'm using event script and bash script as described here: https://www.domoticz.com/wiki/Denon , with my Denon AVR 1100X however there is one thing that I don't get...
When you switch off device using "DENON_SOURCE" switch from defined source - for example "DVD" to 'Off' and you would like to turn in on again to the same source ie. "DVD" - it's won't work. So for example if your Denon was switched off when being on 'dvd' state, it works when you switch it back to 'AUX1' but it doesn't when you try to switch to the last input source (dvd).
The workaround is to switch it to another state before "off" and then switch to the different state to be "on" - then it works.
Anyone had this problem ? and anyone have a patch for this ?
-
- Posts: 7
- Joined: Tuesday 02 January 2018 19:43
- Target OS: NAS (Synology & others)
- Domoticz version: 4.9992
- Location: Harderwijk, the Netherlands
- Contact:
Re: Denon AV Reciver - plugin
Hi, I have found the script very useful, but was missing source names for the other sources.
I am using an AVR2300W, which has some extra sources.
Because it has to be the very exact names, I searched and found an RS232 coding with Source names:
PHONO
CD
TUNER
DVD
BD
TV
SAT/CBL
DVR
GAME
V.AUX
DOCK
HDRADIO (AVR-3311-CI model Only)
IPOD
NET/USB
FLICKR
FAVORITES
IRADIO
SERVER
USB/IPOD
I am using an AVR2300W, which has some extra sources.
Because it has to be the very exact names, I searched and found an RS232 coding with Source names:
PHONO
CD
TUNER
DVD
BD
TV
SAT/CBL
DVR
GAME
V.AUX
DOCK
HDRADIO (AVR-3311-CI model Only)
IPOD
NET/USB
FLICKR
FAVORITES
IRADIO
SERVER
USB/IPOD
Synology DS216+ & Domoticz as a Package (Jadahl)
connected:
Denon AVR2200W
Panasonic TX-L47ET60B
Doorbell Action
Several KAKU Action Flamingo's
Ali-Express WiFi cam
Ali-Express WiFi PTZ cam (soon)
Ali-Express PIR's
IKEA Trådfri
connected:
Denon AVR2200W
Panasonic TX-L47ET60B
Doorbell Action
Several KAKU Action Flamingo's
Ali-Express WiFi cam
Ali-Express WiFi PTZ cam (soon)
Ali-Express PIR's
IKEA Trådfri
Re: Denon AV Reciver - plugin
hi,
great stuff.
i have an denon avr x2400h and it won't work.
can somebody tell me what commands i have to use?
when i try to check some codes with firefox i only get Error 403: Forbidden Access Forbidden.
and where i have to put the xml file exactly?
great stuff.
i have an denon avr x2400h and it won't work.
can somebody tell me what commands i have to use?
when i try to check some codes with firefox i only get Error 403: Forbidden Access Forbidden.
and where i have to put the xml file exactly?
-
- Posts: 612
- Joined: Wednesday 07 August 2013 19:09
- Target OS: -
- Domoticz version:
- Location: UK
- Contact:
Re: Denon AV Reciver - plugin
This wont work with the 2016 onwards AVR's as Denon have stopped access to the Web Control API. I have just updated to a X3400 from an X2000 so its broken for me also. No sure how to fix it.
-
- Posts: 1
- Joined: Saturday 02 January 2021 18:55
- Target OS: Windows
- Domoticz version:
- Contact:
Re: Denon AV Reciver - plugin
The web control API is still there, but has been moved to port 8080. See https://github.com/scarface-4711/denona ... -354880648
I've successfully used http://<IP>:8080/goform/formiPhoneAppPower.xml?1+PowerStandby on my X4400H as the plugin (which uses Telnet) loses sync with the status of the receiver.
Who is online
Users browsing this forum: No registered users and 1 guest