NEWS
Zugangsgeschützte API-Schnittstelle auslesen mit Blockly
-
Du musst die datenpunkte selbst anlegen.
SetState legt sie nicht an.Die Daten kommen an, man kann sie im log erkennen
-
@oliverio
Ah ok,
Dann versuche ich das mal
Zu lange her, dass ich das gemacht hatte -
Hallo Oliviero,
irgendwie klappts noch nicht wirklich.
Das Script liegt unter Scripte\ioBroker\Energy\Hycube.
Unter Objekte gibts oben den Ordner Userdata.
Es gibt aber auch einen Ordner Javascript.Hab in verschiedenen Ordner einen state Number BatteryPower angelegt aber steht immer 0 in Orange
Wahrscheinlich falscher Order oder falsch angelegt
-
der usprüngliche anfrager hatte diese datenpunkte
setState("HyWeb.Batterie", BatteryPower); setState("HyWeb.Grid", GridPower); setState("HyWeb.Hausverbrauch", HausPower); setState("HyWeb.Solar", solar);
ich glaube ich hatte mal darauf hingewiesen, das das so nicht zulässig ist (meines Wissens nach), es gab da aber keine antwort. keine Ahnung ob ihr da noch irgend etwas anderes verwendet.
Wenn du die Datenpunkte angelegt hast, dann kopiere den Datenpunktnamen und trage ihn im Skript ein.
Also so das bspw anstatt HyWeb.batterie dort 0_userdata.Batterie dransteht. -
@oliverio said in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly:
GridPower
Hi, oki, Das habe ich verstanden und im alten Script war das auch mal so bei mir.
Ich hab das jetzt angepasst
setState("0_userdata.0.Datenpunkte_ioBroker.Hycube", BatteryPower); setState("0_userdata.0.Datenpunkte_ioBroker.Hycube", GridPower); setState("0_userdata.0.Datenpunkte_ioBroker.Hycube", HausPower); setState("0_userdata.0.Datenpunkte_ioBroker.Hycube", solar);
Dann lege ich in dem Hycube Ordner den Datenpunkt an aber selbes Ergebnis. 0
Die Orangenen Fehler von vorhin sind aber weg. Das würde bedeuten, dass er den Ordner findet
-
sorry war mein Fehler,
musste natürlich den Datenpunkt komplett im Script angeben.Jetzt gehts
Vielen Dank und schönen Sonntag
-
@heiko-glohr du schreibst die daten immer in den gleichen datenpunkt
das ist die bezeichnung des datenpunkts
0_userdata.0.Datenpunkte_ioBroker.Hycube
das ist die variable in der die daten enthalten sind und in den datenpunkt geschrieben werden sollen
BatteryPower
-
ok,
Werte kommen jetzt an aber noch wirr
Battery hat grag 81% und Wert kommt mit -1167,00667812
-
das sind die werte, die oben auf der console ausgegeben worden sind
von daher passt es vom wert, was da geliefert wird.
die interpretation der werte kann ich nicht. ich habe das gerät nicht.
aber evtl andere können da etwas dazu sagen.
hast du da eine weboberfläche oder app des gerätes?der dokumentation nach
file:///C:/Users/oweit/Downloads/API_Manual%20(3).pdfbedeuten die buchstaben das
Unit of measurement
Name Unit
C Capacity percent
P Power watt (W)
U Voltage volt (V)
I Current Ampere (A)
f frequenz Hertz (Hz){ "Battery_C": 100, "Battery_I": -21.299999237060547, "Battery_P": -1116.8814148439415, "Battery_V": 52.43574905395508, "Grid_I_L1": -19.158, "Grid_I_L2": -18.836, "Grid_I_L3": -18.267, "Grid_P": -13177.5, "Grid_V_L1": 237.6, "Grid_V_L2": 238.1, "Grid_V_L3": 236.2, "Grid_f": 50, "Home_P": 883.8000000000002, "Inv1_I_L1": 9.6, "Inv1_I_L2": 9.7, "Inv1_I_L3": 9.5, "Inv1_P_L1": -2365, "Inv1_P_L2": -2370, "Inv1_P_L3": -2372, "Inv1_V_L1": 238, "Inv1_V_L2": 238.4, "Inv1_V_L3": 236.1, "Meter2_P": -7043.7, "Meter3_P": -7017.6, "Solar1_I": 7.3, "Solar1_P": 2563, "Solar1_V": 381.8, "Solar2_I": 7.7, "Solar2_V": 464, "solar2_P": 3284, "solar_total_P": 5847 }
-
@oliverio
ah ok,ich spiel einfach mal bissl rum.
ISt ja schon mal gut wenn was zurückkommt. -
Nun passt alles soweit
Werte sind richtigSolarerzeugung kommt auch richtig zurück wenn ich das Script starte
Bleibt dann aber so stehenWie erreiche ich dass die Werte immer aktuell sind
-
du machst um deinen vorhandenen code die schedule anweisung
das müsste theoretisch alle 5 minuten dann ausführen.
mehr details findest du hier
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#schedule
ich arbeite damit allerdings nicht, daher nur theoretischschedule("* */5 * * * *"),()=>{ hier dein code });
-
@heiko-glohr Oder du verwendest den Befehl im Originalscript (siehe in einer meiner ersten Beiträge).
-
@schnipsel71
so ähnlich hab ich es gemachtJetzt muss ich nur noch schauen wie das alles zusammenspielt.
Ich hab Ost/West und nen SMA Wechselrichter und ich meine, dass ich beides auslesen muss um die korrekten Angaben zu bekommen.
Die Zahlen nur aus der Hycube Anlage stimmen nicht mit dem was die App anzeigt.
Da wäre die Gesamtproduktion grad mal die Hälfte.Wenn man bei denen nachfragt können die leider nicht viel beitragen.
-
@heiko-glohr Du kannst über die entsprechenden Datenpunkte auch die Momentanleistung oder die Momentanstromstärke deines externen Wechselrichters auslesen.
Ich habe beispielsweise folgende Programmzeile zur Erfassung meiner Solarerzeugung:if ((Math.round(result["solar_total_P"] - result["Meter2_P"])) < 0) { setState('0_userdata.0.HyWeb.Solarerzeugung', 0); } else { setState('0_userdata.0.HyWeb.Solarerzeugung', Math.round(result["solar_total_P"] - result["Meter2_P"])); }