SoC: OVMS

Alles rund um SoC (Ladezustand des Fahrzeuges). Probleme, Fragen, Fehlfunktionen gehören hier hin
rleidner
Beiträge: 983
Registriert: Mo Nov 02, 2020 9:50 am
Has thanked: 5 times
Been thanked: 28 times

SoC: OVMS

Beitrag von rleidner »

Hier wird bei Fragen und Problemen zum SoC-Modul OVMS geholfen.

Aktueller Stand:
2.x: PR: https://github.com/openWB/core/pull/1996 (in 2.1.6 RC1 und Master merged)
1.9: PR: https://github.com/snaptec/openWB/pull/2855 (in 1.9.304.0 Nightly ab 2024-11-14 merged)

Das OVMS-Modul im Fahrzeug sendet je nach Ausführung die Daten über Mobilnetz und/oder WLAN an den OVMS-Server (z.B. ovms.dexters-web.de).
Die OVMS Smartphone-Apps (Android/ios) verbinden sich mit dem gewählten OVMS-Server.
Das SoC-Modul holt die Daten auch vom selben OVMS Server.

Folgende Daten werden bei der Konfiguration benötigt:
- Server URL
- User Id des Accounts im OVMS-Server
- Passwort des Accounts
- VehicleId des Fahrzeuges (wird bei der Einrichtung des OVMS-Moduls vergeben)
- Abfrage-Intervall wenn nicht geladen wird
- Abfrage-Intervall wenn geladen wird.
Zuletzt geändert von rleidner am Mi Nov 20, 2024 9:57 am, insgesamt 5-mal geändert.
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Kia EV6, Smart EQ forfour
Stevie_AN
Beiträge: 307
Registriert: Di Jan 19, 2021 11:04 am

Re: SoC: OVMS

Beitrag von Stevie_AN »

Hallo,

also eigentlich sendet das OVMS den SoC über MQTT ja bereits raus. Man müsste somit nur irgendwie der OpenWB klar machen, dass der ankommende Topic "ovms//*vehicleid*/metric/v/b/soc" als "openWB/set/lp/1/%Soc" verstanden werden soll.

ICH kann das leider nicht. Darum hab ich das über NodeRed lösen müssen.

WENN wir der OpenWB also beibringen wollen, dass sie den SoC vom OVMS richtig interpretieren soll, dann würde ich das nicht über Dexter's Server machen, sondern direkt im lokalen Netz regeln.

Und da bietet sich für mich halt MQTT an.
LP1: OpenWB-custom 1p3p; LP2: go-eCharger HOMEfix; PV1: 7,150 kWp Sunny Tripower 7000TL-20, PV2: 4,440 kWp SB 4000TL-20, Sunny Home Manager 2.0; Škoda Citigo e iV, Smart ED3
rleidner
Beiträge: 983
Registriert: Mo Nov 02, 2020 9:50 am
Has thanked: 5 times
Been thanked: 28 times

Re: SoC: OVMS

Beitrag von rleidner »

Stevie_AN hat geschrieben: Mi Sep 11, 2024 7:14 am Hallo,

also eigentlich sendet das OVMS den SoC über MQTT ja bereits raus. Man müsste somit nur irgendwie der OpenWB klar machen, dass der ankommende Topic "ovms//*vehicleid*/metric/v/b/soc" als "openWB/set/lp/1/%Soc" verstanden werden soll.

ICH kann das leider nicht. Darum hab ich das über NodeRed lösen müssen.

WENN wir der OpenWB also beibringen wollen, dass sie den SoC vom OVMS richtig interpretieren soll, dann würde ich das nicht über Dexter's Server machen, sondern direkt im lokalen Netz regeln.

Und da bietet sich für mich halt MQTT an.
Danke für den Hinweis - ich bin normalerweise auch für MQTT.
Mein OVMS-Modul published über MQTT auf einen lokalen Broker (nicht der in der openWB).
Von dort mache ich einiges in Node-Red wie logging diverser Daten in InfluxDB oder Starten der Klimatisierung im smart wenn die 12V-Batterie-Spannung zu niedrig wird.
SoC/Range an die openWB weiterzureichen ist dann kein grosser Aufwand mehr.

Warum ich es dann doch über OVMS-Server gelöst habe:
Ich wollte die Daten aus dem OVMS auch, wenn das Fahrzeug unterwegs ist - deshalb über den OVMS-Server.
Ich habe das Modul hauptsächlich implementiert, weil zum Jahresende die smartEQ Cloud abgeschaltet wird und ich wollte einen gleichwertigen Ersatz.

