dzvents docker and script
Posted: Friday 28 May 2021 14:16
I have installed docker and use docker for
- mysql
- phpadmin
- mqtt
- domoticz
- dashticz
- nodered
- apache
All seems to work ok, except one script (for now). MY denon script works for years but after docker it, it wont work and no error with a line!
Any one a suggestion, i only send a curl to my denon...
- mysql
- phpadmin
- mqtt
- domoticz
- dashticz
- nodered
- apache
All seems to work ok, except one script (for now). MY denon script works for years but after docker it, it wont work and no error with a line!
Any one a suggestion, i only send a curl to my denon...
Code: Select all
2021-05-28 14:09:28.661 2021-05-28 14:09:28. Scriptname: DZ_denon, Unknown trigger. DENON setting aangepast met ingestelde waarde: STEREO
2021-05-28 14:09:28.661 2021-05-28 14:09:28. Scriptname: DZ_denon, Unknown trigger. DENON setting aangepast met ingestelde waarde: 010440
2021-05-28 14:09:28.661 2021-05-28 14:09:28. Scriptname: DZ_denon, Unknown trigger. DENON setting aangepast met ingestelde waarde: TUNER
2021-05-28 14:09:28.661 2021-05-28 14:09:28. Scriptname: DZ_denon, Unknown trigger. DENON: curl http://192.168.20.26/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/-70
2021-05-28 14:09:28.661 2021-05-28 14:09:28. Scriptname: DZ_denon, Unknown trigger. DENON setting aangepast met ingestelde waarde: -70
local scriptVar = 'DenonCustomEvents'
return {
on = {
devices = {'denon*' },
customEvents = {scriptVar},
},
data = {lastVolumeState = {initial = '',},},
execute = function(dz, item,info)
_G.logLevel = dz.helpers.get_logtype(dz) -- dz.log('debug test',dz.LOG_DEBUG) this will only make it to the log when LOG_DEBUG is set AND dz.log('blabla',dz.LOG_FORCE) -- this will allways make it tp the log
_G.logMarker = _G.moduleLabel -- marker wordt scriptnaam, _G.logMarker = info.scriptName is idem
local messageTable = {} -- log alles, 0 = niets, 1 dom, 2 global, 3 alles... evt per regel ook in te regelen
-- HIER START DE EXECUTIE
local ipdenon = '192.168.20.26'
local denon_cmd_1 = 'curl http://' .. ipdenon .. '/MainZone/index.put.asp?cmd0=' -- basiscommando1
local denon_cmd_2 = 'curl http://' .. ipdenon .. '/Tuner/TUNER/index.put.asp?cmd0=' -- basiscommando2
local denon_volume = dz.devices('denon_volume')
local denon_source = dz.devices('denon_source')
local denon_radio = dz.devices('denon_radio')
local denon_mixer = dz.devices('denon_mixer')
local SourceToSet_volume= -50 -- volume, zie ook LET OP!
local SourceToSet_source= 'TUNER' -- source receiver
local SourceToSet_freq = '009540' -- frequency
local SourceToSet_mixer = 'STEREO' -- mixer
--local sign = '+' -- als je geen + in een var kan opnemen --' .. sign ..' DIT LIJKT INEENS NIET MEER NODIG ?
local volume_states = { uit=SourceToSet_volume, fluister = SourceToSet_volume-20, zacht = SourceToSet_volume-10, medium = SourceToSet_volume, hard = SourceToSet_volume+10, extra = SourceToSet_volume+20,}
local source_states = { Radio = 'TUNER', Tv = 'SAT/CBL', Sonos = 'CD', Kodi = 'MPLAY', Pc = 'GAME', Cast = 'BD'}
local radio_states = { Skyradio = '010440',Qmusic = '009540', Veronica = '009490', ['538'] = '010500',West = '008890' }
local mixer_states = { movie = 'MOVIE', stereo = 'STEREO', ['mch stereo'] = 'MCH+STEREO', ['dolby digital'] = 'DOLBY+DIGITAL', music = 'MUSIC', game = 'GAME', ['pure direct'] = 'PURE+DIRECT',
direct = 'DIRECT', standaard = 'STANDARD', simulation = 'SIMULATION', auto = 'AUTO', left='LEFT', ['video game'] = 'VIDEO+GAME',['rock arena'] = 'ROCK+ARENA' }
local function get_waarde(dev_state, waardebereik, defvalue ) -- haal waarde op voor een dev_state, doorzoek een waardebereik en geef bij geen hit defvalue terug
for i_state, i_waarde in pairs(waardebereik) do
if i_state == dev_state then
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON setting aangepast met ingestelde waarde: ' .. tostring(i_waarde),30)
return i_waarde
end
end
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON setting bestaat niet ! Aangepast met defaultwaarde: ' .. tostring(defvalue),30)
return defvalue
end
local function activeer_setting() -- settings zetten
os.execute (denon_cmd_1 .. 'PutMasterVolumeSet/' .. get_waarde(denon_volume.state,volume_states , SourceToSet_volume)); -- Denon volume
vartmp = denon_cmd_1 .. 'PutMasterVolumeSet/' .. get_waarde(denon_volume.state,volume_states , SourceToSet_volume);
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON: ' .. vartmp,10)
os.execute (denon_cmd_1 .. 'PutZone_InputFunction%2F' .. get_waarde(denon_source.state,source_states , SourceToSet_source)); -- Denon wordt op source gezet
os.execute (denon_cmd_2 .. 'PutTunerFrequency%2F' .. get_waarde(denon_radio.state,radio_states , SourceToSet_freq)); -- Denon radio zender wordt gezet
os.execute (denon_cmd_1 .. 'PutSurroundMode%2F' .. get_waarde(denon_mixer.state,mixer_states , SourceToSet_mixer) ); -- Denon mixer wordt gezet
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON(AAN) is ingesteld met volume(' .. string.upper(denon_volume.state) .. '), Source(' .. string.upper(denon_source.state) .. '), Zender(' .. string.upper(denon_radio.state) .. '), Mixer(' .. string.upper(denon_mixer.state) .. ')' ,30)
end
if item.isDevice then
if item.name == 'denon_volume' then
if item.nValue == 0 then -- numerieke waarde van de state van denon_volume (0=off, 1 = on)
dz.data.lastVolumeState = 'Off'
os.execute (denon_cmd_1 .. 'PutZone_OnOff%2FOFF' ); -- zet denon uit
dz.helpers.globalMessage2(dz,item,info,messageTable,'add',' DENON(UIT), denon is uitgezet',30)
else -- denon_volume staat aan
if dz.data.lastVolumeState == 'Off' then -- als vorige waarde off was
dz.data.lastVolumeState = item.levelName -- vorige_state wordt op aan gezet!
os.execute (denon_cmd_1 .. 'PutZone_OnOff%2FON' ) -- zet denon aan, check de previous waarde als die uit was dan aanzetten anders niet, dan alleen setings doorvoeren !
vartmp2 = denon_cmd_1 .. 'PutZone_OnOff%2FON';
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON: ' .. vartmp2,30)
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON(AAN), denon is voor ze zekerheid aangezet',30)
dz.emitEvent(scriptVar).afterSec(5)
else -- vorige waarde was een volume waarde, dus stond al aan!
dz.emitEvent(scriptVar)
end
end
else
if dz.devices('denon_volume').state == 'uit' then
denon_volume.switchSelector('medium').silent() -- LET OP! als de denon uit staat, heeft volume de waarde uit, dus zal bij waarde ophalen waarde bij uit worden gepakt. De selector moet dan ook op bijpassende waarde worden gezet en dat is medium
os.execute (denon_cmd_1 .. 'PutZone_OnOff%2FON' ); -- zet denon aan
vartmp3 = denon_cmd_1 .. 'PutZone_OnOff%2FON';
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON: ' .. vartmp3,30)
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON(AAN), denon is aangezet door een ander denon onderdeel',30)
dz.emitEvent(scriptVar).afterSec(5)
else
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' DENON(AAN), denon stond al aan',30) -- overtollig, dus op 0 gezet
dz.emitEvent(scriptVar) -- mag gelijk worden uitgevoerd, staat al aan
end
end
elseif item.isCustomEvent then
activeer_setting()
end
dz.helpers.globalMessage2(dz,item,info,messageTable,'chg') -- dump
end
}