Hauptmenü

Wallbe Ladesäule

Begonnen von Det20, 24 Oktober 2022, 21:37:44

Vorheriges Thema - Nächstes Thema

Det20

Hallo,

ich bin gerade etwas am verzweifeln beim abrufen einer Wallbe Ladesäule. Bei älteren Versionen konnte man den aktuellen Status über den Parameter /daten abrufen, also zB "http://192.168.1.60/daten". Seit dem letzten Update ist das leider nicht mehr möglich, es wird ein Login benötigt. Ich habe das ein wenig nachverfolgt, es läuft so ab:

- Aufruf von "/daten"
- redirect auf login-seite, im HEAD scheint ein Cookie übergeben zu werden (schon beim laden von login ist ein "Cookie:" generiert)
- man loggt sich ein
- danach kann man /daten aufrufen, Cookie muss übergeben werden

Ohne Login landet man leider immer wieder auf der Login Seite, das Kennwort ist aber bekannt.

Mein Problem ist nun: Wie kann ich von einer HTTP Seite den HEAD-er auslesen, in dem sich der Cookie befindet? Ich würde es nun so versuchen, zunächst die Login-Seite aufzurufen um den Cookie abzugreifen und diesen dann im HEAD-er von "/daten" zusammen mit den Kennwort zu übermitteln. Oder kann ich irgendwie ein login simulieren und den Cookie abgreifen?

Ich habe versucht mich durch diverse Module, die sowas im Ansatz machen, zu kämpfen, bin aber gescheitert. Vielleicht hat jemand eine Idee oder Lösung?

[Update]
Verrückt, die erzeugen einen Cookie per JavaScript und da das clientseitig ausgeführt werden muss, wird es logischerweise nicht ausgeführt und entsprechend kein Cookie erzeugt.

Turtle

Hallo,

hast du es schon geschafft die Wallbox einzubinden?
Ich habe eine Wallbe Eco 2.0s und benutze diese aktuell mit EVCC. Eine Direkte Lösung mit FHEM würde mir aber besser gefallen!
EVCC liest die Daten über Modbus TCP.

Det20

Ich habe es mit einem schmutzigen workaround hinbekommen. Ein Windows Client loggt sich in die wallbox ein, liest dann den auth-Code (cookie) aus und übermittelt den alle 15 minuten an fhem. Fhem nimmt den und ruft damit die Daten ab. Wirklich unschön, aber läuft. Problem ist dass nur ein Client den cookie bekommt, der mit Javascript umgehen kann. Habe keine andere Möglichkeit gefunden

Turtle

Ich habe es geschafft die Wallbox ist jetzt mit Modbus TCP in FHEM.
defmod Wallbe ModbusAttr 255 60 192.168.188.53:502 TCP
attr Wallbe icon wallbox
attr Wallbe obj-c00400-len 1
attr Wallbe obj-c00400-map 0:Aus, 1:Ein
attr Wallbe obj-c00400-max 1
attr Wallbe obj-c00400-min 0
attr Wallbe obj-c00400-poll 1
attr Wallbe obj-c00400-reading Lade_Freigabe
attr Wallbe obj-c00400-unpack n
attr Wallbe obj-h00100-len 1
attr Wallbe obj-h00100-map 65:Ladestation frei, B:Ladestation belegt, C:Ladestation belegt, D:Ladestation belegt, E:Störung, F:Störung
attr Wallbe obj-h00100-poll 1
attr Wallbe obj-h00100-reading Device_status
attr Wallbe obj-h00100-unpack n
attr Wallbe obj-h00120-len 1
attr Wallbe obj-h00120-poll 1
attr Wallbe obj-h00120-reading Ladeleistung
attr Wallbe obj-h00120-unpack n
attr Wallbe obj-h00528-expr $val
attr Wallbe obj-h00528-hint slider,60,10,160
attr Wallbe obj-h00528-len 1
attr Wallbe obj-h00528-max 160
attr Wallbe obj-h00528-min 60
attr Wallbe obj-h00528-poll 1
attr Wallbe obj-h00528-reading Ladestrom_Vorgabe
attr Wallbe obj-h00528-unpack n
attr Wallbe room Photovoltaik
attr Wallbe webCmd Ladestrom_Vorgabe
attr Wallbe widgetOverride Ladestrom_Vorgabe:slider,60,10,160


