Add your idea or search for answers in existing topics. The most popular ideas will be implemented faster!
+5
Voting

throwing custom errors with line numbers

r riksma 3 years ago in iRidium Script / AV and Driver scripts • updated by Oksana (expert) 2 years ago 5
It would be nice if I could show a line number when I throw an error in my own code.

for example, if I run this piece of code:

  try {
    if (typeof currentStyle[options.name] == 'undefined') {throw new Error("Unknown style name: " + options.name);}
    }
    catch (err) {
        throw new Error(err.lineNumber + " " + err.message);
    }


the following line is logged:

02-12-2015    13:28:03    Kernel.Info    192.168.253.102    [12-02-2015 13:28:04.000]  WARNING  Script exception: Error: undefined Unknown style name: menuLogo


When an Error is logged from iridium itself it looks like this:

02-12-2015    13:31:42    Kernel.Info    192.168.253.102    [12-02-2015 13:31:43.000]  WARNING  Script exception: ReferenceError: /var/mobile/Containers/Data/Application/0CE95966-BFE3-4352-B1E9-F38E3EB8963C/Library/Caches/iRidiumMobile/EveryDevice/ViewLibrary.js:185: erraaa


How can I get the file and line number as well?
It would be great if you could always show this information in the log if the Error is not caught.
+4
Under review

Driver for Bang&Olufsen BeoVision Avant TV

Dmitry Shulgin 2 years ago in iRidium Script / AV and Driver scripts • updated by Vyacheslav Belov 1 year ago 4

At the moment the driver is fully working for one TV. To continue working with it we need feedback from installers about its functionality.

You can participate only if you have a possibility to test this driver with a real working TV. If not you can vote for it to tell us if it is really needed.

This driver/interface fully copies the original GUI of B&O. It is made for easy inclusion of the driver into the comming iRidium lite. The interface is in Russian at the moment.

To take part in this test, send the following data at evg@elspace.spb.ru:

- your iPad HWID

- serial number of your BeoVision Avant

- your E-mail address

As an answer you will get a file with a trial project (iRidium and the driver) fully working for 1 month.

Please, post here all support tasks and feedback.

+4
Completed

Practical experience of making HTTP driver

Евгений Лешкив 2 years ago in iRidium Script / AV and Driver scripts • updated by Henry 4 months ago 3

This theme is based on iRidium DDK. Below is the example of making driver for almost any device that has a web interface.

To make a driver you will need the Device that is connected to your LAN and has static IP address and LAN sniffer on your PC (in my case it is WireShark).


1. Getting request for feedbacks of the Device

- start your browser

- start your sniffer

- go to the web page of your device (in my case 192.168.1.11) or update it

- in sniffer window you should now find request from your PC to the Device