BTW, falls Du es nicht gesehen hast:
Ohne spezielles SoC-Modul und Node-Red ginge es wohl lokal auch: https://forum.openwb.de/viewtopic.php?p=7186#p7186
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Kia EV6, Smart EQ forfour
Stevie_AN
Beiträge: 307
Registriert: Di Jan 19, 2021 11:04 am

Re: SoC: OVMS

Beitrag von Stevie_AN »

rleidner hat geschrieben: Mi Sep 11, 2024 9:17 am

BTW, falls Du es nicht gesehen hast:
Ohne spezielles SoC-Modul und Node-Red ginge es wohl lokal auch: https://forum.openwb.de/viewtopic.php?p=7186#p7186
Ja, diese Lösung über den HTTP-Soc hatte ich am Anfang auch genau so eingerichtet. Es wäre natürlich interessant, ob man das OVMS-Script

Code: Alles auswählen

/**
/**
 * Module plugin: openWB soc
 *  Version 1.0
 * 
 * Dependencies:
 *  - OVMS firmware >= 3.2.008-266
 * 
 * Installation:
 *  - Save as /store/scripts/lib/openwbsoc.js
 *  - Add to /store/scripts/ovmsmain.js: openwbsoc = require("lib/openwbsoc");
 *  - Issue "script reload"
 * 
 */


// Get state of charge:
function getSoc() {
  var soc = OvmsMetrics.Value(["v.b.soc"]);
  
  if ( soc )
    print(Math.floor(soc));
  else print(0);
}

// API exports:
exports.get = getSoc;
...so abändern kann, dass es auf dem V3-Server den SoC auf den Broker der OpenWB mit dem passenden Topic schickt?
LP1: OpenWB-custom 1p3p; LP2: go-eCharger HOMEfix; PV1: 7,150 kWp Sunny Tripower 7000TL-20, PV2: 4,440 kWp SB 4000TL-20, Sunny Home Manager 2.0; Škoda Citigo e iV, Smart ED3
rleidner
Beiträge: 983
Registriert: Mo Nov 02, 2020 9:50 am
Has thanked: 5 times
Been thanked: 28 times

Re: SoC: OVMS

Beitrag von rleidner »

Stevie_AN hat geschrieben: Mi Sep 11, 2024 10:59 am ...so abändern kann, dass es auf dem V3-Server den SoC auf den Broker der OpenWB mit dem passenden Topic schickt?
Da sehe ich keine einfache Lösung; ich denke dazu müsste man die OVMS Firmware um eine generische mqtt-publish Funktion erweitern.
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Kia EV6, Smart EQ forfour
hengsti
Beiträge: 33
Registriert: Fr Dez 18, 2020 3:01 pm

Re: SoC: OVMS

Beitrag von hengsti »

Vielen Dank erstmal für das Modul.

Mit dem Update 2.1.6 kam das OVMS-Modul hinzu, welches ich gleich nutzen wollte. Leider erhalte ich eine Fehlermeldung und habe keinen Plan was falsch sein soll.
Screenshot_20241201-120319.png
(102.96 KiB) Noch nie heruntergeladen
rleidner
Beiträge: 983
Registriert: Mo Nov 02, 2020 9:50 am
Has thanked: 5 times
Been thanked: 28 times

Re: SoC: OVMS

Beitrag von rleidner »

Hmm, ich nehme an Du hast in der Konfiguration des Moduls alles richtig eingetragen.
Was steht im SOC-Log? (Einstellungen - System - Fehlersuche - SoC-Log), evtl. den Debug Level mal auf Info stellen und den SoC im Desktop manuell abrufen (Kreispfeil).
Log eines Abrufs hier als Code Block posten (Button </>)
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Kia EV6, Smart EQ forfour
hengsti
Beiträge: 33
Registriert: Fr Dez 18, 2020 3:01 pm

Re: SoC: OVMS

Beitrag von hengsti »

https://paste.openwb.de/Sy3B0IdtD9X4iyv

Code: Alles auswählen

