FHEM - Hausautomations-Systeme > MQTT

Volvo MQTT Anbindung

(1/2) > >>

AlphaKingOne:
Hallo zusammen.
Ich hatte nach eine Volvo Fhem Anbindung im netzt gesucht aber leider nichts gefunden.
Deswegen hatte ich mir dann selbst was zusammen gestellt was ich euch gerne Vorstellen möchte.
Da dies bestimmt den ein oder anderen interessieren könnte.
Ich möchte auch gleich erwähnen dass ich auch nicht ein richtiger Profi in dem Bereich bin. Ich weiß dass man einiges besser machen kann oder so auch nicht machen sollte.
Ich bin da auch für Kritik offen und der Beitrag kann dann auch anderen helfen.

Als Basis hab ich dieses Gitub Programm genommen.
https://github.com/molobrakos/volvooncall
Worin ich meine Schwierigkeiten bei der Installation hatte war eine gescheite Anleitung zu finden wie man eine Aktuelle Python Version installiert. Am Ende bin ich auf diese Seite gestoßen https://maker-tutorials.com/python3-pip-raspberry-pi-installieren und es hat wirklich ohne Probleme funktioniert. Also erst mal Python und Pip installiert.
Dann

--- Code: ---cd ~
git clone https://github.com/molobrakos/volvooncall.git
cd volvooncall
python setup.py install      # oder python3
--- Ende Code ---

jetzt kann man schon mit dem Befehl voc testen ob es funktioniert.


Also in Normalfall führt man
--- Code: ---nano ~/.voc.conf
--- Ende Code ---
aus und füllt die Datei folgendermaßen aus


--- Code: ---mqtt_url: mqtt:@172.0.0.1
username: XXXXX@XXXX.de
password: XXXXXX
--- Ende Code ---

jetzt kann man das Ganze mit voc mqtt starten. Vorausgesetzt mosquitto ist schon installiert.

Jetzt komm ich zu einem Teil wo ich weiß dass es einfacher geht, aber ich und Linux rechte. Damit muss ich mich auch mal beschäftigen  ;D

Wenn man das ganze so einrichtet das man über User Fhem es ausführen kann ist das natürlich top. Ich wusste es nicht.

Deswegen hab ich dann
--- Code: ---sudo su
--- Ende Code ---
eingegeben und dann
--- Code: --- nano ~/.voc.conf
--- Ende Code ---
und dort die Config reingeschrieben.

Jetzt in Fhem

--- Code: ---define Volvo_MQTT dummy
attr Volvo_MQTT setList active
define VOC_MQTT_Status notify
Volvo_MQTT:active "sudo voc mqtt"    # sudo wenn die Config unter root läuft
--- Ende Code ---

Jetzt kann der Befhel über den Dummy gestartet werden. Wenn jemand weiß wie man den Prozess aus Fhem wieder beendet kann er dies mir gern mitteilen.


--- Code: ---define n_global_INITIALIZED notify
global:INITIALIZED\
set Volvo_MQTT active
--- Ende Code ---

Und so wird es beim Start von Fhem automatisch ausgeführt


--- Code: ---define Volvo_Status MQTT_DEVICE
attr Volvo_Status DbLogInclude .*
attr Volvo_Status IODev myBroker
attr Volvo_Status event-on-change-reading .*
attr Volvo_Status icon hue_room_driveway
attr Volvo_Status room Volvo
attr Volvo_Status subscribeReading_Alle_Fenster volvo/KENZEICHEN/binary_sensor/any_window_open/state
attr Volvo_Status subscribeReading_Alle_Tueren volvo/KENZEICHEN/binary_sensor/any_door_open/state
attr Volvo_Status subscribeReading_Bremsfluessigkeit volvo/KENZEICHEN/binary_sensor/brake_fluid/state
attr Volvo_Status subscribeReading_Durchschnitsgeschwindigkeit volvo/KENZEICHEN/sensor/average_speed/state
attr Volvo_Status subscribeReading_Durchschnitsverbrauch volvo/KENZEICHEN/sensor/average_fuel_consumption/state
attr Volvo_Status subscribeReading_Geo owntracks/volvo/KENZEICHEN
attr Volvo_Status subscribeReading_KilometerZaehler_1 volvo/KENZEICHEN/sensor/trip_meter1/state
attr Volvo_Status subscribeReading_KilometerZaehler_2 volvo/KENZEICHEN/sensor/trip_meter2/state
attr Volvo_Status subscribeReading_Lampen volvo/KENZEICHEN/binary_sensor/bulb_failures/state
attr Volvo_Status subscribeReading_Motor_Status volvo/KENZEICHEN/binary_sensor/is_engine_running/state
attr Volvo_Status subscribeReading_ODO_Meter volvo/KENZEICHEN/sensor/odometer/state
attr Volvo_Status subscribeReading_Reichweite volvo/KENZEICHEN/sensor/distance_to_empty/state
attr Volvo_Status subscribeReading_Reifen_Hinten_Links volvo/KENZEICHEN/binary_sensor/tyre_pressure_rear_left_tyre_pressure/state
attr Volvo_Status subscribeReading_Reifen_Hinten_Rechts volvo/KENZEICHEN/binary_sensor/tyre_pressure_rear_right_tyre_pressure/state
attr Volvo_Status subscribeReading_Reifen_Vorne_Links volvo/KENZEICHEN/binary_sensor/tyre_pressure_front_left_tyre_pressure/state
attr Volvo_Status subscribeReading_Reifen_Vorne_Rechts volvo/KENZEICHEN/binary_sensor/tyre_pressure_front_right_tyre_pressure/state
attr Volvo_Status subscribeReading_Scheiben_wisch_Wasser volvo/KENZEICHEN/binary_sensor/washer_fluid_level/state
attr Volvo_Status subscribeReading_Service_Warnung volvo/KENZEICHEN/binary_sensor/service_warning_status/state
attr Volvo_Status subscribeReading_Standheizung volvo/KENZEICHEN/switch/heater/state
attr Volvo_Status subscribeReading_Tank_Inhalt volvo/KENZEICHEN/sensor/fuel_amount_level/state
attr Volvo_Status subscribeReading_Tank_Inhalt_Litter volvo/KENZEICHEN/sensor/fuel_amount/state
--- Ende Code ---


