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)
Code: Select all
var sDevice = "A1";
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))
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.");
}
}
}
}