Seite 2 von 2

Re: Go-E mit MQTT

Verfasst: 1. Apr 2023 17:54
von udo1toni
Mööp, Stopp.

Wenn Du über die UI konfigurierst, gibt es keine Textdatei.
Wenn Du über Textdatei konfigurierst, siehst Du in der UI, dass das Thing (oder auch das ein Item) da ist, aber Du kannst es nicht bearbeiten (es ist ein Schlosssymbol dran).
Das ist der Unterschied der beiden Konfigurationswege.

Die Textdefinition in einer *.things Datei ist halt ganz gut lesbar, die Parameternamen sind weitgehend identisch mit der Code-Ansicht in der UI, die Formatierung ist aber komplett anders.

Wenn also jemand ein Beispiel eines Things in der Form oben postet, heißt das nicht, dass Du es auf diese Weise versuchen sollst.
Es gibt tatsächlich keinen Unterschied zwischen *.things Definitionen und solchen, die über die REST API erzeugt wurden, bis auf die Sache mit der Bearbeitung. (Alles, was Du in der UI machst, geht über die REST API)

Aber nochmal die Frage: Hast Du mal die Angabe zur API weg gelassen?

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 07:33
von Tokamak
soulid hat geschrieben: 1. Apr 2023 15:49 Habe gerade mal ausprobiert. Da erscheint sofort ein "Communication Error" und im Log folgendes

Code: Alles auswählen

2023-04-01 15:48:41.516 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'goecharger:goe:e887e8d76a' changed from OFFLINE (COMMUNICATION_ERROR): java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ to OFFLINE
(COMMUNICATION_ERROR): java.lang.NumberFormatException: Expected an int but was 221.96 at line 1 column 266 path $.nrg[0]
Zumindest die letzte Zeile ist merkwürdig.

Lt. https://github.com/goecharger/go-eCharg ... keys-de.md ist "nrg" ein Array, der mit den Spannungen auf den Leitungen beginnt (energy array, U (L1, L2, L3, N), I (L1, L2, L3), P (L1, L2, L3, N, Total), pf (L1, L2, L3, N)).

Wenn ich bei mir den Wert mit

Code: Alles auswählen

http://192.168.1.22/api/status?filter=nrg
hole, erhalte ich

Code: Alles auswählen

{"nrg":[233,234,235,1,0,0,0,0,0,0,0,0,0,0,0,0]}
Das heißt, alle Felder scheinen ganzzahlig zu sein.

Das erwartet das Binding auch ("Expected an int"), aber es wurde offensichtlich vom goe-Charger eine Zahl mit Nachkommastellen geschickt (221.96) (BTW: 221V scheinen mir doch schon sehr wenig zu sein).

Es sieht also nach einem Schnittstellen-Problem aus.

Welche APIs hast du in der goe-Charger-App eingestellt? Bei mir sind "Lokale HTTP API v2 erlauben" und "Lokale HTTP APIv1 erlauben" beide on, wobei ich nicht glaube, das letzteres notwendig ist.

Kannst du bitte das obige HTTP-Kommando auch bei dir absetzen? Die IP-Adresse müsstest du natürlich anpassen.

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 07:41
von Tokamak
Da fiel mir gerade auf, du hast die Gemini, also den Nachfolger meines Home. Vielleicht kann die Gemini genauer messen, so dass go-e an der Schnittstelle Nachkommastellen liefert. Das würden wir mit obigen Status-Kommando sehen.

Wenn dem so ist, muss der Binding-Entwickler das Binding anpassen.

Oder du verzichtest auf das goeCharger-Binding und liest die Werte wie ich über MQTT.

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 11:13
von soulid
@udo1toni: Ich hatte die Frage gestern um 15:49 beantwortet :) . Wenn ich den API lösche bekomme ich sofort ein ""offine" um die Ohren gehauen.

@Tokamak. Das ist ein Interessanter Hinweis. Die URL http://192.**.0.**/api/status?filter=nrg gibt folgendes zurück

Code: Alles auswählen

{"nrg":[221.03,225.37,227.23,2.48,15.732,0.038,0.076,3465.147,4.752,7.605,0,3477.504,99.65214,55.48809,44.03845,100]}
Meine Rückmeldung beinhaltet tatsächlich Kommastellen in der Spannung (erste drei Werte) die Du garnicht erst bekommst.

