FHEM > Codeschnipsel

BMW i3-Daten vom Server per MQTT weiterleiten

<< < (2/3) > >>

hasenhirn:
Hallo Mario,

freut mich dass es dir gefällt  ;D
Mein Device sieht so aus wie im Anhang.
Das läuft auch schon ewigkeiten so ohne Probleme.
Ich hatte nur autocreate auf 0 gestellt nachdem alle Readings da waren
Da gab es irgend ein Problem aber das ist schon so lange her dass ich mich nicht mehr an die Auswirkungen erinnern kann.

Vielleicht hilft dir ja meine RawDefiniton weiter:

--- Code: ---defmod BMW MQTT2_DEVICE MQTT2_Client
attr BMW IODev MQTT2_Client
attr BMW autocreate 0
attr BMW devStateIcon DIS:Typ_2_Stecker@red NOTC:Typ_2_Stecker@blue CHAR:Typ_2_Stecker@green
attr BMW group Autos
attr BMW readingList MQTT2_Client:I3/updateTime_converted_timestamp:.* updateTime_converted_timestamp\
MQTT2_Client:I3/chargingHVStatus:.* chargingHVStatus\
MQTT2_Client:I3/vehicle_tracking:.* vehicle_tracking\
MQTT2_Client:I3/beRemainingRangeElectricKm:.* beRemainingRangeElectricKm\
MQTT2_Client:I3/updateTime_converted_time:.* updateTime_converted_time\
MQTT2_Client:I3/trunk_state:.* trunk_state\
MQTT2_Client:I3/overall_energy_consumption:.* overall_energy_consumption\
MQTT2_Client:I3/mileage:.* mileage\
MQTT2_Client:I3/condition_based_services:.* condition_based_services\
MQTT2_Client:I3/Segment_LastTrip_time_segment_end_formatted_date:.* Segment_LastTrip_time_segment_end_formatted_date\
MQTT2_Client:I3/heading:.* heading\
MQTT2_Client:I3/door_passenger_rear:.* door_passenger_rear\
MQTT2_Client:I3/chargingLevelHv:.* chargingLevelHv\
MQTT2_Client:I3/updateTime:.* updateTime\
MQTT2_Client:I3/beEnergyLevelHv:.* beEnergyLevelHv\
MQTT2_Client:I3/battery_size_max:.* battery_size_max\
MQTT2_Client:I3/remaining_charging_time_minutes:.* remaining_charging_time_minutes\
MQTT2_Client:I3/connectorStatus:.* connectorStatus\
MQTT2_Client:I3/Segment_LastTrip_ratio_electric_driven_distance:.* Segment_LastTrip_ratio_electric_driven_distance\
MQTT2_Client:I3/lights_parking:.* lights_parking\
MQTT2_Client:I3/door_passenger_front:.* door_passenger_front\
MQTT2_Client:I3/updateTime_converted_date:.* updateTime_converted_date\
MQTT2_Client:I3/unitOfEnergy:.* unitOfEnergy\
MQTT2_Client:I3/soc_hv_percent:.* soc_hv_percent\
MQTT2_Client:I3/window_driver_front:.* window_driver_front\
MQTT2_Client:I3/beChargingLevelHv:.* beChargingLevelHv\
MQTT2_Client:I3/hood_state:.* hood_state\
MQTT2_Client:I3/unitOfCombustionConsumption:.* unitOfCombustionConsumption\
MQTT2_Client:I3/lsc_trigger:.* lsc_trigger\
MQTT2_Client:I3/Segment_LastTrip_time_segment_end_formatted_time:.* Segment_LastTrip_time_segment_end_formatted_time\
MQTT2_Client:I3/gps_lng:.* gps_lng\
MQTT2_Client:I3/beRemainingRangeElectric:.* beRemainingRangeElectric\
MQTT2_Client:I3/gps_lat:.* gps_lat\
MQTT2_Client:I3/remaining_fuel:.* remaining_fuel\
MQTT2_Client:I3/lastUpdateReason:.* lastUpdateReason\
MQTT2_Client:I3/charging_status:.* charging_status\
MQTT2_Client:I3/beRemainingRangeFuelMile:.* beRemainingRangeFuelMile\
MQTT2_Client:I3/charging_connection_type:.* charging_connection_type\
MQTT2_Client:I3/beMaxRangeElectricKm:.* beMaxRangeElectricKm\
MQTT2_Client:I3/lastChargingEndReason:.* lastChargingEndReason\
MQTT2_Client:I3/Segment_LastTrip_time_segment_end_formatted:.* Segment_LastTrip_time_segment_end_formatted\
MQTT2_Client:I3/door_lock_state:.* door_lock_state\
MQTT2_Client:I3/single_immediate_charging:.* single_immediate_charging\
MQTT2_Client:I3/beMaxRangeElectric:.* beMaxRangeElectric\
MQTT2_Client:I3/beRemainingRangeFuel:.* beRemainingRangeFuel\
MQTT2_Client:I3/unitOfLength:.* unitOfLength\
MQTT2_Client:I3/door_driver_front:.* door_driver_front\
MQTT2_Client:I3/updateTime_converted:.* updateTime_converted\
MQTT2_Client:I3/beRemainingRangeElectricMile:.* beRemainingRangeElectricMile\
MQTT2_Client:I3/window_passenger_front:.* window_passenger_front\
MQTT2_Client:I3/door_driver_rear:.* door_driver_rear\
MQTT2_Client:I3/unitOfElectricConsumption:.* unitOfElectricConsumption\
MQTT2_Client:I3/kombi_current_remaining_range_fuel:.* kombi_current_remaining_range_fuel\
MQTT2_Client:I3/beRemainingRangeFuelKm:.* beRemainingRangeFuelKm\
MQTT2_Client:I3/Segment_LastTrip_time_segment_end:.* Segment_LastTrip_time_segment_end
attr BMW room E3/DC,MQTT,Wallbox
attr BMW stateFormat {\
my $SoC = ReadingsVal("BMW","chargingLevelHv",0) ;;\
my $Time_to_Charge = ReadingsVal("BMW","remaining_charging_time_minutes",0) ;;\
my $Ladestatus = ReadingsVal("BMW","chargingHVStatus",0) ;;\
my $Stecker = ReadingsVal("BMW","connectorStatus",0);;\
my $Status ="0";;\
if($Stecker eq "DISCONNECTED" )\
   { $Status = 'DIS'}\
elsif ($Ladestatus eq "NOT_CHARGING" )\
   { $Status = 'NOTC'}\
elsif ($Ladestatus eq "CHARGING" )\
   { $Status = 'CHAR'};;\
"$SoC %SoC / $Time_to_Charge Min. bis Vollgeladen  -\
$Status"\
}\

