NEWS
[gelöst]Hycube PV Anlage
-
Hallo,
ich habe eine PV Anlage von Hycube. Da gibt es eine API Beschreibung für den Zugriff.
Leider fehlt mir da irgendwie das Wissen wie das in iobroker angelegt wird.
Ich bin grad dran mich mit JavaScript auseinanderzusetzen aber irgendwie krieg ich die Kurve nicht.
Ich lade mal die API Beschreibung hochAPI_Manual.pdfMir ist nicht klar wie ich wo was anlegen muss.
Habe versucht das Zeile für Zeile abzutippen aber es kommen dann relativ schnell Fehler.Gibts jemand der mich da unterstützen würde?
Gruß Heiko
-
@heiko-glohr sagte: Habe versucht das Zeile für Zeile abzutippen aber es kommen dann relativ schnell Fehler.
Du hast das Skript für ioBroker abgetippt? Dann poste es bitte in Code tags mit der richtigen IP-Adresse des Hycube.
-
@paul53
Wieder gelöschtIch kann das aber die Woche nochmal machen
-
@heiko-glohr sagte: Wieder gelöscht
Du kannst es mal hiermit versuchen:
// Konstanten anpassen! const ip = 'http://10.1.1.51/'; const path = '0_userdata.0.Hycube.Power.'; const user = "hycube"; const password = "hycube"; function MyJavascript() { var options = { url: ip + 'auth/', headers: { "Authorization": Buffer.from("Basic " + user + ":" + password).toString('base64') }, body: '<?xml version="1.0" encoding="UTF-8"? > [...]' }; request.post(options, function (error , response , body ) { if ( error ) { console .log ("Ein Auth-Fehler ist aufgetreten ") } else { options = { url: ip + 'get_values/', headers: { "Authorization": body }, body: '<?xml version="1.0" encoding="UTF-8"? > [...]' }; request.post(options, function(error, response, body) { if (error) { console .log ("Ein Daten-Fehler ist aufgetreten ") } else { var result = JSON.parse(body); setState (path + 'Batterie', result.Battery_P, true); setState (path + 'Grid', result.Grid_P, true); setState (path + 'Hausverbrauch', result.Home_P, true); setState (path + 'Solar', result.solar1_P, true); } }); } }); } schedule('*/5 * * * * *', MyJavascript);
-
Vielen Dank!
Soweit ich sehe, läuft das Script und ich bekomme Daten in die angelegten Datenpunkte.
Jetzt muss ich mal selber veruschen weitere Daten auszulesen.Da steckt ja denke ich noch einiges mehr drin und dann mal sehen wie ich das visualisiere.
In nächster Zeit werde ich mich mal selbst mehr mit JavaScript befassen.
Vielleicht verstehe ich dann die Zusammenhänge besser -
@paul53
Was ich noch nicht genz verstehe ist:setState (path + 'Solar', result.solar1_P, true); liefert im Datenobject als Wert {"ack":true}
mache ich in der nächsten Zeile win neues setState auf Solar2
also:setState (path + 'Solar2', result.solar2_P, true); Dann kommt dort als Wert eine Zahl ( Erzeugung PV Leitung)
Das ist aber dann nur das was die West Seite liefert.
Solar1 müsste Ost sein.Das macht mich noch etwas stutzig.
Wenn ich an der Anlage direkt nachschaue dann steht bei Solar1 und Solar2 eine derzeitige Erzeugung drin.Ansonsten müsste ich mal den Hersteller kontaktieren
-
@heiko-glohr sagte: result.solar1_P
Mal versucht mit?
result.Solar1_P
Falls es nicht funktioniert, logge mal
body
(ist ein JSON). -