This URI is needed for us request for getting feedback of device (feedback is all the data that is on selected page.

method: GET

URI: /MainZone/index.html


2. Getting feedback

in JS if you make a request:

var DEVICE = IR.GetDevice("Busch iNet Radio");

DEVICE.Send(['GET,/en/index.shtml']);

as the answer you will get full HTTP code of the page you were requesting.

JS getting feedback:

IR.AddListener(IR.EVENT_RECEIVE_TEXT, DEVICE, function(inText)

{IR.Log(inText);}

LOG:

<html>

<head>

<title>Internet-Radio</title>

<link href="/style/style.css" type="text/css"/>

</head>

<body >

.........

<legend>Volume</legend>

<p>

<input type="text" name="vo" size=5 maxlength=5 value="2" />  

..........

<legend>Currently playing</legend>

<p>

Station 5:

<p>

<input type="text" name="--" readonly size=70 maxlength=64 value="DI.fm | Vocal chillout" />

..........


3. Parsing feedback text

To get needed data you have to slice this text.

For volume it will be:

var volume3 = inText.slice(inText.indexOf("Volume", 0)+60,inText.indexOf("Volume", 0)+120);

//getting part of the text for volume
var volume2 = volume3.slice(volume3.indexOf("value=", 0)+7,volume3.indexOf("nbsp", 0)-6);

//getting value
var volume = parseFloat(volume2);

//making float from text

IR.SetVariable("Drivers."+DeviceName+".iNet_Volume",volume);

//writing to variable


The same for current station:

var station0_2 = inText.slice(inText.indexOf("Currently playing", 0)+30,inText.indexOf("Currently playing", 0)+250);
var station0 = station0_2.slice(station0_2.indexOf("value=", 0)+7,station0_2.indexOf("Add to TuneIn Presets", 0)-71);
IR.SetVariable("Drivers."+DeviceName+".iNet_Current station name",station0);


This should be done for every data you need.


4. How to get HTTP command from the page

The same way that described in #1 but instead of updating page you have to press needed button.

In my case it is:

method: GET

URI: /en/index.cgi?p1=+Play+

JS:

DEVICE.Send(['GET,/en/index.cgi?p1=+Play+']);

The only thing to do is to ling this with buttons.


5. Cicling request for feedback

Data should periodically be updated. To do this:

function Autorequest()
{
DEVICE.Send(['GET,/en/index.shtml']);
}

IR.AddListener(IR.EVENT_ITEM_SHOW,IR.GetItem(Page),function() //getting feedback when page is shown
{

var ID = IR.SetInterval(5000, Autorequest); //every 5s
});

IR.AddListener(IR.EVENT_ITEM_HIDE,IR.GetItem(Page),function()
{
IR.ClearInterval(ID); //Need to be cleared. If not it will bee starting new interval request which will make your connection down
});


In attach example project and page HTTP code

This could be done for every device with web interface: UPS, Radio, etc.

Hope this will be helpfull for you

:)

+2
Completed

Vera 3 Control Driver

Shaun Moloney 2 years ago in iRidium Script / AV and Driver scripts • updated by niky94547 9 months ago 18
Would be extremely grateful if any fellow iRidium user could assist with information on a Vera driver to allow control via iRidium. Doesn't seem to be any discussion at all regarding this.

some help please...!! 😉😉


Requests for Drivers
+2
Voting

Spotify for Sonos

Paolo Scarpetta 3 years ago in iRidium Script / AV and Driver scripts • updated by Oksana (expert) 2 years ago 2
Can I integrate an App like Spotify with the Iridium, What I really want to make is that my client can select the music he want to hear and send it to his TV through an apple tv. This can be done?
Requests for Drivers
+2
Answered

Pansonic tv

PRASHANTH MENDONCA 3 years ago in iRidium Script / AV and Driver scripts • updated by Dmitry - support (expert) 2 years ago 4
Anybody having commands or script for Panasonic SMART TV( THL42F6D)??
+2
Completed

Time Scheduler

Steve Vassiliadis 4 years ago in iRidium Script / AV and Driver scripts • updated by Ekaterina (head of support) 3 years ago 3
I have created a weekly timescheduler with 2 time periods per day.
I created this because I need this for a project, but also as a practical way to learn javascript. 
The scheduler is not fully tested so use it with caution. I am not a professional programmer so don't be surprised if the javascript is a bit a ugly. It would be great if this was worked on collaboratively to improve both the look and functionality.
It works with Windows and Android panels, but watchout for IOS, when the IOS panel goes to sleep so does the javascript.
It would be even better if iRidium made a similar time schedule available as a standard item.
Cheers
Steve

TimeSched_2__1_.irpz
+1
Not a bug

IR.EVENT_ONLINE & IR.EVENT_OFFLINE doesn't work for SIP device

Эмиль Боев 3 years ago in iRidium Script / AV and Driver scripts • updated 3 years ago 14
BeeToo.AddListener(IR.EVENT_ONLINE, IR.GetDevice('SIP'), function () {
    //some code
});
BeeToo.AddListener(IR.EVENT_OFFLINE, IR.GetDevice('SIP'), function () {
    //some code
});

Device is connected, fir sure! Incoming calls working.
But now evend handling for Online and Offline.
+1
Voting

IR.Execute to send parameters

Jackie Roos 2 years ago in iRidium Script / AV and Driver scripts • updated by Oksana (expert) 2 years ago 1

IR.Execute workds well, BUT it would be great for it to also send parameters in the IR.Execute command

eg

IR.Execute('D:\\someprograme\\Program.exe /some parameters')


The same as when executing from the command line or run command


Probably just a windows & Mac feature?

0
Answered

Sending "Play" Command

j4zz J4zzee 3 weeks ago in iRidium Script / AV and Driver scripts • updated by Aleksandr Romanov (CTO) 2 weeks ago 1

Hi ! I am currently working on setting alarms on my project. This project uses the Squeezebox Module and Raspberry Pi for my Multiroom and I would like to know what would be the script to play a sound such as alarm.wav on specific speakers (1 speaker = 1 raspberry ip address).


Any thouught?

Thank you!