NEWS
Test Adapter Bosch ebik connect / flow
-
@ratte-rizzo said in Test Adapter Bosch ebik connect / flow:
Also ich hab sowohl das Connect-Modul verbaut, als auch das Abo... Was muss ich zum Testen tun?
Mein Verständnis ist, dass mit ConnectModul (und Abo) sowohl SOC als auch die letzte bekannte Position in der Cloud landen müssen, da sie auch ohne Bluetooth Verbindung in der Flow-App angezeigt werden.
Tauchen die Datenpunkte bei dir im Adapter auf?
@tombox falls nicht, was muss @ratte-rizzo tun, um dich bei der Implementierung zu unterstützen?@no6mis said in Test Adapter Bosch ebik connect / flow:
tombox falls nicht, was muss ratte-rizzo tun, um dich bei der Implementierung zu unterstützen?
@tombox, hast du mal geschaut, ob du die Position und den SOC aus dem ConnectModul auslesen kannst?
-
@bahnuhr
Anbei mein Script:// Script um aus den DP vom Adapter "bosch-ebike" eine MAP zu erstellen und den Weg zu zeichnen // bahnuhr, 03_2024 // Variablen var poly =""; // hier werden die GPS gespeichert // var trip = "03"; // DP bei den Objekten der eingelesen werden soll: bosch-ebike.0.trips.xx.details var logging = true; var center_gps = "53.465, 11.71"; // Mittelpunkt der Karte var zoom = 17 // Zoom der Karte var pfad = "route.html" // Dateiname - wird in vis.0 gespeichert // GPS einlesen und der Variablen poly zuweisen // html erzeugen und speichern in /vis.0/xxx.html var string = '<!DOCTYPE html>\n<html>\n<head>\n<title>Simple Leaflet Map</title>\n<meta charset="utf-8" />\n' string = string + '<body>\n' string = string + '<table border=0>' string = string + '<tr>' const idsCO2 = $('bosch-ebike.0.trips.*.id'); var f = 2 var hilf = 0 idsCO2.each(function(id, i) { var poly =""; var h= getState(id).val if (i < 9){ ii = i + 1 hilf = "0" + ii } else{ ii =i + 1 hilf = i + 1 } distance = 0 var distance = getState("bosch-ebike.0.trips." + hilf + ".attributes.distance").val; var startTime = getState("bosch-ebike.0.trips." + hilf + ".attributes.startTime").val; var ModeUsage01_name = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage01.name").val; var ModeUsage01_assistModeUsage = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage01.assistModeUsage").val; var ModeUsage01_color = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage02.color").val; var ModeUsage02_name = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage02.name").val; var ModeUsage02_assistModeUsage = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage02.assistModeUsage").val; var ModeUsage02_color = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage03.color").val; var ModeUsage03_name = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage03.name").val; var ModeUsage03_assistModeUsage = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage03.assistModeUsage").val; var ModeUsage03_color = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage04.color").val; var ModeUsage04_name = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage04.name").val; var ModeUsage04_assistModeUsage = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage04.assistModeUsage").val; var ModeUsage04_color = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage05.color").val; var ModeUsage05_name = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage05.name").val; var ModeUsage05_assistModeUsage = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage05.assistModeUsage").val; var ModeUsage05_color = getState("bosch-ebike.0.trips." + hilf + ".attributes.assistModeUsage05.color").val; var date = formatDate(startTime, "TT.MM.JJJJ SS:mm") string = string + '<td>' string = string + date + ' ' + distance/1000 + " KM" string = string + '<table border=0>' string = string + '<tr>' string = string + '<td bgcolor=yellow>' string = string + ModeUsage01_name string = string + '</td>' string = string + '<td bgcolor=blue>' string = string + ModeUsage02_name string = string + '</td>' string = string + '<td bgcolor=green>' string = string + ModeUsage03_name string = string + '</td>' string = string + '<td bgcolor=orange>' string = string + ModeUsage04_name string = string + '</td>' string = string + '<td bgcolor=red>' string = string + ModeUsage05_name string = string + '</td>' string = string + '</tr>' string = string + '<tr>' string = string + '<td>' string = string + ModeUsage01_assistModeUsage/1000 string = string + '</td>' string = string + '<td>' string = string + ModeUsage02_assistModeUsage/1000 string = string + '</td>' string = string + '<td>' string = string + ModeUsage03_assistModeUsage/1000 string = string + '</td>' string = string + '<td>' string = string + ModeUsage04_assistModeUsage/1000 string = string + '</td>' string = string + '<td>' string = string + ModeUsage05_assistModeUsage/1000 string = string + '</td>' string = string + '</tr>' var Prokm = distance /100 string = string + '<tr>' string = string + '<td>' string = string + Math.round(ModeUsage01_assistModeUsage/Prokm) + ' %' string = string + '</td>' string = string + '<td>' string = string + Math.round(ModeUsage02_assistModeUsage/Prokm) + ' %' string = string + '</td>' string = string + '<td>' string = string + Math.round(ModeUsage03_assistModeUsage/Prokm) + ' %' string = string + '</td>' string = string + '<td>' string = string + Math.round(ModeUsage04_assistModeUsage/Prokm) + ' %' string = string + '</td>' string = string + '<td>' string = string + Math.round(ModeUsage05_assistModeUsage/Prokm) + ' %' string = string + '</td>' string = string + '</tr>' string = string + '</table>' var poly =""; var string3 = ""; var obj = JSON.parse(getState("bosch-ebike.0.trips." + hilf + ".details").val); var end = obj.activityData.length - 1; var center_gps = '"' + obj.activityData[30].lat + ', ' + obj.activityData[30].lon + '"'; for (var x=0; x<=end; x++) { if (obj.activityData[x].lat != null) { poly = poly + "["+obj.activityData[x].lat+", "+obj.activityData[x].lon+"]" if (x < end) poly = poly + "," } else { } } if (logging) log (poly); string = string + '</td>' string = string + '<td>' var center_gps = "48.90376, 11.93504"; // Mittelpunkt der Karte var zoom = 11 string = string + '<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="crossorigin=""/></head>\n' string = string + '<body>\n<div id="map' + hilf + '" style="width: 600px; height: 400px"></div>\n<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew=="crossorigin=""></script>\n<script>\n' string = string + "var map"+ hilf + " = L.map('map" + hilf + "').setView([" + center_gps + "], " + zoom + ");\n" string = string + "mapLink = '<a href=" + '"http://openstreetmap.org"' + ">OpenStreetMap</a>';\n" string = string + "L.tileLayer( 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: '© ' + mapLink + ' Contributors', maxZoom: 18,}).addTo(map" + hilf + ");\n" string = string + 'var polyline = L.polyline([ \n' + poly + '\n], { color: "blue", weight: 3, opacity: .7, lineJoin: "round" } ).addTo(map' + hilf + ');\n' string = string + '</script>\n' string = string + '</td>' string = string + '</tr>' }); string = string + '</body>\n</html>' writeFile("vis.0", "/" + pfad, string, (error) => { if (logging) log('Datei "" gespeichert!'); }); -
@migul_70 Hallo,
hab's jetzt endlich geschafft, die URL zu bekommen. Leider wird er nicht grün. Gibt es da Probleme mit dem Passwort?
-
Ist hier schon Jemand weiter gekommen mit dem Auslesen des Akku-Standes?
-
H Homoran verschob dieses Thema von Tester am
-
H Homoran verschob dieses Thema von ...nicht in offiziellem Repo am
-
Moin, habe die Tage von Bosch eine Nachricht erhalten. Darin wurde um die neue Bosch-EBike-Live-Data Api geworben.
https://www.bosch-ebike.com/de/business/live-data-interface
Ist das wirklich etwas neues? Garmin Edge nutzt diese API schon. Leider erfahre ich aus dem Netz nichts darüber, ob Privatleute
diese API auch nutzen können. Wer weiß etwas genaueres? -
Moin,
bin gerade am basteln mit dem eBike-Zeugs.
Ich habe ein Connect-Modul nachgerüstet und auch die Flow+ aktiviert. (1. Jahr kostenfrei)
Mein IObroker-Adapter hat Verbindung und aktualisiert alle Werte - ausser Batteriestand
Habe auch homey zu laufen und dort eine Beta-App eBike installiert - auch hier alle Werte aktuell - bis auf Batteriestand.
Vielleicht muß ich auch erstmal den Akku über die App laden - mal sehen.
Um den Akku nicht immer auf 100% zu jagen hat ein User einen ESP (Sonoff) geflasht, dort kann man dann den max-Wert für die Ladung einstellen.
Der Sonoff wird als Komponente in der Bosch-App hinzugefügt und hat dann via BT direkten Kontakt zum eBike.
Der Sonoff schaltet dann bei erreichtem max-Wert das interne Relais ab.
Auf den Sonoff kommt man dann via Browser.
Habe mir einen Sonoff gekauft - der USB-Serial-Adapter zum flashen ist noch unterwegs.
https://github.com/Xunil99/ha-bosch-ebike?tab=readme-ov-file
https://xunil99.github.io/ha-bosch-ebike/
Ich melde mich, wenn ich fertig bin. -
also bei der homey-App funktioniert der Batteriestatus. Kann also wohl nicht an der Cloud liegen.
So wie ich schon vermutet habe muß man im Bike laden und nicht den Akku alleine.
Vielleicht geht auch extern laden, ins Bike stecken und eine Tour machen.
Aber dann ist ja die Ladeüberwachung Quatsch.

-
Moin!
Ich scheiter auch an der Anmeldung :-(
Egal was ich für Cokkies zulasse ( alle, die Seite alle usw.) alle gelöscht, Werbeblocker aus usw.
Ich bekomme immer folgende Meldung:
-
doppelt gepostet
-
also bei der homey-App funktioniert der Batteriestatus. Kann also wohl nicht an der Cloud liegen.
So wie ich schon vermutet habe muß man im Bike laden und nicht den Akku alleine.
Vielleicht geht auch extern laden, ins Bike stecken und eine Tour machen.
Aber dann ist ja die Ladeüberwachung Quatsch.

@Friedhofsblond Github version bitte mal testen
-
@tombox
Moin!Ich hatte nach einen Link mit "ios" gesucht, Sorry! :-)
Aber auch mit dem link will es nicht wirklich:
Na werde noch ein bisschen probieren :-|
-
Mein Gott was ein Akt, glaube aber inzwischen das Problem sitzt wie immer vor dem Bildschirm!! Sorry!

-
Danke für die Arbeit - funktioniert jetzt bestens mit allen Daten, auch dem Ladezustand der Batterie!
-
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden