NEWS
go-e Adapter
-
@homoran Der offset 101 sollte aber im Parameter tof mitkommen:
tof uint8_t time_offset: Zeitzone in Stunden für interne batteriegestützte Uhr +100 Beispiel: 101 entspricht GMT + 1
tme sollte ein String dieser Art sein, ohne Offset:
tme String Aktuelle Uhrzeit, formatiert als ddmmyyhhmm 0104191236 entspricht to 01.04.2019 12:36
So steht es bei go-e bei der API-Beschreibung.
Für mich scheint es, als hätte Dein go-e einfach keine aktuelle Uhrzeit. Hast Du geschaut, ob er den NTP-Server europe.pool.ntp.org erreichen kann?Gruss, Jürgen
-
So, habe jetzt etwas mehr Zeit - Hoffentlich
@wildbill sagte in Go e-charger:
Hast Du ihn bereits vom Internet getrennt?
Ja, bereits gestern abend
@wildbill sagte in Go e-charger:
Kommt tme als Wert auch so, wenn Du http://192.168.xx.yy/status im Browser aufrufst?
Ja, kommt auch so
Im Code steht etwas von
Version == C
da habe ich noch B@wildbill sagte in Go e-charger:
Der offset 101 sollte aber im Parameter tof mitkommen:
OK, da steht es auch drin
@wildbill sagte in Go e-charger:
ob er den NTP-Server europe.pool.ntp.org erreichen kann?
Kann er definitiv nicht, weil vom I-Net getrennt
EDIT:
Kurz ins Netz gelassen, jetzt is das Datum korrektWeißt du, wie oft er die Zeit abfragt?
-
@homoran Dann hast Du da wohl Deine Antwort. Anstatt der aktuellen Uhrzeit kommt bei tme dann bei Dir der obige Wert mit Bindestrich. Der bringt den go-e-Adapter wohl aus dem Tritt.
Meiner Meinung hast Du wenige Möglichkeiten:- Issue beim Adapter, dass sowas rausgefiltert wird und er ohne aktuelle Uhrzeit keine warns oder errors produziert.
- Dem go-e zumindest Zugriff auf den o.g. NTP-Server erlauben. Bei mir wäre es in der Firewall vom Edgerouter 4 kein Problem, Deinen Netzwerkaufbau kenne ich nicht
- Damit leben (könnte ich nicht, warns und errors im Log nerver)
- Internetzugang erst einmal erlauben bis die Uhrzeit da ist und dann sperren. Wobei ich nicht weiss, ob bei späteren Versuchen dann wieder das obige gesetzt wird, wenn er keinen NTP mehr erreicht
Es gab wohl schon die Bitte an go-e, den NTP-Server frei setzen zu lassen. Bislang ist da aber nix mit drin. Vielleicht kommt ja noch was.
Gruss, Jürgen
EDIT: Nein, Intervall zum Zeitholen weiss ich nicht, ich durchsforsche nachher mal die Logs, wie oft er das macht. -
@wildbill sagte in Go e-charger:
Damit leben
ist keine Option, da er dann anscheinend auch die anderen Werte nicht einliest.
Dann müsste zumindest im Adapter geändert werden, dass@wildbill sagte in Go e-charger:
sowas rausgefiltert wird und er ohne aktuelle Uhrzeit keine warns oder errors produziert.
@wildbill sagte in Go e-charger:
Internetzugang erst einmal erlauben bis die Uhrzeit da ist und dann sperren.
Hab ich jetzt erst einmal gemacht, aber
@wildbill sagte in Go e-charger:
ob bei späteren Versuchen dann wieder das obige gesetzt wird,
weiß ich auch nicht, deswegen die Frage, ob du weisst, wie oft der NTP abgefragt wird
-
@homoran sagte in Go e-charger:
@wildbill sagte in Go e-charger:
Damit leben
ist keine Option, da er dann anscheinend auch die anderen Werte nicht einliest.
Dann müsste zumindest im Adapter geändert werden, dass@wildbill sagte in Go e-charger:
sowas rausgefiltert wird und er ohne aktuelle Uhrzeit keine warns oder errors produziert.
@wildbill sagte in Go e-charger:
Internetzugang erst einmal erlauben bis die Uhrzeit da ist und dann sperren.
Hab ich jetzt erst einmal gemacht, aber
@wildbill sagte in Go e-charger:
ob bei späteren Versuchen dann wieder das obige gesetzt wird,
weiß ich auch nicht,
deswegen die Frage, ob du weisst, wie oft der NTP abgefragt wirdauch ein EDIT :
Mein Netzwerk ist eine Fritzbox, in der ich nur I-Net Sperren kann (ggf. noch eine Regel erstellen, muss ich mal suchen) und das WLAN mit Unifi -
@homoran So, die Box schaut exakt alle 5 Minuten nach dem NTP-Server. Wenn das Netz bei Dir wieder gesperrt ist, müsstest Du da mittlerweile sehen können, was passiert, wenn er nicht erreichbar ist.
Fritzbox kann AFAIK nur komplett sperren, bin da aber zu lange draussen. In Unifi geht es nicht, bzw. ginge nur, wenn ein Unifi security gateway als Router im Betrieb wäre.
Soweit ich weiss, hast Du einige Raspi in Betrieb. Wenn Du noch einen rumliegen hast, der auf Arbeit wartet, kann ich Dir nur Pi-hole ans Herz legen. Bei mir laufen zwei in Proxmox als LXC, einer für das Smarthome und einer für Laptop, Rechner usw. Die meisten Smarthome-Geräte haben keinen Internetzugang (Routerfirewall sperrt auf IP-Basis), für die, die es haben müssen, kann ich damit schauen, was so angefragt wird und bei Bedarf sperren oder durchlassen. Könntest Du ja im Netzwerk für den go-e auch so machen. NTP durchlassen und die restlichen Anfragen (Cloud und so) sperren.
Gruss, Jürgen
-
Ich habe das Log mal noch komplett durchsucht, was der go-e sonst so macht. Es scheint, dass er wirklich nur alle 5min den NTP-Server erreichen will. Ich sehe seit gestern morgen exakt eine Anfrage nach
i8p7v0.messaging.internetofthings.ibmcloud.comund das war gestern zu einer Zeit, als ich die App kurz offen hatte und das Auto am Kabel hing. Gerade habe ich die App auch mal aufgemacht, da gab es keine weitere DNS-Abfrage. Möglicherweise versucht die Box auch nur die Cloud zu erreichen, wenn geladen wird, sich also aktiv Werte ändern und bleibt sonst stumm.
Gruss, Jürgen
-
@wildbill Ich habe meinen Go-E seit gestern vom Elektriker angeschlossen. Aufgefallen ist mir bis jetzt:
Die Zeit wird falsch interpretiert: Fri 21 Februar 2021 gibt es nicht!
Der Zähler der Gesamtstrommenge zählt nur von man via Rfid-Chip das Laden aktiviert, und er rundet auf ganze Kwh!
Aktiviert man das Laden ohne Chip wird nicht gezählt, kann das jemand bestätigen?
-
@dskrt Das mit dem Datum und Wochentag ist mir gar nicht aufgefallen. Komische Sache. Da ich den Time-Datenpunkt nicht weiter auswerte ist mir das aber eigentlich egal. Da aber vom go-echarger schon als Datum der 21. kommt obwohl wir erst den 20. haben passt ja da schon was nicht. Mal beobachten, wie es sich die nächsten Tage entwickelt. Kommt das bei Dir auch so, oder steht bei Dir der 20.?
Gesamtstrom werte ich direkt im iobroker aus. Ich habe ein Script, welches saldiert und eigene Datenpunkte. Bei Ladestart wird der aktuelle Zählerstand (eine eigene Variable unter Javascript.0) als Startwert genommen, bei Änderungen des Datenpunktesgo-e.0.loaded_energy_kwh
dieser Wert dazu addiert und bei Ladeende dann der alte Zählerstand plus die aktuelle Ladung als neuer Zählerstand gespeichert. Somit habe ich exakt die geladene Menge und auch, wieviel ich schon insgesamt mit dem go-e geladen habe. Der Datenpunkt dws bzw. davon abgeleitet der o.g. rechnet kWh mit zwei Nachkommastellen, das reicht.
RFID verwende ich momentan (noch) nicht, dazu kann ich nichts sagen. Aber ohne funktioniert alles wie gewollt. Auch die im go-e gespeicherte Gesamtmenge wird aktualisiert.Gruss, Jürgen
EDIT: Ich habe wegen des falschen Wochentags mal ein Issue bei Github beim Adapter aufgemacht. Der Adapter scheint ja das an sich schon falsche Datum vom go-echarger schon falsch zu interpretieren, was den Wochentag angeht. Warum der go-echarger aber meint, heute wäre schon der 21. ist mir ein Rätsel. tds Offset steht auf 1 und tof (time offset) auf 101 UTC. Ist das schon korrekt so?
-
@wildbill Was das Datum angeht glaube ich dass dass ein Problem der falschen Interpretation der amerikanischen Notation ist: 20212002 am Freitag hatte ich Thu Februar 19, 2021 also 20211902.
Bei Ladeende ist bei mir gleich die geladene Energie wieder auf 0. Startest und stopst du den Lader auch über Iobroker ? Ich wollte im Prinzip meine Ladestatistik mit Sourceanalytix weiterführen an dem Punkt wo ich mit dem mobilen Lader aufgehört hatte. Wie gesagt, mein Go-e ist erst seit gestern angeschlossen und ich bin noch am rumprobieren...
-
Ich wollte im Prinzip meine Ladestatistik mit Sourceanalytix weiterführen an dem Punkt wo ich mit dem mobilen Lader aufgehört hatte.
Da bin ich ja mal gespannt. Ich hab es nicht hinbekommen. Sourcedings stürtzt nach dem Laden ab,
wenn sich der Wert "eto"ändert.(Ich verwende ein eigenes MQTT Script zum go-e auslesen und nicht einen der Adpater.)
( Nur falls einer fragt, Sourcedings ist gelöscht. Fehlermeldung nicht mehr vorhanden) -
@dskrt sagte in Go e-charger:
Was das Datum angeht glaube ich dass dass ein Problem der falschen Interpretation der amerikanischen Notation ist: 20212002 am Freitag hatte ich Thu Februar 19, 2021 also 20211902.
sehe ich auch so, denn
@dskrt sagte in Go e-charger:
Die Zeit wird falsch interpretiert: Fri 21 Februar 2021 gibt es nicht!
bei mir ist es ja im DP auch noch 2020!!!
@wildbill sagte in Go e-charger:
Auch die im go-e gespeicherte Gesamtmenge wird aktualisiert.
hatte ich auch schreiben wollen und den DP dazu hier angeben. da finde ich ihn nicht mehr, bzw. steht er jetzt nach neuverbinden auf 0
Dass es nur ganze kWh sind, finde ich auch nicht so toll.
@dskrt sagte in Go e-charger:
Startest und stopst du den Lader auch über Iobroker ?
das ist auch mein Plan, da ich erst einmal nur Überschussladen möchte, die Box nur einphasig an einer Steckdose hängen habe und das Auto im Moment relativ selten brauche.
Leider weiß ich nicht welchen DP ich dazu nehmen soll. amx einfach auf 0, oder allow_charging auf 0/1??Da würde ich es dann an die Box klemmen und alles weitere möglichst automatisieren.
Auch ich probiere seit gestern, und habe mal dieses Blockly heute "trocken" probiert.
Die Übergaben nach amx sowie start/stop ist noch nicht scharf geschaltet.
-
@homoran @Blechsoldat @dskrt
Also, das mit dem Datum habe ich bereits gelöst. Der go-echarger gibt ddmmyyhhmm aus, der Adapter liest es aber als yymmddhhmm. Der 21.02.2020 war ein Freitag, wir haben aber den 20.02.2021. Habe das Issue eben aktualisiert.Was das Laden angeht. Sobald ich am Auto ausstecke wird der geladene Wert im go-echarger genullt. Das ist wohl so by design. Deshalb arbeite ich da mit ein paar Hilfswerten und stoppe die Berechnung der geladenen Menge sobald der go-echarger den Datenpunkt "car" auf irgendetwas anderes als "2" (heisst Ladung) meldet. Wenn der Wert von "loaded_energy" bzw. "loaded_energy_kwh" auf 0 springt, dann wird ebenfalls nicht mehr weiter gerechnet. Somit saldiert das Script einfach so lange die geladene Menge bis die Ladung eben beendet ist. Und das habe ich in einem separaten Datenpunkt, den ich erst wieder selbst nulle, wenn eine neue ladung beginnt, also der Datenpunkt "car" wieder auf 2 geht. Ein separater Datenpunkt wird dann mit der Summe aus Wert vor der Ladung+geladene Menge geschrieben und zeigt den nach der Ladung insgesamt geladenen Stand des go-echarger an. Der Wert von "eto" also die gesamte geladene Menge ist bei mir nach einem stromlos machen des charger nicht 0, aber den verwende ich nicht, sondern eigene Datenpunkt die auf x.xxkWh genau sind.
Das Laden an sich ist bei mir immer aktiv und möglich. Ich steuere meist direkt im Auto, wenn ich mal nicht vollladen will. Ob es mit amx=0 geht habe ich noch nicht versucht, da ich noch auf 033 bin. Aber überlegt, ob das möglich wäre, habe ich schon. Ich bin auch nicht sicher, ob das Ädern des Wertes "alw" allow charging jedesmal ein Schreiben auf den Flash bedeuten würde, wäre auch nicht so toll.Gab es nicht irgendwo im Forum was fertiges, um Ladestationen per Überschuss zu laden. Ich meine da gab es ein Script oder gar einen Adapter. Mangels PV habe ich da aber nicht mehr parat.
Gruss, Jürgen
-
Hier mal noch meine zwei Scipte bzw. Auszüge, die ich verwende:
Das hier schaltet einen Datenpunkt auf true, wenn Laden beginnt, ansonsten auf false:Das hier aktualisiert meine eigenen Werte und rechnet auch gleich noch in Euro, was die Ladung so gekostet hat:
EDIT: Und hier meine eigenen Datenpunkte unter javascript.0:
Gruss, JürgenEDIT: HIER war das, was ich heute im Forum gelesen hatte. Ein Tool welches PV und Wallbox einbinden soll. Habe es aber nicht selbst getestet.
-
@wildbill Danke, schaue ich mir mal in Ruhe an zum Verstehen Eine Frage nur, sind die Datenpunkte permanent, behalten sie automatisch ihren Wert auch bei einem restart von Iobroker? Und kann man diese datenpunkte dann auch als Input für Sourceanalytix nutzen ?
-
@dskrt Ja, eigene Datenpunkte bleiben permanent. Nur wenn sie neu beschrieben werden ändert sich der Wert. Sourceanalytics nutze ich nicht, aber warum sollte das nicht gehen. Sind Datenpunke wie jeder andere auch. Ich habe sie teilweise für influxdb in Gebrauch.
Gruss, Jürgen
-
@wildbill Ich hab jetzt mal deine Skripte in Blockly eingesetzt. Morgen werde ich das mal ausprobieren. Eine Frage noch dazu, da ich im Ablauf der Skripte noch ein bisschen im Dunkeln tappe: Kann (oder darf) das alles in einem Skript stehen ? Es wird ja immer nur das ausgeführt was ge'trigger't wurde, auch wenn alles in einem Skript steht, oder ?
-
@dskrt Ja, theoretisch könntest Du alles, was Du jemals in javascript bzw Blockly machst in ein riesiges Script packen. Nur leidet dann halt die Übersichtlichkeit. Ich habe es in separaten Scripten, da ich hier z.B. unterschiedliche Ordner im Javascript-Adapter habe für Berechnungen, Benachrichtigungen, Werte schreiben usw. Da kann jeder machen wie und was er will.
Nicht vergessen, die Datenpunkte unter Javascript.0 selbst anzulegen. Das machen die Scripte nicht, aber ist ja nur einmal nötig. Sind alle vom Typ Zahl, nur halt mit unterschiedlichen Einheiten.Gruss, Jürgen
-
@wildbill Danke für die schnelle Antwort. Klar, dass die Skripte schon geordnet sein sollten, ich wollt nur mal prinzipiell wissen. Die Datenpunkte habe ich auch alle als Zahl eingepflegt. Ich habe die Datenpunkte unter userdata.0 stehen, ist das OK ?
Noch eine Bemerkung zu dem Gesamtzählerstand des Go-e: Ich habe den Eindruck dass der Gesamtzähler schon mit Kommastellen arbeitet, aber eben nur ganze kwh anzeigt. Ich habe gestern versuchsweise 0.6 kwh geladen und heute 2.6 kwh, gestern hat der Gesamtzähler 0 gezeigt, heute zeigt er 3 kwh an, sowohl in der API als auch in der App. Jetzt versuch ich noch mindestens nochmal 0.5 kwh zu laden um feststellen zu können ob der Zähler kaufmännisch rundet oder Kommastellen einfach abschneidet
-
@dskrt Dein Eindruck täuscht Dich nicht, es ist ja sogar in der Beschreibung der API so drin:
eto uint32_t energy_total: Gesamt geladene Energiemenge in 0.1kWh Beispiel: 130 bedeutet 13kWh geladen
Wenn Du Dir direkt das JSON vond er Box holst mit http://IPderBox/status bekommst Du den Wert eto genau so angezeigt. Ich habe da momentan 35kWh im iobroker stehen bei eto, als JSON kommt 350, also 35,0kWh. Wird halt im Adapter nur auf Vorkomma gerundet oder hinten abgeschnitten. Könnte man auch direkt verwenden, wenn man sich zusätzlich die Werte per mqtt in iobtroker holt, dann hätte man es auf 0,1kWh genau angezeigt.
Meine Skripte hatte ich aber schon vor dem go-echarger am Laufen, als ich noch mit IBBC/Ladeziegel geladen habe. Da hatte ich einen Zwischenzähler drin (ESP32) der mir die einzelnen Watt per MQTT in iobroker gebracht hat und die ich so auch schon für einen Gesamtzähler verwendet habe. So musste ich jetzt nur die Quell-Datenpunkte ändern und das war es.Gruss, Jürgen