Ich glaube ich schreibe den Entwickler der App mal an und versuche unterdessen die MQTT Verbindung aufzubauen.

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 11:34
von soulid
Tokamak hat geschrieben: 2. Apr 2023 07:41 ...
Oder du verzichtest auf das goeCharger-Binding und liest die Werte wie ich über MQTT.
Hallo Tkamak,
ob Dir Dein thing und items einstellen könntest? Ich würde das probieren...

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 13:20
von Tokamak
Das hängt ein bisschen davon ab, was du benötigst.

Mich interessieren aktuell nur zwei Energiewerte, bzw. ich möchte die Stromstärke ändern können:

Code: Alles auswählen

Thing mqtt:topic:goeCharger "go-eCharger" (mqtt:broker:bridge) {
Channels:
    Type number: EnergyTotal [ stateTopic = "go-eCharger/anynumber/eto" ]
    Type number: EnergySession [ stateTopic = "go-eCharger/anynumber/wh" ]
    Type number: RequestedCurrent [ stateTopic = "go-eCharger/anynumber/amp", commandTopic = "go-eCharger/anynumber/amp/set" ]
}
Die MQTT-Topics, hier eto, wh und amp, sind die Keys aus https://github.com/goecharger/go-eCharg ... keys-de.md
Bei Bedarf kannst du aus der Liste weitere Channels ableiten.

Daraus leiten sich dann wie üblich die MQTT-basierten Items ab:

Code: Alles auswählen

Number goeChargerTotalChargedEnergy { channel = "mqtt:topic:goeCharger:EnergyTotal" }
Number goeChargerSessionChargedEnergy { channel = "mqtt:topic:goeCharger:EnergySession" }
Number goeChargerRequestedCurrent { channel = "mqtt:topic:goeCharger:RequestedCurrent" }

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 15:13
von soulid
Bin jetzt mit folgendem Code online :D

Code: Alles auswählen

UID: mqtt:topic:daa13dcabe:cd06b8e169
label: Go-E-MQTT
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:daa13dcabe
channels:
  - id: WH
    channelTypeUID: mqtt:number
    label: Energie seit Verbindung
    description: null
    configuration:
      stateTopic: go-eCharger/204492/wh
Jetzt würde ich gerne noch die Leistung auslesen- vielleicht kann mir noch jemand helfen- finde kein Tutorial dazu
unter "nrg" bekomme ich durch MQTT.fx folgendes

Code: Alles auswählen

[ 221.03, 225.99, 227.23, 2.48, 15.77, 0.038, 0.076, 3473.438, 4.56, 7.942, 0, 3485.94, 99.64985, 53.10353, 45.98993, 100 ]
Mit "transformationPattern: JSONPATH:$." habe ich schon mal Sachen auslesen, die einen Namen vor dem Wert hatten. Aber wie lese ich den Wert ausschliesslich kommasepariert ein?

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 15:46
von Tokamak
Einen Hinweis gibt dir die obige Fehlermeldung

Code: Alles auswählen

(COMMUNICATION_ERROR): java.lang.NumberFormatException: Expected an int but was 221.96 at line 1 column 266 path $.nrg[0]
am Ende.

Du kannst mit $.nrg[7], $.nrg[8] und $.nrg[9] auf das 7. bis 9. Element des Arrays - gezählt ab 0 - und damit auf die Leistungswerte der 3 Phasen zugreifen und diese 3 verschiedenen Number-Items zuweisen.
Diese Werte musst du in einer Rule aufaddieren, um die Gesamtleistung zu erhalten.

Lt. https://github.com/goecharger/go-eCharg ... keys-de.md gibt es noch den Key -> Topic "tpa" (30 Sekunden Gesamtleistungsdurchschnitt).
Damit würde ich es zunächst versuchen. Vermutlich greift auch das Binding auf diesen Wert zurück.

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 17:11
von soulid
Du- hast natürlich Recht. Eigentlich brauche ich nur den tpa Wert- warum also diesen Aufriss machen...

Jetzt werde ich probieren die Werte für ein Überschussladen mit meiner PV zu benutzen. Ich fürchte das ich da nochmal im Forum vorstellig werden muß. Wird meine erste Berechnung. Anders Topic!

Danke für die Hilfe-->Läuft! Topic geschlossen

Re: Go-E mit MQTT

Verfasst: 2. Apr 2023 17:22
von Tokamak
Fürs Überschussladen schau dir mal evcc.io an