KENZEICHEN dann bitte durch eures ersetzen

Ich hab dies vorwiegend gemacht um über Alexa die Standheizung zu Starten da mir die App von Volvo zulange fürs Login braucht und ich kein Fan von vorprogrammierten Zeiten bin.

Was ich mir hier vom Forum noch wünschen würde, wäre eine Erkennung ob das Auto zuhause steht.

Zurzeit sieht das Reading so aus.
--- Code: ---{"_type": "location", "tid": "volvo", "t": "p", "lat": 59.10093144479297, "lon": 8.969945185546875, "acc": 1, "tst": 1611939589, "now": 1611944401, "tst_iso": "2021-01-29T16:59:49+00:00"}
--- Ende Code ---

Ich weiß die Formatierung müsste man noch ändern. Wie weiß ich aber nicht wie ich sie am besten darstellen sollte so dass sie in Fhem verarbeitet werden kann. Und ob man überhaupt in Fhem ein „Home Bereich“ einrichten kann. Ich hätte da zwar eine Idee aber dazu müsste der Breiten und Längengrad in separate readings.  Und wenn jemand weiß ob und wie man die Außentemperatur noch mit loggen kann wäre das echt super.

Wie gesagt es ist keine Anleitung die man zu 100% übernehmen sollte. Aber es kann den ein oder anderem vielleicht weiterhelfen.

Beta-User:
Vermutlich ginge auch das Ding hier einfacher, wenn man MQTT2_DEVICE verwenden würde, dann kann auch die mosquitto-Installation entfallen und der System-Befehl in die readingList wandern.

AlphaKingOne:
hab das mit den Koordinate doch noch selbst hinbekommen.

erst beim Device ein
--- Code: ---userReadings G_Breite {(split ",",((split ":",(ReadingsVal("$name","Geo","")))[1]))[0]},\
G_Laenge  {(split ",",((split ":",(ReadingsVal("$name","Geo","")))[2]))[0]}
--- Ende Code ---

und dann hab ich noch ein Doif angelegt der dann sagt das dass Auto zuhause steht


--- Code: ---define Volvo_Zuhause_D DOIF (
[Volvo_Status:G_Breite:d] lt 51.85091 and [Volvo_Status:G_Breite:d] gt 51.83959
 and
[Volvo_Status:G_Laenge:d] lt 9.92052 and [Volvo_Status:G_Laenge:d] gt 9.91653)
 (setreading Volvo_Status Zuhause Ja)
  DOELSE
 (setreading Volvo_Status Zuhause Nein)

--- Ende Code ---

papa:
Man kann die Daten auch mit FHEM-Bord-Mitteln abrufen. Dazu kann das HTTPMOD verwendet werden.

--- Code: ---define VolvoOnCall HTTPMOD https://USERNAME:PASSWORD@vocapi.wirelesscar.net/customerapi/rest/v3.0/vehicles/VIN/status 300
attr VolvoOnCall extractAllJSON 1
attr VolvoOnCall requestHeader01 Content-Type: application/json
attr VolvoOnCall requestHeader02 x-device-id: Device
attr VolvoOnCall requestHeader03 x-originator-type: App
attr VolvoOnCall requestHeader04 x-os-type: Android
attr VolvoOnCall requestHeader05 x-os-version: 22
--- Ende Code ---

Username und Password sollten klar sein. Die VIN ist die Fahrgestellnummer.
Für die aktuelle Position einfach diese URL nehmen - der Rest ist gleich.

--- Code: ---define VolvoPosition HTTPMOD https://USERNAME:PASSWORD@vocapi.wirelesscar.net/customerapi/rest/v3.0/vehicles/VIN/position 300
--- Ende Code ---

Wenn jetzt Username und Password nicht im Klartext in der URL stehen würden, wäre das ganze noch besser.

tweety-rt:
Mit der Erklärung von @PAPA kann ich meinen Volvo auslesen. Allerdings sind die Timestamp zwei Stunden zurück. Diese ergeben sich wohl nicht aus der Uhrzeit im Volvo.
Kann mir jemand erklären, wie ich mit Post Kommandos senden kann? Laut API-Beschreibung kann man z.B. die Klimatisierung starten.
Habe die Beschreibung zu HTTPMOD gelesen aber nicht verstanden. Bei
https://USERNAME:PASSWORT@vocapi.wirelesscar.net/customerapi/rest/v3.0/vehicles/VIN/climatization-start bekomme ich eine Fehlermeldung.
 

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln