NEWS
SOLVED JavaScript startet nach update von CSV-parse nicht mehr
-
ich würde das problem ja hier vermuten ==>
javascript.0 2019-03-05 12:24:39.859 error uncaught exception: Cannot read property 'split' of undefined
-
@Nobody28 sagte in JavaScript startet nach update von CSV-parse nicht mehr:
javascript.0 2019-03-05 12:24:39.863 error at script.js.common.HMT.Zemo-in-Objekte:10:25
Also das Log ist so gütig und sagt einem in welcher Zeile des Skriptes der Fehler ist und in welchem Skript, siehe
javascript.0 2019-03-05 12:24:39.863 error at script.js.common.HMT.Zemo-in-Objekte:10:25
d. h. er ist in Zeile 10 des Skriptes, allerdings hattest du weiter oben mal ein Log gepostet, wo er in Zeile 11 war. So oder so scheint es daran zu liegen, dass die Variable Zeile wohl mal undefined ist. Was wiederum daran liegt, dass
input.split('§')[i];
nichts zurück gibt.Du benutzt ja parse eigentlich gar nicht in deinem Skript fällt mir gerade auf.
Probier mal das hier:console.log("Start: ==>"); const input = require('fs').readFileSync('/mnt/hmtw2k-d/ZEMO-MDE/Zemo-Anzeige/ioBroker/ioBroker-Zemo.csv').toString(); const Zeilen = input.split('§'); for (const Zeile of Zeilen) { const Terminialnr = parseFloat(Zeile.split(';')[0]); if(!Terminialnr) continue; const Menge_1 = parseInt(Zeile.split(';')[1]); const Menge_2 = parseInt(Zeile.split(';')[2]); const Zeit = Zeile.split(';')[3]; const Menge_Total = parseInt(Zeile.split(';')[4]); const Auftragsnummer = parseInt(Zeile.split(';')[5]); const HubIst = parseFloat(Zeile.split(';')[6]); const HubSoll = parseFloat(Zeile.split(';')[7]); const Kostenstelle = parseInt(Zeile.split(';')[8]); const Maschinennr = parseInt(Zeile.split(';')[9]); const Maschinenname = Zeile.split(';')[10]; const HubStatus = parseInt(Zeile.split(';')[11]); createState('Zemo.'+Terminialnr+'.'+'Terminialnr', {name: 'Terminialnr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_1', {name: 'Menge_1', desc: 'Menge_1', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_2', {name: 'Menge_2', desc: 'Menge_2', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Zeit', {name: 'Zeit', desc: 'Zeit', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_Total', {name: 'Menge_Total', desc: 'Menge_Total', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Auftragsnummer', {name: 'Auftragsnummer', desc: 'Auftragsnummer', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubIst', {name: 'HubIst', desc: 'HubIst', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubSoll', {name: 'HubSoll', desc: 'HubSoll', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Kostenstelle', {name: 'Kostenstelle', desc: 'Kostenstelle', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinennr', {name: 'Maschinennr', desc: 'Maschinennr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinenname', {name: 'Maschinenname', desc: 'Maschinenname', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubStatus', {name: 'HubStatus', desc: 'HubStatus', type: 'number', role: 'value'} ,() => { setState('Zemo.'+Terminialnr+'.'+'Terminialnr',Terminialnr, true); setState('Zemo.'+Terminialnr+'.'+'Menge_1',Menge_1, true); setState('Zemo.'+Terminialnr+'.'+'Menge_2',Menge_2, true); setState('Zemo.'+Terminialnr+'.'+'Zeit',Zeit, true); setState('Zemo.'+Terminialnr+'.'+'Menge_Total',Menge_Total, true); setState('Zemo.'+Terminialnr+'.'+'Auftragsnummer',Auftragsnummer, true); setState('Zemo.'+Terminialnr+'.'+'HubIst',HubIst, true); setState('Zemo.'+Terminialnr+'.'+'HubSoll',HubSoll, true); setState('Zemo.'+Terminialnr+'.'+'Kostenstelle',Kostenstelle, true); setState('Zemo.'+Terminialnr+'.'+'Maschinennr',Maschinennr, true); setState('Zemo.'+Terminialnr+'.'+'Maschinenname',Maschinenname, true); setState('Zemo.'+Terminialnr+'.'+'HubStatus',HubStatus, true); }); }
-
@Nobody28 Jop ist es mit Sicherheit auch, nur was ist denn Zeile 10 in deinem Skript , bzw. vor dem Einbau des Logging war es Zeile 11, ist es
var Menge_1 = Zeile.split(';')[1];
? Dann ist Zeile undefined in einer Iteration deiner for-Schleife. Ich würde auch input einlesen und parsen vor der for Schleife machen, sonst machst du das ja in jeder Iteration neu, was 'auf den ersten Blick' unnötig aussieht. -
Hallo @foxriver, ich kann dir nicht ganz folgen.
Hier ein Ausschnitt der CSV Datei:
10110;5795;6244;12:40;5654;1901083010;8.57;21.00;421014;421014;MW 450 to;1;§ 10120;4039;7807;12:38;3898;1900887010;8.33;19.00;421012;421012;MW 630 to;0;§ 10130;399;291;09:24;291;1901890010;17.23;0;421011;421011;Raster 630 to;0;§ 10140;25993;120507;05:50;25879;1900277010;66.67;60.00;421022;421022;Kaiser 250 to;0;§ 10150;33283;71407;06:00;33225;1900727010;75.00;70.00;421024;421024;HR 160 to;0;§ 10160;5764;5699;12:38;5699;1901904010;22.22;86.00;421015;421015;MW 400 to;0;§ 10200;149;1118;09:38;149;1900565020;0.59;1.25;432120;432120;Mercedes Punkt-Schw.;0;§
Das "§" habe ich als Zeilen Trennzeichen eingebaut (Ich habe den "normalen" Zeilentrenner noch nciht finden können
) . Sprich ich trenne jeweils mit dem "§" Zeichen, und hole mir die 11 Werte dann mit ";" heraus. Das hat auch bis gestern Nachmittag ca. 14 Uhr wunderbar geklappt.
Ich hatte das Script ja mitlerweile ja schon soweit ==>
var parse = require('csv-parse'); console.log("Start: ==>"); for (var i = 0; i<50; i++) { var input = require('fs').readFileSync('/mnt/hmtw2k-d/ZEMO-MDE/Zemo-Anzeige/ioBroker/ioBroker-Zemo.csv').toString(); parse(input, {comment: '#'}, function(err, output){ var Zeile = input.split('§')[i]; console.log(Zeile); var Terminialnr = Zeile.split(';')[0]; var Menge_1 = Zeile.split(';')[1]; var Menge_2 = Zeile.split(';')[2]; var Zeit = Zeile.split(';')[3]; var Menge_Total = Zeile.split(';')[4]; var Auftragsnummer = Zeile.split(';')[5]; var HubIst = Zeile.split(';')[6]; var HubSoll = Zeile.split(';')[7]; var Kostenstelle = Zeile.split(';')[8]; var Maschinennr = Zeile.split(';')[9]; var Maschinenname = Zeile.split(';')[10]; var HubStatus = Zeile.split(';')[11]; createState('Zemo.'+Terminialnr+'.'+'Terminialnr', {name: 'Terminialnr', type: 'number', role: 'value', }); createState('Zemo.'+Terminialnr+'.'+'Menge_1', {name: 'Menge_1', desc: 'Menge_1', type: 'number', role: 'value', states: Menge_1,}); createState('Zemo.'+Terminialnr+'.'+'Menge_2', {name: 'Menge_2', desc: 'Menge_2', type: 'number', role: 'value', states: Menge_2,}); createState('Zemo.'+Terminialnr+'.'+'Zeit', {name: 'Zeit', desc: 'Zeit', type: 'number', role: 'value', states: Zeit,}); createState('Zemo.'+Terminialnr+'.'+'Menge_Total', {name: 'Menge_Total', desc: 'Menge_Total', type: 'number', role: 'value', states: Menge_Total,}); createState('Zemo.'+Terminialnr+'.'+'Auftragsnummer', {name: 'Auftragsnummer', desc: 'Auftragsnummer', type: 'number', role: 'value', states: Auftragsnummer,}); createState('Zemo.'+Terminialnr+'.'+'HubIst', {name: 'HubIst', desc: 'HubIst', type: 'number', role: 'value', states: HubIst,}); createState('Zemo.'+Terminialnr+'.'+'HubSoll', {name: 'HubSoll', desc: 'HubSoll', type: 'number', role: 'value', states: HubSoll,}); createState('Zemo.'+Terminialnr+'.'+'Kostenstelle', {name: 'Kostenstelle', desc: 'Kostenstelle', type: 'number', role: 'value', states: Kostenstelle,}); createState('Zemo.'+Terminialnr+'.'+'Maschinennr', {name: 'Maschinennr', desc: 'Maschinennr', type: 'number', role: 'value', states: Maschinennr,}); createState('Zemo.'+Terminialnr+'.'+'Maschinenname', {name: 'Maschinenname', desc: 'Maschinenname', type: 'number', role: 'value', states: Maschinenname,}); createState('Zemo.'+Terminialnr+'.'+'HubStatus', {name: 'HubStatus', desc: 'HubStatus', type: 'number', role: 'value', states: HubStatus,}); setState('Zemo.'+Terminialnr+'.'+'Terminialnr',Terminialnr); setState('Zemo.'+Terminialnr+'.'+'Menge_1',Menge_1); setState('Zemo.'+Terminialnr+'.'+'Menge_2',Menge_2); setState('Zemo.'+Terminialnr+'.'+'Zeit',Zeit); setState('Zemo.'+Terminialnr+'.'+'Menge_Total',Menge_Total); setState('Zemo.'+Terminialnr+'.'+'Auftragsnummer',Auftragsnummer); setState('Zemo.'+Terminialnr+'.'+'HubIst',HubIst); setState('Zemo.'+Terminialnr+'.'+'HubSoll',HubSoll); setState('Zemo.'+Terminialnr+'.'+'Kostenstelle',Kostenstelle); setState('Zemo.'+Terminialnr+'.'+'Maschinennr',Maschinennr); setState('Zemo.'+Terminialnr+'.'+'Maschinenname',Maschinenname); setState('Zemo.'+Terminialnr+'.'+'HubStatus',HubStatus); }); };
Bis das ganze dann plötzlich nicht mehr funktioniert hat, als das mit dem Update aus Post 1 begann..
-
@Nobody28 sagte in JavaScript startet nach update von CSV-parse nicht mehr:
javascript.0 2019-03-05 12:24:39.863 error at script.js.common.HMT.Zemo-in-Objekte:10:25
Also das Log ist so gütig und sagt einem in welcher Zeile des Skriptes der Fehler ist und in welchem Skript, siehe
javascript.0 2019-03-05 12:24:39.863 error at script.js.common.HMT.Zemo-in-Objekte:10:25
d. h. er ist in Zeile 10 des Skriptes, allerdings hattest du weiter oben mal ein Log gepostet, wo er in Zeile 11 war. So oder so scheint es daran zu liegen, dass die Variable Zeile wohl mal undefined ist. Was wiederum daran liegt, dass
input.split('§')[i];
nichts zurück gibt.Du benutzt ja parse eigentlich gar nicht in deinem Skript fällt mir gerade auf.
Probier mal das hier:console.log("Start: ==>"); const input = require('fs').readFileSync('/mnt/hmtw2k-d/ZEMO-MDE/Zemo-Anzeige/ioBroker/ioBroker-Zemo.csv').toString(); const Zeilen = input.split('§'); for (const Zeile of Zeilen) { const Terminialnr = parseFloat(Zeile.split(';')[0]); if(!Terminialnr) continue; const Menge_1 = parseInt(Zeile.split(';')[1]); const Menge_2 = parseInt(Zeile.split(';')[2]); const Zeit = Zeile.split(';')[3]; const Menge_Total = parseInt(Zeile.split(';')[4]); const Auftragsnummer = parseInt(Zeile.split(';')[5]); const HubIst = parseFloat(Zeile.split(';')[6]); const HubSoll = parseFloat(Zeile.split(';')[7]); const Kostenstelle = parseInt(Zeile.split(';')[8]); const Maschinennr = parseInt(Zeile.split(';')[9]); const Maschinenname = Zeile.split(';')[10]; const HubStatus = parseInt(Zeile.split(';')[11]); createState('Zemo.'+Terminialnr+'.'+'Terminialnr', {name: 'Terminialnr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_1', {name: 'Menge_1', desc: 'Menge_1', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_2', {name: 'Menge_2', desc: 'Menge_2', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Zeit', {name: 'Zeit', desc: 'Zeit', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_Total', {name: 'Menge_Total', desc: 'Menge_Total', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Auftragsnummer', {name: 'Auftragsnummer', desc: 'Auftragsnummer', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubIst', {name: 'HubIst', desc: 'HubIst', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubSoll', {name: 'HubSoll', desc: 'HubSoll', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Kostenstelle', {name: 'Kostenstelle', desc: 'Kostenstelle', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinennr', {name: 'Maschinennr', desc: 'Maschinennr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinenname', {name: 'Maschinenname', desc: 'Maschinenname', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubStatus', {name: 'HubStatus', desc: 'HubStatus', type: 'number', role: 'value'} ,() => { setState('Zemo.'+Terminialnr+'.'+'Terminialnr',Terminialnr, true); setState('Zemo.'+Terminialnr+'.'+'Menge_1',Menge_1, true); setState('Zemo.'+Terminialnr+'.'+'Menge_2',Menge_2, true); setState('Zemo.'+Terminialnr+'.'+'Zeit',Zeit, true); setState('Zemo.'+Terminialnr+'.'+'Menge_Total',Menge_Total, true); setState('Zemo.'+Terminialnr+'.'+'Auftragsnummer',Auftragsnummer, true); setState('Zemo.'+Terminialnr+'.'+'HubIst',HubIst, true); setState('Zemo.'+Terminialnr+'.'+'HubSoll',HubSoll, true); setState('Zemo.'+Terminialnr+'.'+'Kostenstelle',Kostenstelle, true); setState('Zemo.'+Terminialnr+'.'+'Maschinennr',Maschinennr, true); setState('Zemo.'+Terminialnr+'.'+'Maschinenname',Maschinenname, true); setState('Zemo.'+Terminialnr+'.'+'HubStatus',HubStatus, true); }); }
-
Hey, super !!!
Danke @foxriver76
Das läuft. Und auch kein Leereintrag.
Wenn Du mir jetzt noch sagen kannst, wir ich das im 5 Minutentakt hinbbekomme, und als Zeilenende "CRLF" benutzen kann anstatt das blöde "§", dann kann das auch raus.
-
schedule('*/5 * * * *', () => { console.log("Start: ==>"); const input = require('fs').readFileSync('/mnt/hmtw2k-d/ZEMO-MDE/Zemo-Anzeige/ioBroker/ioBroker-Zemo.csv').toString(); const Zeilen = input.split('\n'); for (const Zeile of Zeilen) { const Terminialnr = parseFloat(Zeile.split(';')[0]); if(!Terminialnr) continue; const Menge_1 = parseInt(Zeile.split(';')[1]); const Menge_2 = parseInt(Zeile.split(';')[2]); const Zeit = Zeile.split(';')[3]; const Menge_Total = parseInt(Zeile.split(';')[4]); const Auftragsnummer = parseInt(Zeile.split(';')[5]); const HubIst = parseFloat(Zeile.split(';')[6]); const HubSoll = parseFloat(Zeile.split(';')[7]); const Kostenstelle = parseInt(Zeile.split(';')[8]); const Maschinennr = parseInt(Zeile.split(';')[9]); const Maschinenname = Zeile.split(';')[10]; const HubStatus = parseInt(Zeile.split(';')[11]); createState('Zemo.'+Terminialnr+'.'+'Terminialnr', {name: 'Terminialnr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_1', {name: 'Menge_1', desc: 'Menge_1', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_2', {name: 'Menge_2', desc: 'Menge_2', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Zeit', {name: 'Zeit', desc: 'Zeit', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_Total', {name: 'Menge_Total', desc: 'Menge_Total', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Auftragsnummer', {name: 'Auftragsnummer', desc: 'Auftragsnummer', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubIst', {name: 'HubIst', desc: 'HubIst', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubSoll', {name: 'HubSoll', desc: 'HubSoll', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Kostenstelle', {name: 'Kostenstelle', desc: 'Kostenstelle', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinennr', {name: 'Maschinennr', desc: 'Maschinennr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinenname', {name: 'Maschinenname', desc: 'Maschinenname', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubStatus', {name: 'HubStatus', desc: 'HubStatus', type: 'number', role: 'value'} ,() => { setState('Zemo.'+Terminialnr+'.'+'Terminialnr',Terminialnr, true); setState('Zemo.'+Terminialnr+'.'+'Menge_1',Menge_1, true); setState('Zemo.'+Terminialnr+'.'+'Menge_2',Menge_2, true); setState('Zemo.'+Terminialnr+'.'+'Zeit',Zeit, true); setState('Zemo.'+Terminialnr+'.'+'Menge_Total',Menge_Total, true); setState('Zemo.'+Terminialnr+'.'+'Auftragsnummer',Auftragsnummer, true); setState('Zemo.'+Terminialnr+'.'+'HubIst',HubIst, true); setState('Zemo.'+Terminialnr+'.'+'HubSoll',HubSoll, true); setState('Zemo.'+Terminialnr+'.'+'Kostenstelle',Kostenstelle, true); setState('Zemo.'+Terminialnr+'.'+'Maschinennr',Maschinennr, true); setState('Zemo.'+Terminialnr+'.'+'Maschinenname',Maschinenname, true); setState('Zemo.'+Terminialnr+'.'+'HubStatus',HubStatus, true); }); } });
-
Das mit dem Zeilenende klappt priema...danke dafür
Sprich das "§" ist schon raus...
Wo kann ich sehen, dass das schedule funtkioniert?!
Ich hätte jetzt im 5 Minutentakt einen Logeintrag erwartet.
Ist da evtl. noch etwas falsch? Evtl. ein ";" in Zeile 60? Bin da noch nciht so vertraut.
Danke für Deine Hilfe
-
Was bedeutet denn das "=>" in Zeile 1?
-
@Nobody28 () => ist eine callback Funktion wie bei deinem parse damals function(err, output)
Und ja es sollte alle 5 Minuten deineStart:
Meldung geloggt werden -
-
Leider klappt dass dann doch noch nciht
Ich habe die angelegte Struktur "Zemo" mal gelöscht, da diese ja eigentlich neuangelegt werden müsste.
Nun wird aber nur der erste Eintrag erzeugt. Im Logfile steht dann das ==>
javascript.0 2019-03-05 14:48:01.427 info script.js.common.HMT.Zemo-CSV-in-Objekte: registered 0 subscriptions and 0 schedules javascript.0 2019-03-05 14:48:01.423 info script.js.common.HMT.Zemo-CSV-in-Objekte: Start: ==> javascript.0 2019-03-05 14:48:01.422 info Start javascript script.js.common.HMT.Zemo-CSV-in-Objekte javascript.0 2019-03-05 14:47:44.484 info Stop script script.js.common.HMT.Zemo-in-Objekte javascript.0 2019-03-05 14:47:43.209 info Stop script script.js.common.HMT.Zemo-CSV-in-Objekte
Nur Zur Sicherheit hier das Script ==>
schedule('*/5 * * * *', () => { console.log("Start: ==>"); const input = require('fs').readFileSync('/mnt/hmtw2k-d/ZEMO-MDE/Zemo-Anzeige/ioBroker/ioBroker-Zemo.csv').toString(); const Zeilen = input.split('\r\n'); for (const Zeile of Zeilen) { const Terminialnr = parseFloat(Zeile.split(';')[0]); if(!Terminialnr) continue; const Menge_1 = parseInt(Zeile.split(';')[1]); const Menge_2 = parseInt(Zeile.split(';')[2]); const Zeit = Zeile.split(';')[3]; const Menge_Total = parseInt(Zeile.split(';')[4]); const Auftragsnummer = parseInt(Zeile.split(';')[5]); const HubIst = parseFloat(Zeile.split(';')[6]); const HubSoll = parseFloat(Zeile.split(';')[7]); const Kostenstelle = parseInt(Zeile.split(';')[8]); const Maschinennr = parseInt(Zeile.split(';')[9]); const Maschinenname = Zeile.split(';')[10]; const HubStatus = parseInt(Zeile.split(';')[11]); createState('Zemo.'+Terminialnr+'.'+'Terminialnr', {name: 'Terminialnr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_1', {name: 'Menge_1', desc: 'Menge_1', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_2', {name: 'Menge_2', desc: 'Menge_2', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Zeit', {name: 'Zeit', desc: 'Zeit', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_Total', {name: 'Menge_Total', desc: 'Menge_Total', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Auftragsnummer', {name: 'Auftragsnummer', desc: 'Auftragsnummer', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubIst', {name: 'HubIst', desc: 'HubIst', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubSoll', {name: 'HubSoll', desc: 'HubSoll', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Kostenstelle', {name: 'Kostenstelle', desc: 'Kostenstelle', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinennr', {name: 'Maschinennr', desc: 'Maschinennr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinenname', {name: 'Maschinenname', desc: 'Maschinenname', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubStatus', {name: 'HubStatus', desc: 'HubStatus', type: 'number', role: 'value'} ,() => { setState('Zemo.'+Terminialnr+'.'+'Terminialnr',Terminialnr, true); setState('Zemo.'+Terminialnr+'.'+'Menge_1',Menge_1, true); setState('Zemo.'+Terminialnr+'.'+'Menge_2',Menge_2, true); setState('Zemo.'+Terminialnr+'.'+'Zeit',Zeit, true); setState('Zemo.'+Terminialnr+'.'+'Menge_Total',Menge_Total, true); setState('Zemo.'+Terminialnr+'.'+'Auftragsnummer',Auftragsnummer, true); setState('Zemo.'+Terminialnr+'.'+'HubIst',HubIst, true); setState('Zemo.'+Terminialnr+'.'+'HubSoll',HubSoll, true); setState('Zemo.'+Terminialnr+'.'+'Kostenstelle',Kostenstelle, true); setState('Zemo.'+Terminialnr+'.'+'Maschinennr',Maschinennr, true); setState('Zemo.'+Terminialnr+'.'+'Maschinenname',Maschinenname, true); setState('Zemo.'+Terminialnr+'.'+'HubStatus',HubStatus, true); }); } });
Und hier ein Teil der Datei ==>
10110;470;7634;14:31;461;1901083010;20.00;21.00;421014;421014;MW 450 to;0; 10120;395;8807;14:40;380;1900887010;8.22;19.00;421012;421012;MW 630 to;1; 10130;507;476;14:39;476;1900694010;14.85;0;421011;421011;Raster 630 to;0; 10140;1155;121660;14:40;1144;1900277010;75.00;60.00;421022;421022;Kaiser 250 to;0; 10150;1990;73393;14:32;1984;1900727010;75.00;70.00;421024;421024;HR 160 to;0; 10160;431;7429;14:27;422;1901904010;22.22;86.00;421015;421015;MW 400 to;0; 10200;149;1118;09:38;149;1900565020;0.59;1.25;432120;432120;Mercedes Punkt-Schw.;0; 10220;64;63897;14:27;64;1900560010;1.28;3.75;450020;450020;6290 Passat;0;
Es wird also nur der Ordner 10110 angelegt, aber keine Objekte darin.
Evtl. findet noch jemand einen Fehler?!
Danke für Eure Unterstützung
-
@Nobody28 sagte in JavaScript startet nach update von CSV-parse nicht mehr:
javascript.0 2019-03-05 14:48:01.427 info script.js.common.HMT.Zemo-CSV-in-Objekte: registered 0 subscriptions and 0 schedules
Laut dem Log registriert er kein schedule. Füge ich das Skript bei mir 1:1 so ein, registriert er ein schedule.
-
Zeig mal ein Screen vom eingefügten Skript im Editor, kann mir das Problem nicht vorstellen.
-
@Nobody28 Außerdem habe ich dir geschrieben:
const Zeilen = input.split('\n');
du hast es abgeändert in
const Zeilen = input.split('\r\n');
-
Oh man...Asche auf mein Haupt ;(
Habe das fälschlicherweise in ein anderes Sript eingefügt und nicht bemerkt...
Schedule scheint es jetzt zu geben ==>
javascript.0 2019-03-05 15:06:18.564 info script.js.common.HMT.Zemo-CSV-in-Objekte: registered 0 subscriptions and 1 schedule
Sorry nochmal dafür... manchmal sieht man den Wald vor lauter Bäumen nicht
die Splitzeile habe ich auch wieder zurückgeändert...aber es werden keine Objekte erzeugt!
-
Mmmmhhh...
verstehe ich gerade noch nicht... wenn ich das manuel ausführe macht er nichts...
kann es sein, dass ich immer auf die vollen 5 Minuten warten muss, damit das Script auch läuft?!
Dann war es unwissenheit und ungeduld von mit... das bitte ich dann zu entschuldigen. -
@Nobody28 sagte in JavaScript startet nach update von CSV-parse nicht mehr:
Oh man...Asche auf mein Haupt ;(
Habe das fälschlicherweise in ein anderes Sript eingefügt und nicht bemerkt...
Schedule scheint es jetzt zu geben ==>
javascript.0 2019-03-05 15:06:18.564 info script.js.common.HMT.Zemo-CSV-in-Objekte: registered 0 subscriptions and 1 schedule
Sorry nochmal dafür... manchmal sieht man den Wald vor lauter Bäumen nicht
die Splitzeile habe ich auch wieder zurückgeändert...aber es werden keine Objekte erzeugt!
Das Skript läuft nicht beim Start sondern alle 5 Minuten, sprich 15:15 --> 15:20 --> 15:25 ... vermutlich wurde deshalb noch nichts erzeugt.
-
Super...vielen vielen Dank
Du bist mein Held...javascript.0 2019-03-05 15:20:00.010 info script.js.common.HMT.Zemo-CSV-in-Objekte: Start: ==> javascript.0 2019-03-05 15:15:00.004 info script.js.common.HMT.Zemo-CSV-in-Objekte: Start: ==>
Der vollständigkeithalber, falls es damit auch jemand anderem hilft, hier das derzeitige Script ==>
schedule('*/5 * * * *', () => { console.log("Start: ==>"); const input = require('fs').readFileSync('/mnt/hmtw2k-d/ZEMO-MDE/Zemo-Anzeige/ioBroker/ioBroker-Zemo.csv').toString(); const Zeilen = input.split('\n'); for (const Zeile of Zeilen) { const Terminialnr = parseFloat(Zeile.split(';')[0]); if(!Terminialnr) continue; const Menge_1 = parseInt(Zeile.split(';')[1]); const Menge_2 = parseInt(Zeile.split(';')[2]); const Zeit = Zeile.split(';')[3]; const Menge_Total = parseInt(Zeile.split(';')[4]); const Auftragsnummer = parseInt(Zeile.split(';')[5]); const HubIst = parseFloat(Zeile.split(';')[6]); const HubSoll = parseFloat(Zeile.split(';')[7]); const Kostenstelle = parseInt(Zeile.split(';')[8]); const Maschinennr = parseInt(Zeile.split(';')[9]); const Maschinenname = Zeile.split(';')[10]; const HubStatus = parseInt(Zeile.split(';')[11]); createState('Zemo.'+Terminialnr+'.'+'Terminialnr', {name: 'Terminialnr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_1', {name: 'Menge_1', desc: 'Menge_1', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_2', {name: 'Menge_2', desc: 'Menge_2', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Zeit', {name: 'Zeit', desc: 'Zeit', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Menge_Total', {name: 'Menge_Total', desc: 'Menge_Total', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Auftragsnummer', {name: 'Auftragsnummer', desc: 'Auftragsnummer', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubIst', {name: 'HubIst', desc: 'HubIst', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubSoll', {name: 'HubSoll', desc: 'HubSoll', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Kostenstelle', {name: 'Kostenstelle', desc: 'Kostenstelle', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinennr', {name: 'Maschinennr', desc: 'Maschinennr', type: 'number', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'Maschinenname', {name: 'Maschinenname', desc: 'Maschinenname', type: 'string', role: 'value'}); createState('Zemo.'+Terminialnr+'.'+'HubStatus', {name: 'HubStatus', desc: 'HubStatus', type: 'number', role: 'value'} ,() => { setState('Zemo.'+Terminialnr+'.'+'Terminialnr',Terminialnr, true); setState('Zemo.'+Terminialnr+'.'+'Menge_1',Menge_1, true); setState('Zemo.'+Terminialnr+'.'+'Menge_2',Menge_2, true); setState('Zemo.'+Terminialnr+'.'+'Zeit',Zeit, true); setState('Zemo.'+Terminialnr+'.'+'Menge_Total',Menge_Total, true); setState('Zemo.'+Terminialnr+'.'+'Auftragsnummer',Auftragsnummer, true); setState('Zemo.'+Terminialnr+'.'+'HubIst',HubIst, true); setState('Zemo.'+Terminialnr+'.'+'HubSoll',HubSoll, true); setState('Zemo.'+Terminialnr+'.'+'Kostenstelle',Kostenstelle, true); setState('Zemo.'+Terminialnr+'.'+'Maschinennr',Maschinennr, true); setState('Zemo.'+Terminialnr+'.'+'Maschinenname',Maschinenname, true); setState('Zemo.'+Terminialnr+'.'+'HubStatus',HubStatus, true); }); } });
Nun kann es weitergehen !!!
Danke... Danke... Danke
-
@Nobody28 Top, gerne.
-
Baue mir gerade noch das Ende Signal fürs Log ein
Dann kann ich die Laufzeit besser erfassen und kann auch besser feststellen, wenn das Script ggf. mal nciht zuende läuft.
Danke