oder und das weiss ich jetzt nicht genau
var xml_data='blablub deine xml daten';
var xml_obj = new DOMParser().parseFromString(xml, "text/xml");
und dann die daten über die Nodes und getElement… laden....
oder und das weiss ich jetzt nicht genau
var xml_data='blablub deine xml daten';
var xml_obj = new DOMParser().parseFromString(xml, "text/xml");
und dann die daten über die Nodes und getElement… laden....
Da ich ja eigentlich nur ein wenig Javascript kann habe ich das mal soweit ausgearbeitet
var data_xml='deine xml daten'
var regex=/<(authPassed|authSid|authSid)>
Ich denke damit kommst du dann klar….
Und noch kleiner wenn man auf das 'Ä' verzichtet müsste dann so sein
var pre='javascript.0.Verkehr.Richtung_MG.';
var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
for( var i=0,json='[{'; i<4; i++, json+='};' )
{
for( var j=0; j<4 )
json+='"'+ka[j]+'":"+getState( pre+ka[j] + i.toString() ).val + '",';
}
json=json.substr( 0, json.length-1 ) + ']';
createState('Verkehr.MG1', " ");
setState('Verkehr.MG1', json);
Mir fehlen halt die Werte
So besser
var pre='javascript.0.Verkehr.Richtung_MG.';
var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
for( var i=0,json='['; i<4; i++ )
{
json+='{"Ziehaltestelle":"' + getState(pre+ka[0]+i.toString() ).val +
'","Linie":"' + getState(pre+ka[1]+i.toString() ).val +
'","Uhrzeit":"' +getState(pre+ka[2]+i.toString() ).val +
'","Verspätung":"' +getState(pre+ka[3]+i.toString() ).val + '"};';
}
json=json.substr( 0, json.length-1 ) + ']';
createState('Verkehr.MG1', " ");
setState('Verkehr.MG1', json);
Wenn du mir sagst was du vor hast, so das ich das verstehen kann, kann ich dir vielleicht helfen.
Was willst du mit der Datei machen und wo sollen die Daten hin….
Das RegEx war ja schon fertig und von daher müsste ich jetzt wissen ob es in einem Intervall laufen soll oder ähnliches.
Es ist schneller programmiert wenn ich sowas bekomme:
Alle 5 Minuten:
LogDatei letzte Zeile lesen
2 Beispiel Zeilen
Daten auswerten und in ein Objekt speichern.
Beispiel wie es nachher aussehen soll.....
Ich kann mit normalen javascript nicht löschen ausser über exec und dann ist es systemabhängig ob rm oder del.
Oder aber mit NodeJS und fs weiss aber nicht ob das dann überall läuft, mein nodejs server in iobroker ist auch sehr buggy
Siehe:
Dann kann ich das auch umsetzen
Musst du mal prüfen so.
var pre='javascript.0.Verkehr.Richtung_MG.';
var ka=['Haltestelle', 'Linie', 'Startzeit', 'Verspaetung'];
for( var i=0,json='['; i<4; i++ )
{
json+='"Ziehaltestelle":"' + getState(pre+ka[0]+i.toString() ).val +
'","Linie":"' + getState(pre+ka[1]+i.toString() ).val +
'","Uhrzeit":"' +getState(pre+ka[2]+i.toString() ).val +
'","Verspätung":"' +getState(pre+ka[3]+i.toString() ).val + '"';
}
json+=']';
createState('Verkehr.MG1', " ");
setState('Verkehr.MG1', json);
Aber so war kacke:
var ziel1 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle0').val;
var linie1 = getState('javascript.0.Verkehr.Richtung_MG.Linie0').val;
var zeit1 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit0').val;
var versp1 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung0').val;
var ziel2 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle1').val;
var linie2 = getState('javascript.0.Verkehr.Richtung_MG.Linie1').val;
var zeit2 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit1').val;
var versp2 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung1').val;
var ziel3 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle2').val;
var linie3 = getState('javascript.0.Verkehr.Richtung_MG.Linie2').val;
var zeit3 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit2').val;
var versp3 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung2').val;
var ziel4 = getState('javascript.0.Verkehr.Richtung_MG.Haltestelle3').val;
var linie4 = getState('javascript.0.Verkehr.Richtung_MG.Linie3').val;
var zeit4 = getState('javascript.0.Verkehr.Richtung_MG.Startzeit3').val;
var versp4 = getState('javascript.0.Verkehr.Richtung_MG.Verspaetung3').val;
var json /
json ="[{\"Zielhaltestelle\":\""+ziel1+"\",\"Linie\":\""+linie1+"\",\"Uhrzeit\":\""+zeit1+"\",\"Verspätung in min.\":\""+versp1+"\"},"
json +="{\"Zielhaltestelle\":\""+ziel2+"\",\"Linie\":\""+linie2+"\",\"Uhrzeit\":\""+zeit2+"\",\"Verspätung in min.\":\""+versp2+"\"},"
json +="{\"Zielhaltestelle\":\""+ziel3+"\",\"Linie\":\""+linie3+"\",\"Uhrzeit\":\""+zeit3+"\",\"Verspätung in min.\":\""+versp3+"\"},"
json +="{\"Zielhaltestelle\":\""+ziel4+"\",\"Linie\":\""+linie4+"\",\"Uhrzeit\":\""+zeit4+"\",\"Verspätung in min.\":\""+versp4+"\"}]"
setState('Verkehr.MG1', json);
Damit das Script selber nicht blockiert es einfach in einen Timeout reinsetzen, und es wird ein separater Thread erstellt…. und der läuft dann parallel.
durch das function return function werden eigene variablen erst.....
setTimeout( (function(a_klemmen){
return function(){
// Kann auch funktionieren wenn das hier einzelnd ist.....
aklemmen.each(function(a_id, a_i) {
return function(){
var dsid = a_id.replace("My_Devices.0.Digitalstrom.Klemmen.", "")
console.log(dsid);
console.log(getState(a_id).val);
try {
console.log(SessionToken = ${sessiontoken}
);
request({url: https://${dssip}:${dssport}/json/device/getOutputValue?dsid=${dsid}&offset=0
, headers: {Cookie: token=${sessiontoken}
}}, function(error, response, body) {
console.log(body);
});
} catch (e) { console.error(e); }
}})(id, i);
// Bis hier
}
})(klemmen),200);
Kein Schwein ruft mich an, keine Sau interessiert sich für mich
Push
' " ' dürfte auch gehen dann sparst du dir die cryptischen backslashes
Hihi Mal in meinem Thread mit den Rollladen mit dem function Return function kannst du asynchron arbeiten..