NEWS
Ausführen von aktualisierendem JavaScript Code
-
@deejaydave said in Ausführen von aktualisierendem JavaScript Code:
Keiner ne Idee dazu?
Sieht so aus. Schade.
-
http://192.168.*.*/a?f=j
Mit diesem Befehl lese ich die Daten aus und bekomme:
cnt " 23559,653"
pwr 661
lvl 24
dev "(±0%)"
det ""
con ""
sts ""
cs0 " 0,000"
ps0 0
raw 221Evtl liegt es ja an " "
Nur wie bekomme ich das weg? -
So wie es aussieht, werden wir mit diesem Fehler leben müssen
-
@deejaydave sagte in Ausführen von aktualisierendem JavaScript Code:
So wie es aussieht, werden wir mit diesem Fehler leben müssen
Nein, müsst ihr nicht. Die Lösung ist aber extrem einfach:
An Stelle von
setState('Zählerstand', obj.cnt, true); setState('Aktuelle_Leistung', obj.pwr, true);
setState('Zählerstand',parseFloat( obj.cnt), true); setState('Aktuelle_Leistung', parseFloat(obj.pwr), true);
-
@asgothian Danke dir für die Rückmeldung. Ich hab das Blockly-Skript von "eierfeile" nachgebaut und so sieht mein javaskript aus:
var result;
schedule("*/5 * * * * *", async function () { try { require("request")('http://192.168.178.73/a?f=j', async function (error, response, result) { setState("0_userdata.0.Youless_Gesamtverbrauch"/*Youless_Gesamtverbrauch*/, getAttr((function () { try {return JSON.parse(result);} catch(e) {return {};}})(), 'cnt')); setState("0_userdata.0.Youless_Momentanverbrauch"/*Youless_Momentanverbrauch*/, getAttr((function () { try {return JSON.parse(result);} catch(e) {return {};}})(), 'pwr')); setState("0_userdata.0.Youless_Signalstaerke"/*Youless_Signalstaerke*/, getAttr((function () { try {return JSON.parse(result);} catch(e) {return {};}})(), 'lvl')); }).on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } });
Könntest du mir verraten wo und wie ich das in dieses Skript einbauen soll? Danke im Voraus
-
-
@asgothian Verstehe, danke. Aber in meinem Fall (ich nutze Blockly) kann ich es gar nicht einfügen. Also müsste ich das Blockly-Skript löschen und stattdessen ein Javaskript aufsetzen? Oder gibt es eine Möglichkeit den parsefloat im Blockly einzusetzen?
-
@deejaydave Es gibt einen Konvertierungsbaustein (bei mir im englischen toNumber) den du da vor einhängen kannst.
A.
-
@asgothian Manchmal sieht man den Wald vor lauter Bäumen nicht. Danke!
-
@asgothian said in Ausführen von aktualisierendem JavaScript Code:
@deejaydave sagte in Ausführen von aktualisierendem JavaScript Code:
So wie es aussieht, werden wir mit diesem Fehler leben müssen
Nein, müsst ihr nicht. Die Lösung ist aber extrem einfach:
An Stelle von
setState('Zählerstand', obj.cnt, true); setState('Aktuelle_Leistung', obj.pwr, true);
setState('Zählerstand',parseFloat( obj.cnt), true); setState('Aktuelle_Leistung', parseFloat(obj.pwr), true);
Bekomme ich weiterhin die Fehlermeldung von influxdb.
Do not store value " 23457,173" for javascript.0.Zählerstand because no number
-
Guten Abend in die Runde,
ich visualisiere die Werte aus der influxdb in Grafana. Leider habe ich Probleme den Gesamtverbrauch in Grafana zu visualisieren. Im IOBroker Adapter sehe ich den aktuellen Wert als Objekt. Nur kann ich in Grafana diesen Wert nicht einlesen. Folgenden Fehler erhalte ich in Grafana -> InfluxDB Error: unsupported mean iterator type: *query.stringInterruptIterator
Jemand eine Idee?
Gruß
Christian