NEWS
Enphase / Envoy / IQ-Gateway Solar Blockly Skript
-
@der_user sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
Mir scheint hier eher irgendein Datenpunkt zu fehlen.
DP hast du alle.
Und auch wenn dir einer fehlen würde, wären die Blöcke da.Starte mal den Javascript-Adapter neu.
-
@negalein said in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
Starte mal den Javascript-Adapter neu.
Danke das wars. Nun konnte ich das Script auch importieren.
Komisch, aber hier bestätigt sich mal wieder die Aussage " Reboot tut immer gut" -
@steffe-s said in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
@rollod um wieviel weicht denn der Bezug von deinem Stromzähler ab?
Entschuldige für die späte Antwort, aber ich bin leider nicht eher dazu gekommen nochmal alles zu testen.
Mit deinen neuen Skripten und der dazugehörigen Anleitung passt jetzt alle. Alle Werte die ich benötige sind vorhanden und sogar noch ein paar mehr
Vielen Dank nochmal dafür. -
vielen Danke für Deine Rückmeldung. Schön, dass alles gut geklappt hat.
Der Entwickler des Skriptes ist @greoj. An dieser Stellen an Dich vielen Danke für die Arbeit.
%
Ich habe es lediglich weiterentwickelt und hier im Thema ist mittlerweile etwas mehr entstanden als nur ein Skript zum Auslesen. Viel Spaß beim unterbrechungsfreien Ansehen und nutzen der Enphasewerte und immer viel Sonne und maximale Erträge!
-
Bei mir läuft das Script nun schon ein paar Monate tadellos!
Besten Dank dafür @Steffe-S & @greojNun ist es so das ich EVCC zum Überschussladen meiner zwei E-Autos nutze und das Gateway dort mit Token authentifiziert wird.
In EVCC wird über Nacht immer ein Fehler erzeugt aufgrund von fehlgeschlagener Authentifizierung.
Ich vermute das liegt am Script was den Token mit den enphase Servern täglich erneuert.
Kann das sein?
Wenn ja habt ihr einen Workaround dafür?Ich habe mal irgendwo gelesen das Besitzer und Installer(in meinem Fall bin ich beides) unterschiedliche Tokens haben und die Dauer bei ein Token vom installer nur 24h ist und der für den Besitzer 1Jahr.
Danke euch schon jetzt
-
du kannst auch den Token selber in das Skript laden, dann wird kein neuer Token geladen, sondern der eingefügte Token benutzt. Ich meine aber der Meinung, dass das Skript den Token nur erneuert, wenn kein Login im Gateway möglich ist, bzw. der Token abgelehnt wird.
-
@steffe-s
ich habe das mal gemacht mit dem Bearer Token.
Mal abwarten, was die nächsten Stunde/Tage passiert.Warum der Token immer erneuert wurde kann ich dir nicht sagen.
-
@chriz sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
gibt mal bitte eine Rückmeldung, auch wenn es funktioniert
Sonnige Grüße
-
@steffe-s
So funktioniert, auch nach 24h.Werde berichten ob es zwischenzeitlich wieder mal nicht funktioniert oder ob ich nur jedes Jahr einmal den Token erneuern muss.
-
ich habe mich mal etwas mit evcc beschäftigt und die Daten vom Skript "fast" alle per mqtt an evcc gesendet. Mir fehlen nur noch der Ladekapazitätswert der Batterie in % und die Strompreise
Wallbox und Auto sind fiktiv
Edit: @Chriz hier steht alles soweit beschrieben, ich habe jetzt alle Daten aus den beschriebenen Enphase Skripten, inkl automatischen Tokenbezug per mqtt an evcc schicken können....
-
@dexic sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
Hast du eine Idee, wie ich mit dieser Fehlermeldung umgehen soll?
Used invalid characters: 0_userdata.0.enphase.livedata.dry_contacts.h.dry_contact_load_name changed to 0_userdata.0.enphase.livedata.dry_contacts.h_.dry_contact_load_name
mit der Hilfe von @haus-automatisierung konnte die Fehlermeldung beseitigt werden. Hierzu muss das Skript "Enphase_Envoy_Datenabfrage" im Bereich (siehe Bild) bearbeitet werden. Hier auf die 3 Punkte klicken, den gesamten Inhalt herauslöschen und dann das geänderte Skript einfügen.
Skript:
for (const i in obj) { const value = obj[i]; const attr = i.replace(/[^a-zA-Z0-9._-]+/g, ''); if (typeof value == 'object') { IObSetState(id + '.' + attr, value); } else { if (existsState(id + '.' + attr)) { // Existing object/ Update if (typeof value === 'string' || value instanceof String) { // String setState(id + '.' + attr, value, true); } else { // It is a number or date if ((new Date(value)).getTime() > 0 && Number(value) > 1685000000 && Number(value) < 4100000000) { // Date setState(id + '.' + attr, value, true); setState(id + '.' + attr + '_str', formatDate(value, 'TT.MM.JJJJ SS:mm:ss'), true); } else { // Number setState(id + '.' + attr, Number(value), true); } } } else { // New object / Create if (typeof value === 'string' || value instanceof String) { // String createState(id + '.' + attr, value, false, { type: 'string', read: true, write: true }); } else { // It is a number or date if ((new Date(value)).getTime() > 0 && Number(value) > 1685000000 && Number(value) < 4100000000) { // Date createState(id + '.' + attr, value, false, { type: 'number', read: true, write: true }); createState(id + '.' + attr + '_str', formatDate(value, 'TT.MM.JJJJ SS:mm:ss'), false, { type: 'string', read: true, write: true }); } else { // Number createState(id + '.' + attr, value, false, { type: 'number', read: true, write: true }); // or type: "mixed"? } } } } }
nachzulesen hier: https://forum.iobroker.net/topic/76381/gelöst-used-invalid-characters-über-blockly/22?_=1723791171518