Probleem met Jscript en parameters

Forum over Homeseer scripts (DUTCH forum)

Moderators: TANE, Ruud

Post Reply
danzel1981
Starting Member
Starting Member
Posts: 7
Joined: Tue Jan 19, 2010 9:51 pm

Probleem met Jscript en parameters

Post by danzel1981 »

Hallo,

Ik ben een script aan het maken om buienradar uit te lezen ten behoeve van mijn tuinberegening, zie onderstaande code.
Echter wil ik de variabele sDevice, meegeven via parameters, de functie declaratie wordt dan:

Code: Select all

function Main(sDevice) 
, de regel

Code: Select all

var sDevice = "A1";
haal ik weg.

Bij "Optional parameters" vul ik dan in: ("Main", "A1").

De string "A1" wordt correct meegegeven in de functie Main, echter zie ik in de hs log "4-8-2010 11:55:36 Error Device A1 bestaat niet! " verschijnen, terwijl deze wel bestaat, dit gaat wel goed indien ik de waarde "A1" niet meegeef als parameter.

Het lijkt erop dat hs de parameter "A1" interpreteerd als geen string zijnde, ik heb

Code: Select all

hs.DeviceExists(new String(sDevice))
ook al getracht, echter zonder resultaat.

Iemand enig idee?

tnx!

Code: Select all

function Main() {
    var sDevice = "A1";

    if (hs.DeviceExists(sDevice) == -1) {
        hs.WriteLog("Error", "Device " + sDevice + " bestaat niet!");
    } else {
        var xHttp = new ActiveXObject("Microsoft.XMLHTTP");
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        var xmlNodes;

        xHttp.open("GET", "http://xml.buienradar.nl/", false);
        xHttp.send();

        xmlDoc = xHttp.responseXML;
        xmlNodes = xmlDoc.selectNodes("//buienradarnl/weergegevens/actueel_weer/weerstations/weerstation[@id=\"6377\"]");

        if (xmlNodes.length > 0) {
            var fRegen;

            try {
                fRegen = parseFloat(xmlNodes[0].selectSingleNode("regenMMPU").text);
            } catch (e) {
                fRegen = 0;
            }

            if (fRegen != 0) {
                hs.WriteLog("Error", "Het heeft " + fRegen + " mm geregend in de afgelopen 5 minuten.");
                if (hs.DeviceStatus(sDevice) != 2) {
                    hs.SetDeviceStatus(sDevice, 2);
                }
            } else {
                hs.WriteLog("Info", "Het heeft niet geregend in de afgelopen 5 minuten.");
            }
        }
    }
}    
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: Probleem met Jscript en parameters

Post by AshaiRey »

Probeer eens

Code: Select all

string sDevice = "A1";
of

Code: Select all

function Main(string sDevice)
//var sDevice = "A1"; 
Bram
danzel1981
Starting Member
Starting Member
Posts: 7
Joined: Tue Jan 19, 2010 9:51 pm

Re: Probleem met Jscript en parameters

Post by danzel1981 »

Hey bedankt, ik heb het echter inmiddels omgezet naar VB script, veel voorbeelden zijn in vb gemaakt dus dat maakt het leven iets gemakkelijker :lol:

Groet!
Post Reply

Return to “Homeseer Scripts Forum”