Beiträge: 409
Themen: 8
Registriert seit: Sep 2015
Bewertung:
2
KFZ: BMW e46 328CI ZHP 256PS
ich nutze::
Wohnort: NRW
22.01.2020, 21:30
(Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2020, 14:00 von N3mesis.)
Verbrauchsmonitor
Der Verbrauchsmonitor ist ein Addon für Kodi welches ähnlich wie Spritmonitor funktioniert. Das gute an dem Addon ist, dass es im Auto besser integriert ist, hübscher aussieht und schneller als Spritmonitor ist. Das Addon nimmt für die Berechnung die Kilometeranzeige und getankte Menge. Dabei muss die Menge vom Anwender eingegeben werden. Optional sind Kraftstoffsorte und Gesamtpreis. Das Addon stellt nur die letzten 10 Betankungen da, eine Scrollfunktion implementiere ich später. Alle weiteren Betankungen werden jedoch abgespeichert und nicht gelöscht. Was noch fehlt sind ein Addonlogo, das kommt später.
Bilder habe ich derzeit noch keine.
Was funktioniert schon alles?
- Hinzufügen von Verbrauchswerte
- Berechnung automatisch, minimal Angabe der Füllmenge
- Teil- und Vollbetankungen möglich
- Bei Erstbetankung werden die gefahrenen Kilometer angefragt
- Schnelle Eingabe möglich
- 10 Verbrauchswerte werden dargestellt, alle Einträge werden dennoch weiter in einer Datei gespeichert.
- Angabe von Gesamtkosten und Benzinsorte optional
- Angabe der Tankgröße über die Settings
- GUI vollständig mit Animationen
Im Allgemeinen ist dieses Addon nichts Weltbewegendes, vereinfacht aber meiner Meinung nach deutlich die Eingabe und Berechnung des Verbrauchs, da mir das über Spritmonitor ewig zu lange dauert alle eingaben zu machen, weiterhin war es doch etwas komplizierter als Anfangs gedacht. Aber am längsten hat die GUI gedauert (Die ich vor 2 Jahren schon zu 95% fertig hatte).
Mögliche Fehlermeldungen und was diese bedeuten können:
Code: ERROR: TCP returns:-1
Wenn das Addon den Kilometerstand nicht bekommt, keine Verbindung besteht oder schlicht noch nicht angefragt wurden.
In diesem Fall startet das Addon trotzdem und benutzt vorübergehend einen "Dummy-Kilometerstand von 0"
Installieren
Einfach die *.zip Datei auf einen Stick verschieben und mithilfe von "Settings"->"Addons"->"Addon von zip-File installieren" in Kodi installieren.
Voraussetzung für das Addon ist harrys " ibuscommunicator" BETA und Kodi.
Download
Ab sofort im Repository zu finden.
Github - Repo
GitRepo
Changelog
Ausf. A
- GUI komplett
- Weitestgehend alle Funktionen implementiert.
Beiträge: 3.332
Themen: 65
Registriert seit: Jul 2015
Bewertung:
33
KFZ: E39 Touring
ich nutze::
Wohnort: LKR Freising(Bayern)
was meinst du mit idenrerror?
hast du die richtige addon version?
Beiträge: 409
Themen: 8
Registriert seit: Sep 2015
Bewertung:
2
KFZ: BMW e46 328CI ZHP 256PS
ich nutze::
Wohnort: NRW
27.01.2020, 21:22
(Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2020, 21:23 von N3mesis.)
Nabend,
ich bekomme nen Einschuberror wenn ich versuche an deinem Communicator herumzubasteln. Ich poste mal eben detaillierter mein Problem, aber es betrifft den Logmailer den ich vor habe.
Ich will ja per Email mehr informationen zugeschickt bekommen.
Ausschnitt aus meiner PM die ich dir schicken wollte, wegen Speicher ging das aber nicht.
Nabend Harry,
habe heute den ganzen Tag versucht vom ibusCommunicator mehr als nur den Wert für den Odometer zu bekommen.
Mit der aktuellen Version von deinem Communicator geht auch für den Odometer alles in Ordnung.
Aber ich bekomme die Werte für "Range" und "Consumption", etc nicht.
Du hast mir damals eine modifizierte Version geschickt mit der Nummer "1.3.6.Q" bei der ich mehr Datenabfragen kann über TCP:
Code: elif given_args[0] == 'OBC' and given_args[1] == 'GET':
log('TCP %s: RECV >%s<' % (EVENT.tcp_port, message))
value = {'IBusCommunicator': {'time_unit': EVENT.obc_time_unit,
'speed_unit': EVENT.obc_speed_unit,
'distance_unit': EVENT.obc_distance_unit,
'consumption_unit': EVENT.obc_consumption_unit,
'fuel_unit': EVENT.obc_fuel_unit,
'odometer': EVENT.obc_odometer,
'arrive': EVENT.obc_arr,
'consumption1': EVENT.obc_cons1,
'consumption2': EVENT.obc_cons2,
'vin': EVENT.obc_vin,
'distance': EVENT.obc_dist,
'range': EVENT.obc_range,
'fuel_level': EVENT.obc_fuellevel,
'gm_states': EVENT.gm_states}}
connection.send('%s' % value)
Zugegeben ich hab mit so einer Datenstruktur noch nicht gearbeitet.
In allen anderen Version steht da nur:
Code: elif given_args[0] == 'OBC' and given_args[1] == 'GET':
log('TCP %s: RECV >%s<' % (EVENT.tcp_port, message))
if given_args[2] == 'ODOMETER':
value = EVENT.obc_odometer
connection.send('%s' % value)
Wenn ich in der aktuellen Version folgendes Versuche:
Code: elif given_args[0] == 'OBC' and given_args[1] == 'GET':
log('TCP %s: RECV >%s<' % (EVENT.tcp_port, message))
if given_args[2] == 'ODOMETER':
value = EVENT.obc_odometer
connection.send('%s' % value)
elif given_args[2] == 'CONSUMPTION1':
value = EVENT.obc_cons1
connection.send('%s' % value)
Dann kommt sofort ein "Ident error" und der Communicator läuft nicht.
Was meiner Meinung nach unsinn ist weil ich es nicht kopiert sondern eingetippt habe, auch mit 4x Leerzeile statt Tab. Alles Versucht.
Aktuell sieht meine Email so aus Bei ValueError mach ich einen return 0, deshalb die ganzen Nullen.)
Zitat:Werte die ich Abfrage:
Außentemperatur: 0 °C
Laufleistung: {'IBusCommunicator': {'fuel_unit': '', 'consumptio km
Temperatur Kühlflüssigkeit: 0 °C
Verbrauch (BC): {'IBusCommunicator': {'fuel_unit': '', 'consumptio L / 100 km
Reichweite: 0 km
Tankinhalt: 0 L
Handbremse: 0
Ich hänge derzeit nur an der Sache, meine Modifikationen an der Logmailer App funktionieren sonst Einwandfrei.
Meinst Du, du kannst dir das mal anschauen?
Beiträge: 3.332
Themen: 65
Registriert seit: Jul 2015
Bewertung:
33
KFZ: E39 Touring
ich nutze::
Wohnort: LKR Freising(Bayern)
du musst einfach nur "obc;get" anfragen, dann kriegst du alle werte im json-format zurück.
schaut dann so aus:
Code: {
"IBusCommunicator": {
"fuel_unit": "L",
"consumption_unit": "L/100KM",
"vin": "AB12345",
"time_unit": "24H",
"fuel_level": 35,
"speed_unit": "KM/H",
"distance": 10,
"distance_unit": "KM",
"gm_states": {
"zvprocessed": false,
"bonnet": false,
"zvlocked": false,
"passengerwindow": false,
"passengerdoor": false,
"trunkbuttonpress": false,
"sunroof": false,
"zvunlocked": false,
"passengerrearwindow": false,
"driverrearwindow": false,
"run_once": false,
"driverreardoor": false,
"indoorlights": false,
"trunk": false,
"driverwindow": false,
"zvlockstate": false,
"driverdoor": false,
"zvhardlocked": false,
"doorsopen": false,
"passengerreardoor": false
},
"odometer": 188884,
"range": "234 KM",
"consumption2": "9.9 L/100KM",
"consumption1": "10.0 L/100KM",
"arrive": "--:--"
}
dieses kannst du dann mit json.loads() in ein dictionary wandeln.
Code: import json
result = json.loads(rückgabe_der_anfrage)
odometer = result['IBusCommunicator']['odometer']
zvhardlocked = result['IBusCommunicator']['gm_states']['zvhardlocked']
da fällt mir auf, ich muss bei range und consumption die einheiten entfernen.
es gibt ein beta release auf github. das mit den buchstaben mache ich nicht mehr.
https://github.com/harryberlin/plugin.sc...mmunicator
Beiträge: 409
Themen: 8
Registriert seit: Sep 2015
Bewertung:
2
KFZ: BMW e46 328CI ZHP 256PS
ich nutze::
Wohnort: NRW
Ok, ich schau mir das morgen an ich hab mit json noch nie was gemacht, Zeit was neues zu lernen. Der Ident Error den ich hatte kommt davon, dass ich Notepad++ benutze. Und ich glaub du nutzt ja pycharm und pycharm macht aus Tabs immer leerzeilen. N++ macht das nicht, Tabs und Leerzeilen mixen ist nicht so toll bei Python.
Beiträge: 3.332
Themen: 65
Registriert seit: Jul 2015
Bewertung:
33
KFZ: E39 Touring
ich nutze::
Wohnort: LKR Freising(Bayern)
hab pycharm. aus tab macht das 4 leerzeichen.
oder wordpad(wenns mal schnell gehen muss) da muss man 4 space drücken.
Beiträge: 409
Themen: 8
Registriert seit: Sep 2015
Bewertung:
2
KFZ: BMW e46 328CI ZHP 256PS
ich nutze::
Wohnort: NRW
Jap, dann fühle ich mich bestätigt das es an den Tabs lag die N++ macht. Macht nichts, morgen probier ich das mal aus =)
Beiträge: 409
Themen: 8
Registriert seit: Sep 2015
Bewertung:
2
KFZ: BMW e46 328CI ZHP 256PS
ich nutze::
Wohnort: NRW
Nabend,
hab deine BETA aufm Netbook und im Auto installiert. Läuft einwandfrei bislang.
Ich habe den Verbrauchsmonitor und die digitale Serviceanzeige, also beide Addons, als BETA um die JSON-Datenstrukturabfrage ergänzt.
Der Modifizierte Logmailer läuft auch. Um allerdings noch an die Werte für "Handbrake", "Coolant" und "Outtemp" zu kommen, habe ich deinen Communicator erfolgreich um folgende Punkte ersetzt:
Code: [...]
'fuel_level': EVENT.obc_fuellevel,
'outtemp': EVENT.obc_outtemp,
'coolant': EVENT.obc_coolant_C,
'gm_states': EVENT.gm_states,
'ike_states': EVENT.ike_states}}
Das hat alles Einwandfrei funktioniert. Nur mit der Handbrake, das war wohl ein Griff ins Klo... weil der letzte Zustand nicht gespeichert wird. Ist also Zündstufe "Motor an" aus und auf "Radiostellung" ist der Wert immer False. Ich hab die *.zip in meinem Repository hochgeladen. Aktuell funktioniert sie nur auf Knopfdruck. In Zukunft mach ich einen Service daraus, damit die E-Mail zu einem gewissen Zeitpunkt verschickt wird.
Allerdings muss der Zeitpunkt halt so gewählt sein, dass ich auch wirklich alle Werte bekomme. Auf Radiostellung gibt es nicht alles.
Woher weiß ich also wann jmd. sein Fahrtziel erreicht hat, ohne das Zündstufe "Motor an" aus ist. ![Huh Huh](https://www.bmwraspcontrol.de/board/images/smilies/huh.png) Ideen? =)
Beiträge: 3.332
Themen: 65
Registriert seit: Jul 2015
Bewertung:
33
KFZ: E39 Touring
ich nutze::
Wohnort: LKR Freising(Bayern)
füge mal
Code: EVENT.ike_get_state()
time.sleep(0.500)
vor
Code: value = {'IBusCommunicator': {
ein.
Aber ich glaube das kriegt man nur bei Zündstufe 2.
Beiträge: 409
Themen: 8
Registriert seit: Sep 2015
Bewertung:
2
KFZ: BMW e46 328CI ZHP 256PS
ich nutze::
Wohnort: NRW
Ich werde mal schaun was geht. Heute ging beim Tippblinker das Fernlicht mit an, hab dann das Tippblinken ausgestellt und alles war wieder Ok. Vielleicht liegt es daran das ich Kodi bei der installation gesagt habe, es soll die die Settings behalten?
|