Ist noch nicht ganz fertig für "attr Wallbe obj-h00100-map" hab ich noch nicht alle Werte getestet aber der Rest funktioniert.

Det20

Super, versuche ich mal. Halte mich bitte auf dem laufenden

Det20

#5
Mega, das funktioniert ja toll, danke. Bist du mit der Anbindung schon durch und kannst mir ev mehr geben?
Was ist denn noch möglich? Ich benötige zB die Information über die Chipkarte, die gerade gestempelt hat. Geht das?

Eine Sache noch: Die maximale Ladestärke wird ja immer mit 10 multipliziert. Kannst dein Beispiel so ändern, dass ich nicht "160" auswählen muss sondern (16); und er intern 160 schreibt?

Turtle

#6
Meine Definition sieht momentan so aus. Das mit den 160 ist schon geändert defmod Wallbe ModbusAttr 255 60 192.168.188.53:502 TCP
attr Wallbe icon wallbox
attr Wallbe obj-c00400-len 1
attr Wallbe obj-c00400-map 0:Aus, 1:Ein
attr Wallbe obj-c00400-max 1
attr Wallbe obj-c00400-min 0
attr Wallbe obj-c00400-poll 1
attr Wallbe obj-c00400-reading Lade_Freigabe
attr Wallbe obj-c00400-set 1
attr Wallbe obj-c00400-unpack n
attr Wallbe obj-h00102-expr ($val / 60)/60
attr Wallbe obj-h00102-len 2
attr Wallbe obj-h00102-poll 1
attr Wallbe obj-h00102-reading Ladezeit_Minuten
attr Wallbe obj-h00102-unpack n
attr Wallbe obj-h00300-expr $val / 10
attr Wallbe obj-h00300-len 1
attr Wallbe obj-h00300-poll 1
attr Wallbe obj-h00300-reading Ladeleistung
attr Wallbe obj-h00300-unpack n
attr Wallbe obj-h00528-expr $val / 10
attr Wallbe obj-h00528-hint slider,6,1,16
attr Wallbe obj-h00528-len 1
attr Wallbe obj-h00528-max 16
attr Wallbe obj-h00528-min 6
attr Wallbe obj-h00528-poll 1
attr Wallbe obj-h00528-reading Ladestrom_Vorgabe
attr Wallbe obj-h00528-set 1
attr Wallbe obj-h00528-setexpr $val * 10
attr Wallbe obj-h00528-unpack n
attr Wallbe obj-i00100-len 1
attr Wallbe obj-i00100-map 65:Ladestation frei, 66:Ladekabel angeschlossen, 67:Autorisierung erfolgt, 68:Fahrzeug lädt, 69:Störung, 70:Störung
attr Wallbe obj-i00100-poll 1
attr Wallbe obj-i00100-reading Device_status
attr Wallbe obj-i00100-unpack n
attr Wallbe obj-i00107-len 1
attr Wallbe obj-i00107-map 1:Kabelabweisung 13A und 20A, 2:Kabelabweisung 13 A, 3:Ungültiger PP-Wert, 4: Ungültiger CP-Wert, 5:Status F wegen fehlender Verfügbarkeit der Ladestation,6:Verriegelung, 7:Entriegelung, 8:LD ist während Verriegelung weggefallen, 9:Überstromabschaltung, 10:Kommunikationsproblem Ladesteuerung - Messgerät bei aktivierter Überstromabschaltung, 11:Status D, Fahrzeug abgewiesen, 12:Schützfehler erkannt, 13: Fahrzeugseitig keine Diode im Control Pilot Kreis, 14:DC Fehlerstrom detektiert
attr Wallbe obj-i00107-poll 1
attr Wallbe obj-i00107-reading Error
attr Wallbe obj-i00107-unpack n
attr Wallbe room Photovoltaik
attr Wallbe stateFormat {sprintf("Status: %s, Fehler Status: %s, Lade_Leistung %.1f Ampere",ReadingsVal($name,"Device_status",0), ReadingsVal($name,"Error",0), ReadingsVal($name,"Lade_Freigabe",0))}
attr Wallbe webCmd Ladestrom_Vorgabe:Lade_Freigabe


es ist noch viel mehr möglich (je nach Wallbox) die Adressen für die Abfrage kannst du aus den PDF Dokumenten von meinem ersten Post entnehmen.

Für die Ladefreigabe über FHEM muss der DIP Schalter 10 aktiviert sein!

Det20


Turtle

#8
Gerne, wenn ich noch Änderungen mache, oder Fehler finde melde ich mich.

Det20

#9
Erweitere gerade deine Vorschläge, komme aber hier und da nicht weiter. Laut Doku soll die IP in "315" gespeichert sein, 4x16 bit.
Wenn ich aber


attr Wallbe_mod obj-h00315-len 4
attr Wallbe_mod obj-h00315-poll 1
attr Wallbe_mod obj-h00315-reading IP
attr Wallbe_mod obj-h00315-unpack c


definiere, dann kommt nur der erste Teil, also "192". Wie konvertiere ich denn die 4 Bytes in die korrekte IP?

Bei "RFID Card Reader Card Data" (ab 606 für 16x16 Bits, Typ Character) kommt garnichts, obwohl der Card-Reader die letzte Karte gespeichert hat.
Kannst mir da ev auf die Sprünge helfen?

Turtle

#10
Vielleicht musst du alle Adressen einzeln angeben und dann mit einem userReading zusammenfassen.

z.B.
attr Wallbe_mod obj-h00315-poll 1
attr Wallbe_mod obj-h00315-reading IP1
attr Wallbe_mod obj-h00315-unpack n
attr Wallbe_mod obj-h00316-poll 1
attr Wallbe_mod obj-h00316-reading IP2
attr Wallbe_mod obj-h00316-unpack n
attr Wallbe_mod obj-h00317-poll 1
attr Wallbe_mod obj-h00317-reading IP3
attr Wallbe_mod obj-h00317-unpack n
attr Wallbe_mod obj-h00318-poll 1
attr Wallbe_mod obj-h00318-reading IP4
attr Wallbe_mod obj-h00318-unpack n
attr Wallbe_mod userReadings IP {" ".ReadingsVal("Wallbe_mod","IP1","").".".ReadingsVal("Wallbe_mod","IP2","").".".ReadingsVal("Wallbe_mod","IP3","").".".ReadingsVal("Wallbe_mod","IP4","")}



Det20


Det20

Falls es die Coil-Register bei dir gibt, hier noch die Option, den Controler neu zu booten. Und den Ladevorgang zu verhindern (zum Beispiel Urlaubsmodus oder so):

attr Wallbe_mod obj-c00402-allowWrite 1
attr Wallbe_mod obj-c00402-hint 0,1
attr Wallbe_mod obj-c00402-len 1
attr Wallbe_mod obj-c00402-max 1
attr Wallbe_mod obj-c00402-min 0
attr Wallbe_mod obj-c00402-poll 1
attr Wallbe_mod obj-c00402-reading Device_Enabled
attr Wallbe_mod obj-c00402-set 1
attr Wallbe_mod obj-c00402-unpack n

attr Wallbe_mod obj-c00413-allowWrite 1
attr Wallbe_mod obj-c00413-hint 0,1
attr Wallbe_mod obj-c00413-len 1
attr Wallbe_mod obj-c00413-max 1
attr Wallbe_mod obj-c00413-min 0
attr Wallbe_mod obj-c00413-poll 1
attr Wallbe_mod obj-c00413-reading Device_Reset
attr Wallbe_mod obj-c00413-set 1
attr Wallbe_mod obj-c00413-unpack n