SQLite format 3@ 5@-$* +tableКаналыВходаВыходаУзлаДереваШаблоновКаналыВходаВыходаУзлаДереваШаблоновCREATE TABLE [КаналыВходаВыходаУзлаДереваШаблонов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодУзла] INTEGER NULL , [ТипВходовВыходов] INTEGER NULL , [Последовательность] VARCHAR(2048) NULL , [ТипВнешнихДанных] INTEGER NULL , [Имя] VARCHAR(150) NULL, [Описание] VARCHAR(2048) NULL)^YYtableДеревоУзловШаблоновДеревоУзловШаблоновCREATE TABLE [ДеревоУзловШаблонов] ( [Код] INTEGER NOT NULL PRIMARY KE        Q }g;% !  Host Input !  Host Input !  Host Input ! Host Input ! Host Input ! Host Input ! Host Input ! Host Input!  Host Input!  Host Input!  Host Input!  Host Inp !  Host Input !  Host Input !  Host Input  Virtual "gR=" !  Parameters   Port   Host   Password   Login !  Parameters -   Port8060( 7 HostEnter IP adress here. ^YYtableДеревоУзловШаблоновДеревоУзловШаблоновCREATE TABLE [ДеревоУзловШаблонов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодПредка] INTEGER NULL )* +tableКаналыВходаВыходаУзлаДереваШаблоновКаналыВходаВыходаУзлаДереваШаблоновCREATE TABLE [КаналыВходаВыходаУзлаДереваШаблонов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодУзла] INTEGER NULL , [ТипВходовВыходов] INTEGER NULL , [Последовательность] VARCHAR(2048) NULL , [ТипВнешнихДанных] INTEGER NULL , [Имя] VARCHAR(150) NULL, [Описание] VARCHAR(2048) NULL) D@&99gtableТипыКаналовТипыКаналовCREATE TABLE [ТипыКаналов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(50) NULL )MMtableПараметрыКаналовПараметрыКаналовCREATE TABLE [ПараметрыКаналов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодКанала] INTEGER NULL , [КодТипаПараметра] INTEGER NULL , [ПорядковыйНомер] INTEGER NULL , [Имя] VARCHAR(50) NULL , [ЗначениеПоУмолчанию] VARCHAR(2048) NULL, [Видимость] INTEGER NULL , [Используемость] INTEGER NULL , [Описание] VARCHAR(2048) NULL )QQytableТипыВходовВыходовТипыВходовВыходовCREATE TABLE [ТипыВходовВыходов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодНаправления] INTEGER NULL , [КодТипКанала] INTEGER NULL ) xph`XPH@80(                    GC SmartBus Relay Virtual Command Sensor Infra RedRS422RS485RS232UDPTCP %Input/Output OutputInput   c&99gtableТипыКаналовТипыКаналовCREATE TABLE [ТипыКаналов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(50) NULL )=IIutableТипыНаправленийТипыНаправлений CREATE TABLE [ТипыНаправлений] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(50) NULL )WEE1tableТипыПараметровТипыПараметров CREATE TABLE [ТипыПараметров] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(50) NULL , [Размер] INTEGER NULL )11_tableТипыУзловТипыУзлов CREATE TABLE [ТипыУзлов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(50) NULL )  fixed string int32 int24 int16 int8  3MultifunctionDevice Network%FolderDeviceTag Command Device Gateway CategoryHost5A!b@@  YControlInput Action: playpause, pause, play, stop, previous, next, shuffle, repeat, power, rev, fvd Input Param for shuffle: on, off, cycle Input Param for repeat: one, all, none, cycle Input Param for power: on, standby ) TransportState ! PowerState  TotalTime # ElapsedTime  Volume*1 Input Second Param#Input Param%Input ActionZ! }NavigationInput Action: left, right, back, select, home, down, up= KVolumeInput Action: down, up, slider 1;RokuiRidium mobile LtdThis is a driver for Roku. In this driver you must create a command yourself. You have a feedback Input Action and InputParam and when you create a command you muste write parametres that you need in that feedbacks.F4 ,,(X UUtableУзлыДереваШаблоновУзлыДереваШаблонов CREATE TABLE [УзлыДереваШаблонов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодДереваУзлов] INTEGER NULL , [КодТипаУзла] INTEGER NULL , [Имя] VARCHAR(50) NULL , [КодТипаКонтроллера] INTEGER NULL, [НаправлениеДанных] INTEGER NULL, [Создатель] VARCHAR(256) NULL, [Описание] VARCHAR(2048) NULL, [ДатаВремя] REAL NULL, [КодОписания] INTEGER NULL, [Версия] INTEGER NULL, [ФункциональныйТип] INTEGER NULL, [Производитель] INTEGER NULL, [ИмяТолькоДляЧтения] INTEGER NULL)v MM_tableШаблоныЗамещенияШаблоныЗамещенияCREATE TABLE [ШаблоныЗамещения] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодКанала] INTEGER NULL , [КодЗамещения] INTEGER NULL )  xtk\M<0x DuoTecno Bticino%Clipsal Gate Clipsal Lutron%BAOS 771/772 Crestron BAOS 7703Helvar Net Internal!Helvar NetXBMC#Custom HTTP  EPSNET # HDL-BUS Pro  Helvar AV  Domintell  X10 -Shturman D12SS20)Shturman XXV07'Custom DriverKNX!MODBUS RTU%MODBUS ASCII!MODBUS TCP AXICOAMX XFdX ))MtableСкриптыСкриптыCREATE TABLE [Скрипты] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(255), [Версия] INTEGER NULL , [Комментарий] VARCHAR(1024), [Скрипт] BLOB NULL, [Пароль] VARCHAR(255) NULL)! qqmtableСвязьУстройствСоСкриптамиСвязьУстройствСоСкриптамиCREATE TABLE [СвязьУстройствСоСкриптами] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодУзла] INTEGER NULL , [КодСкрипта] INTEGER NULL); --)tableОписаниеОписаниеCREATE TABLE [Описание] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(256) NULL , [Значение] VARCHAR(256) NULL)7 MMatableТипыКонтроллеровТипыКонтроллеровCREATE TABLE [ТипыКонтроллеров] ( [Код] INTEGER NOT NULL, [Имя] VARCHAR(50) NULL )  ReadOnly0 Version2!Date2012.10.10NameRoku.db  A t Rokuvar Roku_main = function(DeviceName) { //------------------------------------------------------- // Driver Data //------------------------------------------------------- this.DriverName = DeviceName; this.device; this.Online = false; this.param1 = ""; this.param2 = ""; this.param3 = ""; this.Msg = ""; this.error = false; this.volume = 0; this.TransportState = ""; this.ElapsedTime = ""; this.TotalTime = ""; this.PowerState = ""; //------------------------------------------------------- // Device Initialization //------------------------------------------------------- function initialization() { this.device = IR.GetDevice(this.DriverName); var that = this; //-----------------------------------------------------,  ddxK+PUUtableФункциональныеТипыФ ii{tableДополнительныеПараметрыДополнительныеПараметрыCREATE TABLE [ДополнительныеПараметры] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодУзла] INTEGER NULL, [НеУчитыватьХидер] INTEGER NULL)nQQGtableКаналыПредкиУзловКаналыПредкиУзловCREATE TABLE [КаналыПредкиУзлов] ( [Код] INTEGER NOT NULL PRIMARY KEY, [КодУзла] INTEGER NULL, [КодКанала] INTEGER NULL)PUUtableФункциональныеТипыФункциональныеТипыCREATE TABLE [ФункциональныеТипы] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(255) NULL )2AAotableПроизводителиПроизводителиCREATE TABLE [Производители] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Имя] VARCHAR(255) NULL )          O{s_QG8*oeO-Streaming PlayerIPod 3Home Theater System%TV/VCR Combo {Soundbarx-TV/DVD/VCR Combov-Multizone Systemu'DTV Convertert%TV/DVD Combol#Set Top Boxd'DVD/VCR ComboD+Receiver/Preamp >Subwoofer 8!Laser Disc*Tuner AV System+Video ProcessorAux Switcher Satellite Blu RayTV VCR Projector 'Media Manager LightingGameDVDCableCD+}ul_QH<5) ncYOD:( vkaWN=3%W%Slim Devices VPS Audio UBel Canto TTrinnov QSaaria PLumagenOB&KNNADMVuDuLArcam KOptoma JParasoundIKrellG%KaleidescapeFRokuDThetaCGefen BSirius @!Lite Touch ?McIntosh<HAI;Vutec :Emerson9Apple 8Velodyne7Epson 5Halcro4Aton2BenQ1Elan 0Russound/DLO.)Channel Vision-NuVo,'Onkyo/Integra+Somfy *Anthem)Runco(Niles 'Pantel&'Harmon Kardon#Bose"DVDO !!Netstreams Tivo%Oppo Digital HitachiPolk Fujitsu Vantage#Key DigitalJVC Toshiba Yamaha'Pioneer Elite SamsungLG MarantzDish Panasonic Motorola Sony Sky Sharp 1Scientific Atlanta Pioneer Philips !Mitsubishi Microsoft Lutron Escient *f)%(W       ==$dgYindexДеревоУзловШаблонов_index1ДеревоУзловШаблоновCREATE INDEX [ДеревоУзловШаблонов_index1] on [ДеревоУзловШаблонов] ([КодПредка] DESC)b ' indexКаналыВходаВыходаУзлаДереваШаблонов_index1КаналыВходаВыходаУзлаДереваШаблоновCREATE INDEX [КаналыВходаВыходаУзлаДереваШаблонов_index1] on [КаналыВходаВыходаУзлаДереваШаблонов] ([КодУзла] DESC)t '1indexКаналыВходаВыходаУзлаДереваШаблонов_index2КаналыВходаВыходаУзлаДереваШаблоновCREATE INDEX [КаналыВходаВыходаУзлаДереваШаблонов_index2] on [КаналыВходаВыходаУзлаДереваШаблонов] ([ТипВходовВыходов] DESC)                     sB#Z[MindexПараметрыКаналов_index1ПараметрыКаналовCREATE INDEX [ПараметрыКаналов_index1] on [ПараметрыКаналов] ([КодТипаПараметра] DESC)L[M}indexПараметрыКаналов_index2ПараметрыКаналов CREATE INDEX [ПараметрыКаналов_index2] on [ПараметрыКаналов] ([КодКанала] DESC)^_QindexТипыВходовВыходов_index1ТипыВходовВыходов!CREATE INDEX [ТипыВходовВыходов_index1] on [ТипыВходовВыходов] ([КодНаправления] DESC)Z_QindexТипыВходовВыходов_index2ТипыВходовВыходов"CREATE INDEX [ТипыВходовВыходов_index2] on [ТипыВходовВыходов] ([КодТипКанала] DESC)  F|vpjd^XRLF      F|vpjd^XRLF                        8A)'indexСкрfcU!indexУзлыДереваШаблонов_index1УзлыДереваШаблонов#CREATE INDEX [УзлыДереваШаблонов_index1] on [УзлыДереваШаблонов] ([КодДереваУзлов] DESC)`cUindexУзлыДереваШаблонов_index2УзлыДереваШаблонов%CREATE INDEX [УзлыДереваШаблонов_index2] on [УзлыДереваШаблонов] ([КодТипаУзла] DESC)A)'indexСкриптыИмя_indexСкрипты&CREATE INDEX [СкриптыИмя_index] on [Скрипты] ([Имя] DESC)EYMqindexТипыКонтроллеров_indexТипыКонтроллеров'CREATE UNIQUE INDEX [ТипыКонтроллеров_index] on [ТипыКонтроллеров] ([Код] DESC)       Roku d|vpjd       I}ul_QH<5) ncYOD:( vkaWN=3%W%Slim Devices VPS Audio UBel Canto TTrinnov QSaaria PLumagenOB&KNNADMVuDuLArcam KOptoma JParasoundIKrellG%KaleidescapeFRokuDThetaCGefen BSirius @!Lite Touch ?McIntosh<HAI;Vutec :Emerson9Apple 8Velodyne7Epson 5Halcro4Aton2BenQ1Elan 0Russound/DLO.)Channel Vision-NuVo,'Onkyo/Integra+Somfy *Anthem)Runco(Niles 'Pantel&'Harmon Kardon#Bose"DVDO !!Netstreams Tivo%Oppo Digital HitachiPolk Fujitsu Vantage#Key DigitalJVC Toshiba Yamaha'Pioneer Elite SamsungLG MarantzDish Panasonic Motorola Sony Sky Sharp 1Scientific Atlanta Pioneer Philips !Mitsubishi Microsoft Lutron Escient DirecTVDenon DzpfXPE9, {odOC:0! j^OG>+ %Symphonic$Sanyo #Trutech "Shinybow!Plex Homecast Foxtel Beyonwiz XantechNexus#Video Storm'Baumann MeyerNECHP Sherbourn Zektor+Fusion Research Wyrestorm Sherwood Netgear Atlona+Audio Authority Avocation NuVision Vaux 1Hunter Douglas/ESI OmnimountADA NeothingsPaceX10 Planar+Cambridge AudioRotel TV OneChief ~Magnavox}FunaizNaimyViorexSoyo uNorcentt1Stewart Filmscreen sElement rAudiovoxq%Apex DigitalpAOCo%Westinghouse nViewSonic mSylvania lSceptre kSansuiiRCA hHannspreegHaierfDynexeCoby dInsignia cZenith bBroksonicaVizio `Olevia _Memorex]B&W \Sunfire [ClasseZAdcom XMeridian >wl]I?'yj^QB5* vl`W@3%  fDaewooe'Audio ControldAstroc1Digital ProjectionbZune aAlgolith`Konka_)Channel Master ^Philco ]Venturer\Humax [Topfield ZKenwoodY/Kenwood SovereignXMBL WFellerVDuneULoewe TPoloroid SZanden RSchmartz QStrong P!Soundgraph OPsycloneM+Healing DigitalLCraigKI Net JZinwell ISunkeyG'DigitalstreamFArtec EAirlink DAccess HD CLexicon BMaxent APanamorph @Insteon?%Popcorn Hour>Olive=-Logitech Harmony<)PS3 Toothfairy;IR2BT:-Dream Multimedia 9Envision8Nyko 7Panarex5Teac4Sim231Request Mulitmedia2TvIX1)Swann Security 0Monoprice/Dilog.Linn -!Simm Audio ,Cineslide +!Proficient *Primare)'Sanus Systems(#CLO Systems '!Cary Audio &Sunbright _dSI3!vl_ ProximaNiko Replay Snap AV !Pixelmagic InFocus Sonance Coship~Haute}Kaon|Amino{KEF zSangean yProscan xI Live wKlipschv%Speakercraftt-Boston AcousticssJWinr#Proscan RCAq=Cisco/Scientific AtlantapI Luv oAragonnKLHmGPXl+Western Digital kPansat jD-Link iCoolsat hVidikron gBryston--- // Device to Online //------------------------------------------------------- IR.AddListener(IR.EVENT_ONLINE, that.device, function() { that.Online = true; // Get Volume that.device.Send(['GetVolume']); // GetTransportState that.device.Send(['GetTransportState']); // GetElapsedTime that.device.Send(['GetElapsedTime']); // GetTotalTime that.device.Send(['GetTotalTime']); // GetPowerState that.device.Send(['GetPowerState']); }, that); // End Device to Online //------------------------------------------------------- // Device to Offline //------------------------------------------------------- IR.AddListener(IR.EVENT_OFFLINE, that.device, function() { that.Online = false; }, that); // End Device to Offline //------------------------------------------------------- // Feedback List.en //------------------------------------------------------- IR.AddListener(IR.EVENT_RECEIVE_TEXT, that.device, function(text) { //IR.Log("receive = " + text); var cmd = text; // Parse Volume example: GetVolume: 57 if (cmd.indexOf('GetVolume:') > 0){ that.volume = cmd.slice(12); IR.SetVariable("Drivers." + that.DriverName + ".Volume", that.volume); } // Parse GetTransportState example: GetTransportState: Pause if (cmd.indexOf('GetTransportState:') > 0){ that.volume = cmd.slice(19); IR.SetVariable("Drivers." + that.DriverName + ".TransportState", that.TransportState); } // Parse GetElapsedTime example: GetElaspedTime: 0:00:55 if (cmd.indexOf('GetElaspedTime:') > 0){ that.volume = cmd.slice(17); IR.SetVariable("Drivers." + that.DriverName + ".ElapsedTime", that.ElapsedTime); } // Parse GetTotalTime exam/ple: GetTotalTime: 0:03:15 if (cmd.indexOf('GetTotalTime:') > 0){ that.volume = cmd.slice(15); IR.SetVariable("Drivers." + that.DriverName + ".TotalTime", that.TotalTime); } // Parse GetPowerState example: GetPowerState: standby if (cmd.indexOf('GetPowerState:') > 0){ that.volume = cmd.slice(16); IR.SetVariable("Drivers." + that.DriverName + ".PowerState", that.PowerState); } }, that); // End Feedback Listen //------------------------------------------------------- // Command Activate //------------------------------------------------------- IR.AddListener(IR.EVENT_CHANNEL_SET,that.device,function(name) { that.Msg = ""; that.error = false; that.param1 = IR.GetVariable("Drivers."+that.DriverName+".Input Action").toLowerCase(); that.param2 = IR.GetVariable("Drivers."+that.DriverName+".Input Param"); that.param3 = IR.G0etVariable("Drivers."+that.DriverName+".Input Second Param"); switch(name) { case "Volume": Volume(that.param1); break; case "Control": Control(that.param1, that.param2, that.param3); break; case "Navigation": Navigation(that.param1); break; }; }, that); // End Command Device //------------------------------------------------------- // Send Device //------------------------------------------------------- function Navigation(action) { switch(action) { case "left": that.Msg = 'Left'; break; case "right": that.Msg = 'Right'; break; case "back": that.Msg = 'Back'; break; case "select": that.Msg = 1'Select'; break; case "home": that.Msg = 'Home'; break; case "down": that.Msg = 'Down'; break; case "up": that.Msg = 'Up'; break; default: IR.Log("Error in action! There is no such command: " + action); that.error = true; break; }; if (that.error == false) that.device.Send([that.Msg]); }; // End Navigation function Volume(action) { switch(action) { case "down": if (that.volume > 0) { that.volume -= 1; that.Msg = 'SetVolume '+ that.volume; } else { that.error = true; } IR.SetV2ariable("Drivers." + that.DriverName + ".Volume", that.volume); break; case "up": if (that.volume < 100) { that.volume += 1; that.Msg = 'SetVolume '+ that.volume; } else { that.error = true; } IR.SetVariable("Drivers." + that.DriverName + ".Volume", that.volume); break; case "slider": that.volume = IR.GetVariable("Drivers." + that.DriverName + ".Volume"); that.Msg = 'SetVolume '+ that.volume; break; default: IR.Log("Error in action! There is no such command: " + action); that.error = true; break; }; if (that.error == false) that.device.Send([that.Msg]); }; // End Volume fun3ction Control(action, param, secondparam) { switch(action) { case "playpause": that.Msg = 'PlayPause'; break; case "pause": that.Msg = 'Pause'; break; case "play": that.Msg = 'Play'; break; case "stop": that.Msg = 'Stop'; break; case "previous": that.Msg = 'Previous'; break; case "next": that.Msg = 'Next'; break; case "shuffle": that.Msg = 'Shuffle' + " " + param; break; case "repeat": that.Msg = 'Repeat' + " " + param; break; case "power": that.Msg = 'Power' + " " + param + " " + secondparam; break; case "rev": that.Msg = 'Rev'; break; case "fvd": that.Msg = 'Fwd'; break; default: IR.Log("Error in action! There is no such command: " + action); that.error = true; break; }; if (that.error == false) that.device.Send([that.Msg]); }; // End Control IR.SetInterval(1000, function(){ // GetElapsedTime that.device.Send(['GetElapsedTime']); }, that); // End Refresh }; // End Device Initialization this.Init = initialization; }; //------------------------------------------------------- // User Device //------------------------------------------------------- var mydevice = new Roku_main("Roku"); mydevice.Init(); GGA!b@i1{RokuiRidium mobile LtdThis is a driver for Roku. In this driver you must create a command yourself. You have a feedback Input Action and InputParam and when you create a command you muste write parametres that you need in that feedbacks. You can reed protocol http://soundbridge.roku.com/documents/SoundBridgeRCPSpecification2-4.pdfFRoku 1;RokuiRidium mobile LtdThis is a driver for Roku. In this driver you must create a command yourself. You have a feedback Input Action and InputParam and when you create a command you muste write parametres that you need in that feedbacks.F& ControlInput Action: playpause, pause, play, stop, previous, next, shuffle, repeat, power, rev, fvd Input Param for shuffle: on, off, cycle Input Param for repeat: one, all, none, cycle Input Param for power: on, standby Input Second Param for power: yes, no dd>j= KVolumeInput Action: down, up, sliderZ! }NavigationInput Action: left, right, back, select, home, down, up%Input Action#Input Param*1 Input Second Param  Volume # ElapsedTime  TotalTime ! PowerState ) TransportState