NEWS
Xml2js Probleme bis zum javascript restart…
-
Liebe Leute,
ich hab mir das Script von audioconcept zum Einlesen und verarbeiten des TV-Spielfilm Fernsehprogramm (http://forum.iobroker.net/viewtopic.php … =20#p14792)auf meine Anwendung zurecht gebogen, mit dem Ergebnis, dass javascript sich vertschüsst
das ist der Fehler der dann im Log kommt:
! host-etv-raspi-1 2015-12-17 20:52:35 error instance system.adapter.javascript.0 terminated with code 6 (uncaught exception)
! TypeError: 2015-12-17 20:52:35 error at process._tickCallback (node.js:415:13)
! TypeError: 2015-12-17 20:52:35 error at _stream_readable.js:920:16
! TypeError: 2015-12-17 20:52:35 error at IncomingMessage.EventEmitter.emit (events.js:117:20)
! TypeError: 2015-12-17 20:52:35 error at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:962:12)
! TypeError: 2015-12-17 20:52:35 error at Request.EventEmitter.emit (events.js:117:20)
! TypeError: 2015-12-17 20:52:35 error at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1035:10)
! TypeError: 2015-12-17 20:52:35 error at Request.EventEmitter.emit (events.js:98:17)
! TypeError: 2015-12-17 20:52:35 error at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:198:22)
! TypeError: 2015-12-17 20:52:35 error at Request._callback (script.js.Spritpreise:42:9)
! TypeError: 2015-12-17 20:52:35 error at exports.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/xml2js.js:534:19)
! TypeError: 2015-12-17 20:52:35 error at Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/xml2js.js:7:59)
! TypeError: 2015-12-17 20:52:35 error at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/xml2js.js:506:16)
! TypeError: 2015-12-17 20:52:35 error at Parser.EventEmitter.emit (events.js:74:15)
! TypeError: 2015-12-17 20:52:35 error at TypeError (:null:null)
! TypeError: 2015-12-17 20:52:35 error Uncaught, unspecified "error" event.
! uncaught 2015-12-17 20:52:35 error exception: Uncaught, unspecified "error" event.und das wäre der Code:
! ```
`function check_fav (Titel) {
! var x = Titel.indexOf(":");
var y = Titel.indexOf("");
var Name_Titel = Tanke1a.substring(x+1,y);
! var ist_fav = false;
switch (Name_Titel) {
case 'FE-Trading (Hofer-Parkplatz), 8700 Leoben':
ist_fav = true;
break;
default:
ist_fav = false;
break;
}
return(ist_fav);
}
! // Hauptschleife
! var parseString = require('xml2js').parseString;
var request = require('request');
! request('http://www.oeamtc.at/feeds/sprit/diesel/steiermark', function (error, response, body) {
if (!error && response.statusCode == 200) {
parseString(body, {
explicitArray: false,
mergeAttrs: true
},
function (err, result) {
if (err) {
log("Fehler: " + err);
} else {
log("-------------------- Spritpreise eingelesen - " + result.rss.channel.title + " Anzahl: " + result.rss.channel.item.length);
! for(var i = 0; i < result.rss.channel.item.length; i++) {====== ist_eine_fav = check_fav(result.rss.channel.item[i].title);
}
}
});
} else {
log(error);
}
});`! Wenn ich die markierte Zeile aktiviere, dann stürzt javascript ab, wenn ich sie auskommentiere, geht's...
! Was ist hier anders, als im TV-Spielfilm Script?
! btw - hier eine Testversion, die ohne Probleme funktioniert
! >![spoiler]`~~[code]~~var parseString = require('xml2js').parseString;
var request = require('request');
//var log = console.log;
! request('http://www.oeamtc.at/feeds/sprit/diesel/steiermark', function (error, response, body) {
if (!error && response.statusCode == 200) {
! parseString(body, {
explicitArray: false,
mergeAttrs: true
},
function (err, result) {
//console.log(JSON.stringify(result, null, 2));
! if (err) {
log("Fehler: " + err);
} else {
log("Result: " + result.rss.channel.title);
log("Anzahl: " + result.rss.channel.item.length);
}for(var i = 0; i < result.rss.channel.item.length; i++) { log("Titel " + i +": " + result.rss.channel.item[i].title); //log("Beschreibung " + i +": " + result.rss.channel.item[i].description); if (result.rss.channel.item[i].title == "0,957: FE-Trading (Hofer-Parkplatz), 8700 Leoben") { setState ("javascript.0.Tankpreise.Tanke_1.a",result.rss.channel.item[i].title); setState ("javascript.0.Tankpreise.Tanke_1.b",result.rss.channel.item[i].description); } } }); } else { log(error); }
! });
! // ab da nun die Auswertung
! var Tanke1a = getState("javascript.0.Tankpreise.Tanke_1.a").val;
var x = Tanke1a.indexOf(":");
var Tanke1_Preis = Tanke1a.substr(0, x);
var y = Tanke1a.indexOf(", 8");
var Tanke1_Name = Tanke1a.substring(x+1,y);
log("Tanke1 Name : " + Tanke1_Name);
log("Tanke1 Preis : " + Tanke1_Preis);
! var Tanke1b = getState("javascript.0.Tankpreise.Tanke_1.b").val;
x = Tanke1b.indexOf(".");
var Tanke1_Zeit = Tanke1b.substr(x-5, 5);
log("Tanke1 Zeit : " + Tanke1_Zeit + " Uhr");`
! Grüße
! etv[/i][/i][/i][/i][/i][/code][/spoiler][/i] -
Du hast eine Variable, die nirgendwo definiert ist: Tanke1a
-
sch…. - danke dir, das war's! Man sollte nicht am Abend und ohne Lesebrille programmieren
Grüße
etv