2024-12-01 12:41:42,687 - {modules.common.configurable_vehicle:56} - {DEBUG:fetch soc_ev1} - Vehicle Instance <class 'modules.vehicles.ovms.config.OVMS'>
2024-12-01 12:41:42,688 - {modules.common.configurable_vehicle:57} - {DEBUG:fetch soc_ev1} - Calculated SoC-State CalculatedSocState(imported_start=None, manual_soc=None, soc_start=80)
2024-12-01 12:41:42,688 - {modules.common.configurable_vehicle:58} - {DEBUG:fetch soc_ev1} - Vehicle Update Data VehicleUpdateData(plug_state=False, charge_state=False, imported=None, battery_capacity=32000, efficiency=92, soc_from_cp=None, timestamp_soc_from_cp=None)
2024-12-01 12:41:42,688 - {modules.common.configurable_vehicle:59} - {DEBUG:fetch soc_ev1} - General Config GeneralVehicleConfig(use_soc_from_cp=False, request_interval_charging=180, request_interval_not_charging=1800, request_only_plugged=False)
2024-12-01 12:41:42,689 - {modules.common.component_context:26} - {DEBUG:fetch soc_ev1} - Update Komponente ['OVMS']
2024-12-01 12:41:42,689 - {asyncio:59} - {DEBUG:fetch soc_ev1} - Using selector: EpollSelector
2024-12-01 12:41:42,697 - {urllib3.connectionpool:973} - {DEBUG:fetch soc_ev1} - Starting new HTTPS connection (1): dexters-web.de:6869
2024-12-01 12:41:42,697 - {urllib3.connectionpool:973} - {DEBUG:fetch soc_ev1} - Starting new HTTPS connection (1): dexters-web.de:6869
2024-12-01 12:41:42,858 - {urllib3.connectionpool:452} - {DEBUG:fetch soc_ev1} - https://dexters-web.de:6869 "POST /api/token?username=xxx&password=0F%26t5w8PRE HTTP/1.1" 201 165
2024-12-01 12:41:42,858 - {urllib3.connectionpool:452} - {DEBUG:fetch soc_ev1} - https://dexters-web.de:6869 "POST /api/token?username=xxx&password=0F%26t5w8PRE HTTP/1.1" 201 165
2024-12-01 12:41:42,861 - {modules.common.req:32} - {DEBUG:fetch soc_ev1} - Get-Response: {"application":"owb-ovms-2.x-vh1","owner":"xxx","permit":"auth","purpose":"get soc","token":"c824e9bef323e8566c4b2a0b7f9a0ea2cb166ef996ee79063ce8e579602b42cd"}

2024-12-01 12:41:42,862 - {modules.vehicles.ovms.api:52} - {DEBUG:fetch soc_ev1} - create_token status_code=201
2024-12-01 12:41:42,863 - {modules.vehicles.ovms.api:54} - {DEBUG:fetch soc_ev1} - create_token response={
    "application": "owb-ovms-2.x-vh1",
    "owner": "xxx",
    "permit": "auth",
    "purpose": "get soc",
    "token": "c824e9bef323e8566c4b2a0b7f9a0ea2cb166ef996ee79063ce8e579602b42cd"
}
2024-12-01 12:41:42,865 - {modules.common.fault_state:49} - {ERROR:fetch soc_ev1} - OVMS: FaultState FaultStateLevel.ERROR, FaultStr <class 'AttributeError'> ("'api' object has no attribute 'confDict'",), Traceback: 
Traceback (most recent call last):
  File "/var/www/html/openWB/packages/modules/common/configurable_vehicle.py", line 66, in update
    car_state = self._get_carstate_by_source(vehicle_update_data, source)
  File "/var/www/html/openWB/packages/modules/common/configurable_vehicle.py", line 110, in _get_carstate_by_source
    return self.__component_updater(vehicle_update_data)
  File "/var/www/html/openWB/packages/modules/vehicles/ovms/soc.py", line 24, in updater
    return fetch(vehicle_update_data, vehicle_config, vehicle)
  File "/var/www/html/openWB/packages/modules/vehicles/ovms/soc.py", line 18, in fetch
    soc, range, soc_ts = api.fetch_soc(config, vehicle)
  File "/var/www/html/openWB/packages/modules/vehicles/ovms/api.py", line 190, in fetch_soc
    soc, range, soc_ts = loop.run_until_complete(a._fetch_soc(conf, vehicle))
  File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/var/www/html/openWB/packages/modules/vehicles/ovms/api.py", line 143, in _fetch_soc
    self.token = self.create_token()
  File "/var/www/html/openWB/packages/modules/vehicles/ovms/api.py", line 56, in create_token
    log.debug("create_token confDict=" + dumps(self.confDict, indent=4))
AttributeError: 'api' object has no attribute 'confDict'
rleidner
Beiträge: 983
Registriert: Mo Nov 02, 2020 9:50 am
Has thanked: 5 times
Been thanked: 28 times

Re: SoC: OVMS

Beitrag von rleidner »

Danke für die Rückmeldung.
Da ist noch ein Fehler wenn das Modul neu konfiguriert wird.
Das hatte ich leider bei mir lange nicht mehr getestet.
Ich behebe das und melde mich, wenn es ein PR gibt (dann aber erst mal im Zweig master).
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Kia EV6, Smart EQ forfour
hengsti
Beiträge: 33
Registriert: Fr Dez 18, 2020 3:01 pm

Re: SoC: OVMS

Beitrag von hengsti »

Okay. Vielen Dank für deine Mühe.
Antworten