--- Ende Code ---

Gruß

Thomas

hasenhirn:
Moin,

seit vorgestern hat das Abrufen der Daten vom I3 nicht mehr funktioniert.
Heute habe ich die Lösung für das Problem gefunden  :o
Im Script habe ich die Adresse :
my $dataurl = "https://www.bmw-connecteddrive.com/api/vehicle";
ausgetauscht gegen :
my $dataurl = "https://b2vapi.bmwgroup.com/api/vehicle";

Jetzt läuft es wieder  ;D ;D ;D

Vielleicht kann ja jemand die Info gebrauchen.

LG

Thomas

tschimi:
Hi,
erstmal vielen vielen Dank für die Umstellung und Anpassung. Läuft auch super bis auf eine Kleinigkeit bei mir.

Es wird ca alle 20min ein neues Device angelegt. Die Namen siehen irgendwie "komisch" aus. Hat jemand eine Idee, woran es bei mir liegt? Es scheint auch so zu sein, das der SERVICE neu gestartet wird und das ggf. das Neuanlegen auslöst? Und in Zeile 103 gibt es ne uninitialisierte Variable - das scheint aber nicht das Problem zu sein...

Lg, tschimi

P.S.: Autocreate sollte man ausschalten ;-) Stupid me... Sorry.... Bleibt noch der "Fehler" in Zeile 103...

hasenhirn:
Hallo tschimi,

freut mich wenn es wieder bei dir läuft.
Den Fehler konnte ich bei mir reproduzieren.
Da er aber keine Auswirkungen zu haben scheint, werde ich mir das erst mal bei Gelegenheit anschauen.
Es eilt ja nicht so ;-)
Wenn ich was finde werde ich es teilen.

LG
Thomas

tschimi:
Hi Thomas,
dankeschön nochmal. Sag mal, ist es bei dir auch so, das bei jedem neubooten des FHEMServers der Names des BMW-Devices geändert wird, sprich, MQTT2 jedesmal ein neues Device anlegt in FHEM? Wenn die Verbindung mal steht, läuft alles - eben solange, bis mal neu gebootet wird... Wo ist da mein Denkfehler?

Lg, tschimi

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln