@FriMatze Sorry, kann dir leider auch nicht helfen, habe hierzu auch Unterstützung gebraucht.
Punkt 1 markieren, ist ja nur auf dem Papier in der go-eCharger API Spezifikation , damit man keine Variable vergisst.
NEWS
Schwarzwald-Stromer
@Schwarzwald-Stromer
Latest posts made by Schwarzwald-Stromer
-
RE: Status einlesen und in einzelne Variablen zerlegen
-
RE: Status einlesen und in einzelne Variablen zerlegen
Mit ioBroker den go-E Charger auslesen, den Werten aus dem json array Variablen zuordnen und diese an Objekte übergeben, damit von anderen Programmteilen darauf zugegriffen werden kann.
-
Im Tutorial des go-E Charger die gewünschten Werte markieren
-
In Admin ioBroker in der gewünschten JavaScript Instanz dann Objekte anlegen bei mir in javascript.0/Energie/
(ich hab da noch ein paar andere drin, da ich die Ladung in Abhängigkeit von PV_Leistung und aktuellem Verbrauch im Haus steuern möchte. Das Programm ist aber noch nicht fertig).
-
In Admin ioBroker zu Skripte wechseln, mit + eine neue Gruppe anlegen (bei mir Eigene Skripte),
dann in der neuen Gruppe ein neues Skript (mittlere Auswahl JS -JavaScript anlegen (Abfrage go-E Charger) -
Mit copy & paste nachfolgende Zeilen einfügen:
var alwx, alw0, etox, etoxd, nrg, nrg_x, nrg_4x, nrg_4xd, nrg_7x, nrg_7xd
// Trigger 1 min
schedule("*/1 * * * *", function () {
try {
require("request")('http://xxx.xxx.xxx.xxx/status', function (error, response, result) {
setState("javascript.0.Energie.go-E_Abfrage"/go-E_Abfrage/, result, true);
}).on("error", function (e) {console.error(e);});
} catch (e) { console.error(e); }data = (function () { try {return JSON.parse(getState("javascript.0.Energie.go-E_Abfrage").val);} catch(e) {return {};}})();
var alwx = parseInt(data["alw"]);
setState("javascript.0.Energie.alw_0"/alw_0/, alwx, true);var etoxd = parseInt(data["eto"]);
//Umrechnung in 1kWh
var etox = etoxd / 1000;
setState("javascript.0.Energie.eto_0"/eto_0/, etox, true);var nrg = data["nrg"]
var nrg_0x = parseInt(nrg[0])
setState("javascript.0.Energie.nrg_0"/nrg_0/, nrg_0x, true);var nrg_4xd = parseInt(nrg[4])
//Umrechnung in 1A
var nrg_4x = nrg_4xd / 10
setState("javascript.0.Energie.nrg_4"/nrg_4/, nrg_4x, true);var nrg_7xd = parseInt(nrg[7])
//Umrechnung in 1kW
var nrg_7x = nrg_7xd / 10
setState("javascript.0.Energie.nrg_7"/nrg_7/, nrg_7x, true);
});-
Die xxx.xxx.xxx. der IP Adresse noch durch die des eigenen go-E ersetzen und das Script starten,
Objektansicht aktualisieren. In der Objektansicht sollten jetzt die gleichen Werte stehen, wie bei der direkten Abfrage des go-E Chargers über den Browser. Evtl. die Javascript Instanz auch noch neu starten -
Dieses Script wird automatisch/ zeitgesteuert ausgeführt. Den Trigger hierzu könnt ihr übernehmen oder Euch mit Blockly einen "basteln" und die Zeile dann in dieses Skript reinkopieren. Wer andere Variablen benötigt muss dann zuerst wieder die Objekte anlegen und dann das Script anpassen
Viel Erfolg
Jürgen -
-
RE: Status einlesen und in einzelne Variablen zerlegen
leider kann ich nicht selbst scripten, nur kopieren und anpassen ;(
-
RE: Status einlesen und in einzelne Variablen zerlegen
Würde mich gerne dranhängen, habe ebenfalls den Go-e Charger und möchte zukünftig die Ladung eines E-Autos in Abhängigkeit der PV-Anlagenleistung unter Berücksichtigung des aktuellen Eigenverbrauchs steuern.