Bei mir wäre das kein Problem, nur zu.
Bin schon ganz Neugierig.
Auslesen der BMW-Daten mit FHEM (225xe)
-
-
na, dann hier das nächste BETA-Release V0.3
Alle Daten und Angaben ohne Gewähr.
##########################################################
# Changelog V0.3 Beta
# SanityCheck für Credentials
# ..Eingabe VIN, User, Passwort auf bekannte Probleme überprüft
# Rückgabewerte verbessert --> bessere Fehleranzeige in BMW_CurrentState
# Datum / Version im Log
# BMW_Push in BMW_StatusUpdate umbenannt
# Etwas Aufgeräumt, Umsortiert, Dokumentiert
# WebWidget for Maps: Umgewandelt in Block-Quote statt .= Concatenation
# ..Bessere Lesbarkeit und leichter zu Editieren.
# Bug:doppelte Einträge im Log für LastTrip (Chart)
# ..Notify auf Watchdog BMW_wd_Trigger geändert, damit der Trigger bei Statusänderungen erst später kommt, wenn alle Daten aktuell sind.
# BMW_average_fuel_consumption_total
# ..Berechnung des groben durchschnittlichen Benzinverbrauchs BMW_FuelStatistics()
# ..Ausgabe beliebige Stellen, Anzeige mittels sprintf mit 2 Nachkommastellen
# Verbrauch 0 Liter Anzeige -- korrigiert für Statistik
# AddLog ergänzt: Mehr Einträge werden beim Stoppen geloggt selbst wenn per Notify kein Logging gemacht werden würde (gleiche werte)
# ..Bsp: Benzinverbrauch, 2x 0L/100km am Stück wurde bisher nur 1x geloggt
# addLog nochmals um 23:59 um die Diagramme schöner darzustellen
# Daten ergänzt
# ..chargingTimeRemaining ergänzt. Inkl berechneter Uhrzeit
# ..Status Parkleuten BMW_lights_parking ergänzt
# ..Connection Status ergänzt (Connection zu Ladekabel)
# ..check_control_messages
# ..chargingLogicCurrentlyActive
# ..battery_size_max
# Abfrage BMW_lights_parking beim Parken ergänzt
# Vereinfachtes Anlegen neuer Daten
# Notify für CheckControl Message mittels Pusch falls mal was käme
#
#Known or new Bugs
# Neue Bugs sind zu gut versteckt... hab bisher keine gefunden, aber ist ja bald Ostern.
########################## USES ##########################-
- Beide Dateien downloaden und öffnen
- einen beliebigen Dummy öffnen
- dort auf "Raw definition klicken
- den dortigen Text löschen und durch den Inhalt von BMW_FHEM.txt ersetzen
- Falls nicht bereits gesechehen: Den Inhalt des ersten Postings mit den Anmeldedaten dort ebenfalls hinten dran hängen
- Execute Commands drücken
- Edit Files --> bestehende 99_myBMWUtils.pm öffnen
- alles markieren und löschen
- Den Inhalt der 99_myBMWUtils.pm.txt dort hinen kopieren
- Testen
- Save Config falls alles klappt.
Kleine Warnung: der das push umgesetzt hat für sich (pushbullet oder anderes) könnte vielleicht kurz die Gratulation bekommen, dass das Auto eingefahren ist.
Wie immer mit eingeschränktem Support und ohne Garantien.
Die Anhänge zeigt es unten aktuell nicht an, daher hier nochmals die Links:
99_myBMWUtils.pm.txt
BMW_FHEM.txtIch bitte um Rückmeldungen, falls was nicht klappt. Gerne auch wenn's klappt
Habt ihr Feature-Wünsche? Ideen?
Auf meiner Roadmap stehen folgende, kleinere Features:
- Mehr Daten auslesen (sobald Verfügbar)Größere Features für die Zukunft
- Darstellung grafisch als Flootplan? (evtl. mit schönerem Design?)
- Ideen für besseres Updaten suchen
- Evtl. doch mal als Modul umsetzen?Weitere Ideen?
-
-
Folgendes kam per Konversation.
Da auch andere das Problem haben könnten, hier mein Lösungsvorschlag bzw. die weitere Diskussion dazu öffentlich
Zitat von SupportanfrageHallo Rumbel
[...]
In FHEM habe ich die Räume ‚Alle Lichter‘ und ‚BMW‘, die Variablen werden aber nicht aktualisiert weil ich keine Kommunikation mit dem BMW ConnectDrive herstellen kann.Ich denke das Kernproblem ist die folgende Meldung, die ich in FHEM erhalte, wenn ich zum Testen ein ‚reload 99_myBMWUtils-2‘ auslöse:
CodeCan't locate JSON/Parse.pm in @INC (you may need to install the JSON::Parse module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM) at ./FHEM/99_myBMWUtils-2.pm line 14. BEGIN failed--compilation aborted at ./FHEM/99_myBMWUtils-2.pm line 14.
Vielleicht kannst du mir einen Tipp geben wie ich da weiter komme, ich installierte zwar verschiedene JSON-Module leider ohne Erfolg.
Thema "Alle Lichter" ja, sorry... mein Fehler.
So heißt mein "Raum" in dem ich die Übersicht aller Lichter und Co pflege und dort hab ich die Karte geparktZum Fehler an sich:
Auf dem Raspberry muss nicht nur JSON und co installiert sein, sondern auch die Perl-Module dafür (erkennbar am .pm)Hier fehlt also das JSON::Parse modul.
Ich kann mich selbst grad nicht dran erinnern, wie ich das gemacht hatte... und welche Module dabei waren oder fehlten.Grundsätzlich hilft es, perl und das Betriebssystem (bei mir Raspbian) aktuell zu halten, dann ist schon mal das Meiste dabei.
Zur Installation einzelner Module je nach Betriebssystem googeln, wie man Perl-Module installiert.
Probier mal folgendes
Ansonsten könnte folgender Link zum Vorgehen helfen
https://www.raspberrypi.org/fo…topic.php?t=50254#p394203Wie gesagt: das ist leider stark davon abhängig, auf welchem System FHEM läuft (hardware) und welche Linux- oder Windows-Version da drunter läuft.
(und ich bin auch kein Linux-Experte :-D)
Bitte sag bescheid, ob's geklappt hat
-
Vielen Dank für die rasche Antwort.
Leider ergibt sich mit beiden Vorschlägen keine Verbesserung.
Könnte es sein, dass das am Raspberry 3 B+ liegt, dass da ev. noch nicht alle Module lauffähig sind?
Da ich vieles ohne Erfolg probierte werde ich nächste Woche den Raspberry und FHEM neu auf setzen mit der Hoffnung dass es dann klappt. Ich berichte wieder. -
hm, am b+ sollte es eigentlich nicht liegen
was kam denn beim
zurück?
was kam beim
zurück?
mal ein update generell gemacht?
Weitere Variante -
zu sudo apt-get install libjson-perl:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
libjson-perl ist schon die neueste Version (2.90-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 5 nicht aktualisiert.
zu perl -MCPAN -e'shell':Terminal does not support AddHistory.
There seems to be running another CPAN process (pid 1618). Contacting...
Other job not responding. Shall I overwrite the lockfile '/home/pi/.cpan/.lock'? (Y/n) [y]
y:cpan shell -- CPAN exploration and modules installation (v2.1101)
Enter 'h' for help.
cpan[1]>
zu install JSON::Parse:Reading '/home/pi/.cpan/Metadata'
Database was generated on Tue, 17 Apr 2018 14:17:02 GMT
Running install for module 'JSON::Parse'
Fetching with LWP:
http://www.cpan.org/authors/id…KB/JSON-Parse-0.55.tar.gz
Fetching with LWP:
http://www.cpan.org/authors/id/B/BK/BKB/CHECKSUMS
Checksum for /home/pi/.cpan/sources/authors/id/B/BK/BKB/JSON-Parse-0.55.tar.gz ok
Scanning cache /home/pi/.cpan/build for sizes
............................................................................DONE
Argument "1.4417_001" isn't numeric in numeric ge (>=) at /usr/share/perl/5.24/CPAN/Distribution.pm line 672.
Configuring B/BK/BKB/JSON-Parse-0.55.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for JSON::Parse
Writing MYMETA.yml and MYMETA.json
BKB/JSON-Parse-0.55.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for B/BK/BKB/JSON-Parse-0.55.tar.gz
cp lib/JSON/Tokenize.pod blib/lib/JSON/Tokenize.pod
cp lib/JSON/Parse.pod blib/lib/JSON/Parse.pod
cp lib/JSON/Parse.pm blib/lib/JSON/Parse.pm
cp lib/JSON/Tokenize.pm blib/lib/JSON/Tokenize.pm
Running Mkbootstrap for JSON::Parse ()
chmod 644 "Parse.bs"
"/usr/bin/perl" "/usr/share/perl/5.24/ExtUtils/xsubpp" -typemap "/usr/share/perl/5.24/ExtUtils/typemap" -typemap "typemap" Json3.xs > Json3.xsc && mv Json3.xsc Json3.c
arm-linux-gnueabihf-gcc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -DVERSION=\"0.55\" -DXS_VERSION=\"0.55\" -fPIC "-I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE" Json3.c
rm -f blib/arch/auto/JSON/Parse/Parse.so
arm-linux-gnueabihf-gcc -shared -L/usr/local/lib -fstack-protector-strong Json3.o -o blib/arch/auto/JSON/Parse/Parse.so \
\chmod 755 blib/arch/auto/JSON/Parse/Parse.so
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Parse.bs blib/arch/auto/JSON/Parse/Parse.bs 644
cp script/validjson blib/script/validjson
"/usr/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/validjson
Manifying 2 pod documents
BKB/JSON-Parse-0.55.tar.gz
/usr/bin/make -- OK
Running make test
Running Mkbootstrap for JSON::Parse ()
chmod 644 "Parse.bs"
PERL_DL_NONLAZY=1 PERL_USE_UNSAFE_INC=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/array.t ............... ok
t/collision.t ........... ok
t/JSON-Parse.t .......... ok
t/json-tokenize.t ....... ok
t/Json3.t ............... ok
t/kolmorogov42-1.t ...... ok
t/numbers.t ............. ok
t/object.t .............. ok
t/perl-monks-1165399.t .. ok
t/read-file.t ........... ok
t/rfc7159.t ............. ok
t/syntax.t .............. ok
t/test-empty-string.t ... ok
t/unicode.t ............. ok
t/utf8.t ................ ok
t/valid-json.t .......... ok
t/whitespace.t .......... ok
All tests successful.
Files=17, Tests=438, 3 wallclock secs ( 0.32 usr 0.06 sys + 2.25 cusr 0.16 csys = 2.79 CPU)
Result: PASS
BKB/JSON-Parse-0.55.tar.gz
/usr/bin/make test -- OK
Running make install
Manifying 2 pod documents
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/auto/JSON/Parse/Parse.so
Installing /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/JSON/Tokenize.pod
Installing /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/JSON/Parse.pod
Installing /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/JSON/Parse.pm
Installing /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/JSON/Tokenize.pm
Installing /usr/local/man/man3/JSON::Tokenize.3pm
Installing /usr/local/man/man3/JSON::Parse.3pm
Installing /usr/local/bin/validjson
Appending installation info to /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/perllocal.pod
BKB/JSON-Parse-0.55.tar.gz
sudo /usr/bin/make install -- OKUpdates habe ich mehrfach gemacht und jetzt nochmals und nach einem reboot
ist die Fehlermeldung im FHEM weg beim Befehl 'reload 99_myBMWUtils-2' und es erscheint die folgende Meldung:
Undefined subroutine &main::myBMWUtils-2_Initialize called at fhem.pl line 2488.und beim Befehl: 'rereadcfg fhem.cfg.bmwV2' erhalte ich folgende Meldungen:Please define SVG_0 firstPlease define allowed_WEB firstPlease define allowed_WEB firstIch denke ein kleiner Erfolg hat sich ergeben
-
1 tipp: in code-tags gepackt sieht das ganze kleiner und übersichtlicher aus
2. ich nutze gern die Spoiler-Tags hier im Forum um alles kompakter und übersichtlicher zu halten.
kannst ja vielleicht noch bearbeiten.so. JSON::Parse scheint zu gehen.
jetzt schauen wir mal weiter.
Zitatmain::myBMWUtils-2_Initialize called at fhem.pl line 2488
hm. hast du das modul umbenannt?
Wenn das Modul 99_myBMWUtils.pm heißt, muss es innen auch die Funktion geben, um das Modul als solches zu registrieren (selbst, wenn es noch kein Modul ist)
Wenn das Modul mittlerweile 99_myBMWUtils2.pm heißt, dann muss innen die Funktion dafür umbenannt werdendavon würde ich aber abraten. lieber die -2 im Namen entfernen
Du musst sonst bei jedem Update an die -2 denkenzum
Zitatrereadcfg fhem.cfg.bmwV2' erhalte ich folgende Meldungen:Please define SVG_0 firstPlease define allowed_WEB firstPlease define allowed_WEB first
öhm... äh... hä?
hast du ne zweite FHEM config angelegt?Da hab ich immer brav die finger von gelassen.
ich hab immer nur eine fhem.cfg und lass sogar dort die finger weg (lieber alles als raw commands senden) -
Ja das Modul heisst bei mir '99_myBMWUtils-2.pm' das muss aus versehen passiert sein, ist nicht gewollt,
habe ich nun umbenannt nach '99_myBMWUtils.pm'Für die BMW-Applikation habe ich mir 'fhem.cfg.bmwV2' erstellt mit der Idee, dass ich jederezit wieder auf die ursprüngliche Version 'fhem.cfg' zurück kann. Darauf kam ich weil ich in einem Beispiel 'fhem.cfg.demo' fand. Als Basis für die 'fhem.cfg.bmwV2' habe ich die 'fhem.cfg' genommen und den Inhalt vom 'FHEM_Config.txt' ergänzt.
Nach den Änderungen und einem 'shutdown restart' erhalte ich beim Befehl
-
mit dem o.g. Code-Schnipsel kannst das anlegen.
die VIM bitte vollständig und nicht nur die letzten 7 Stellen
-
Supper, jetzt funktioniert deine Applikation auch bei mir.
Nächste Woche werde ich dann die neuste Version versuchen zu integrieren.
Rumbel
Vielen, herzlichen Dank für deine Unterstützung und deine Geduldp.s.
Gibt es hier im Forum eine Anleitung wie die Code-Tags verwendet werde können?