NEWS
SOLVED [gelöst] Bug - Script wird ausgeführt, obwohl deaktiviert
-
Noch ein möglicher Bug.
Habe folgendes Script, an dem ich momentan am probieren bin (weil "cheerio" seit update nicht mehr läuft).
/* Photovoltaik: Piko 5.5 Anlage Diese Script stammt aus dem Homematic Forum. Von wem weiß ich nicht mehr. Lief bei mir als ccu.io.Script einwandfrei. Dieses Script habe ich nun auf iobroker umgeschrieben. @bahnuhr 02.01.2017 Dieter Müller */ //Variaben var idaktuell = 'javascript.0.Status.Photovoltaik.Leistung_aktuell'; var idTag = 'javascript.0.Status.Photovoltaik.Tagesleistung'; var idall = 'javascript.0.Status.Photovoltaik.Leistung_gesamt'; var idP1 = 'javascript.0.Status.Photovoltaik.Leistung_Strang1'; var idP2 = 'javascript.0.Status.Photovoltaik.Leistung_Strang2'; var NameAnlage = 'SN-Login'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'WGrZMkb'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.243.75'; // IP der Photovoltaik-Anlage var logging = true; Piko(); function Piko() { var cheerio = require('cheerio'); var request = require('request'); if (logging) log("Piko 5.5 auslesen"); //http://SN-Login:WGrZMkb@192.168.243.75 request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) { //log ("response= " + JSON.stringify(response)); log ("body=" + body); a = JSON.stringify(response); var d = a.split('>\r\n')[6]; //log (d); //var d = $("td"); //log (cheerio.load(body)); //var pwr = parseFloat(d.eq(14).text().trim()); // Energie aktuell in W //if(d) log ("d= " + JSON.stringify(d)); //var neu = JSON.parse(body); //log (d); //neu = $('li').slice(1).eq(0).text() //log (neu); //log ("neu = " + neu); //var t = neu.indexOf("Gesamtenergie"); //log ("t = " + t); // var d = $("td"); // log ("d= " + d); //var n = t.indexOf("Gesamtenergie"); //log ("d= " + d); //if(d) log ("d= " + JSON.stringify(d)); //log (d.eq(14).toString.trim()); //var pwr = $("td:eq(14)"); //log ("pwr = " + pwr.eq(14)); //$("p:eq(14)") // var pwr = parseFloat(d.eq(14).text().trim()); // Energie aktuell in W /* var day = parseFloat(d.eq(26).text().trim()); // Tagesenergie in kWh var all = parseFloat(d.eq(17).text().trim()); // Gesamtenergie in kWh var v1 = d.eq(56).text().trim(); // PV Generator Nr. 1 - Spannung in V var i1 = d.eq(65).text().trim(); // PV Generator Nr. 1 - Strom in A var p1 = parseInt(v1 * i1); var v2 = d.eq(82).text().trim(); // PV Generator Nr. 1 - Spannung in V var i2 = d.eq(91).text().trim(); // PV Generator Nr. 1 - Strom in A var p2 = parseInt(v2 * i2); if (isNaN(pwr)) pwr = 0; if (isNaN(p1)) p1 = 0; if (isNaN(p2)) p2 = 0; */ // if (logging) log("Leistung aktuell= " + pwr); /* if (logging) log("Tagesleistung= " + day); if (logging) log("Leistung gesamt= " + all); if (logging) log("Leistung Strang 1= " + p1); if (logging) log("Leistung Strang 2= " + p2); setState(idaktuell, pwr); setState(idTag, day); setState(idall, all); setState(idP1, p1); setState(idP2, p2); */ }); } schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () { log ("Auslöser: Schedule"); Piko(); }); schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr setState('javascript.0.Status.Photovoltaik.Tagesleistung', 0); });
Das Script ist deaktiviert!
Lt. Log wird es aber trotzdem ausgeführt:
Frage:
Warum wird das Script ausgeführt obwohl es doch deaktiviert ist ? -
@bahnuhr Schedules werden nicht immer gelöscht. Starte die JS-Instanzen neu, und wenn das nicht hilft, starte ioBroker neu. Dann sollte der Spuk vorbei sein.
Hast Du mal die Instanz für das Skript gewechselt ? -
Im script steht etwa von javascript.0 und im log javascript.1.
Hast du den Adapter mal neu gestartet? -
Eigentlich nicht; aber mach ich mal.
-
Ach ne.
Im Script speichert er die Variablen in "javascript.0"
aber das Script läuft doch auf Instanz 1.
(siehe oben). -
-
@bahnuhr
Das ist jetzt mal ein etwas größerer Ausschnitt.
Aber warum so geizig mit Übersicht?Ist es genau der Pfad, der im log angegeben wird?
- kann man auch jetzt noch nicht sehen
Was sagt das log denn ganz?
Piko 5.5 auslesen .......?....? -
war das gemeint ?
-
@Homoran sagte in Bug - Script wird ausgeführt, obwohl deaktiviert:
Was sagt das log denn ganz?
Piko 5.5 auslesen .......?....?versteh ich nicht.
Im Script steht:
if (logging) log("Piko 5.5 auslesen");
und das erscheint im log.
Obwohl das Script ja nicht läuft und ausgeschaltet ist. -
@bahnuhr sagte in Bug - Script wird ausgeführt, obwohl deaktiviert:
war das gemeint ?
Auch! Danke dafür.
Jetzt fehlt noch was im log wirklich steht.
@Homoran sagte in Bug - Script wird ausgeführt, obwohl deaktiviert:
Piko 5.5 auslesen .......?....?
Wird das Skript da gestartet (weil scheduled)
-
@Homoran sagte in Bug - Script wird ausgeführt, obwohl deaktiviert:
Wird das Skript da gestartet (weil scheduled)
Ja, ich weiß ja, dass es startet.
Dürfte es aber nicht; weil ja ausgeschaltet !
-
@bahnuhr sagte in Bug - Script wird ausgeführt, obwohl deaktiviert:
und das erscheint im log.
Aaah da kommt das her.
ok, ich hielt es für einen Anfang eines Satzes -
zumindest war die logik bis letzte Woche (vor dem update) so.
-> Das Script läuft doch nur wenn es links auch eingeschaltet wird <-
Und oben steht ja auch, dass es aus ist.
Aber trotzdem läuft es. -
@bahnuhr Schedules werden nicht immer gelöscht. Starte die JS-Instanzen neu, und wenn das nicht hilft, starte ioBroker neu. Dann sollte der Spuk vorbei sein.
Hast Du mal die Instanz für das Skript gewechselt ? -
@paul53 sagte in Bug - Script wird ausgeführt, obwohl deaktiviert:
Hast Du mal die Instanz für das Skript gewechselt ?
Ja, hatte ich.
Von 0 auf 1 (weil ja cheerio nicht läuft; und da bin ich mal auf 1 gegangen; damit die anderen Scripte nicht "gestört" werden)
-
Nachtrag:
Paul; hast du noch ne Idee wg. dem "cheerio"
(warum läuft der nicht mehr, vgl. auch anderer thread) -
@bahnuhr sagte:
Ja, hatte ich.
Dann sind die Schedules in der Instanz 0 noch aktiv. Also Instanzen neu starten !
-
Danke Paul, das wars.
Habe meinen win7 Laptop komplett neu gestartet.
Gewartet bis alle Instanzen grün waren und geschaut was im log passiert.Nix mehr. So is gut.
Nochmals Danke.