10 sty 2016

Obsługa amplitunera Denon w Domoticz

W związku z różnymi pytaniami dotyczącymi sposobu obsługi amplitunerów firmy Denon (np. serii X2000) wyposażonych w złącze ethernet, czyli możliwych do sterowania przez sieć wewnętrzną lub internet (w zależności od konfiguracji) postanowiłem przygotować instrukcję krok po kroku.



1. W Hardware/Sprzęt dodajemy taki Dummy hardware o nazwie Pomocnicze.

2. Dla tego sprzętu dodajemy Dummy switch na ekranie Sprzęt.


3. Dla tego switcha na ekranie Urządzenia/Devices klikamy zieloną ikonę dodając go do Switches/Przełączników.





4. Przechodzimy na ekran Przełączników i klikamy edycję przełącznika.

5. Dla on/off zmieniamy typ na Dimmer, nazywając go Denon. Dla tego przełącznika tworzymy skrypt lua o zawartości, jak podałem i nazywam go script_device_Denon.lua i umieszczam w domoticz/scripts/lua:


commandArray = {}

DomDevice = 'Denon'
IP = '<denon_ip>'
Port = '80'

 if devicechanged[DomDevice] then
      DomValue = otherdevices_svalues[DomDevice];
      print ("Start Current DomValue is: " .. DomValue);
   if(devicechanged[DomDevice]=='Off') then DomValue = 0;
   print ("Turning off " .. DomDevice);
   runcommand = "curl http://" .. (IP) .. "/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FOFF";
   print (runcommand);
   os.execute(runcommand);
  return commandArray
   else
    if(devicechanged[DomDevice]=='On') then print ("Turning on " .. DomDevice);
    runcommand = "curl http://" .. (IP) .. "/MainZone/index.put.asp?cmd0=PutZone_OnOff%2FON";
    print (runcommand);
    os.execute(runcommand);
    return commandArray
    else
     DomValue = otherdevices_svalues[DomDevice];
     print ("In else current DomValue is: " .. DomValue);
    end
   end
   if DomValue==nil then DomValue=100 end
   if CalcValue==nil then CalcValue=0 end
   CalcValue = 80*DomValue/32-80;
   print ("Value received from Domoticz was " .. (DomValue) .." ");
   print ("Calculated value for Denon is " .. (CalcValue) .." ");
   runcommand = "curl 10 http://" .. (IP) .. "/MainZone/index.put.asp?cmd0=PutMasterVolumeSet/" .. (CalcValue);
   print (runcommand);
   os.execute(runcommand);
 end
return commandArray


Nie wpisujemy żadnych wartości dla akcji włączenia, ani wyłączenia.


6. Dla n-ka/RPI nazywam go Denon - n-ka, zmieniamy mu typ na Media Player (lub PC lub inny, dowolny) i ustawiam akcje ON i OFF:
ON: 


http://<denon_ip>/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FBD


OFF: 


http://<denon_ip>/MainZone/index.put.asp?cmd0=PutZone_InputFunction%2FSAT%2FCBL
W ten sposób, włączając dany przełącznik, przełączamy wejście ze standardowego SAT/CBL, czyli głównego wejścia, które jest ustawione także jako pass through, czyli przesyła sygnał przy wyłączonym amplitunerze na dekoder, na wejście, do którego wpięty jest odtwarzać mediów, w moim przypadku Raspberry Pi z OSMC, czyli genialnym rozwiązaniem bazującym na KodiTV (temat na osobny wpis).


7. Możemy stworzyć dodatkowo Scenę, do której dodajemy akcje poszczególnych urządzeń, np. zasunięcie rolet, włączenie Denona, zmiana źródła, itp.