Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter Bosch ebik connect / flow

NEWS

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    2.4k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    4.3k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    3.8k

Test Adapter Bosch ebik connect / flow

Geplant Angeheftet Gesperrt Verschoben Tester
184 Beiträge 38 Kommentatoren 50.5k Aufrufe 43 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • N no6mis

    @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?

    N Offline
    N Offline
    no6mis
    schrieb am zuletzt editiert von
    #175

    @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?

    1 Antwort Letzte Antwort
    0
    • S schienw

      @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: '&copy; ' + 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!');
          });
      
      
      
      
      ChaotC Offline
      ChaotC Offline
      Chaot
      schrieb am zuletzt editiert von
      #176

      @schienw Danke für dein Script.
      Irgendwie bekomme ich das bei mir nicht so richtig zum laufen.
      Alle Datenpunkte scheinen vorhanden zu sein, aber es wird keine Date erzeugt.
      Muss ich da noch irgendwas beachten?

      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

      1 Antwort Letzte Antwort
      0
      • M Migul_70

        @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?

        D Offline
        D Offline
        dodi666
        schrieb am zuletzt editiert von
        #177

        @migul_70 Hi, wie hast du das hinbekommen. Bei mir ist es auch so, wie von dir zuerst beschrieben. Ich bekomme es einfach nicht hin....Kann jemand vielleicht noch einen Tipp geben?

        1 Antwort Letzte Antwort
        0
        • N no6mis

          @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?

          D Offline
          D Offline
          Dee4seep
          schrieb am zuletzt editiert von
          #178

          @no6mis said in Test Adapter Bosch ebik connect / flow:

          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?

          SOC wird laut Bosch während des Ladens alle 5 Minuten aktualisiert und ist aus der Cloud abrufbar, wenn das Diebstahlschutz Abo abgeschlossen ist.

          Die API sieht ungefähr so aus:

          obc-rider-profile.prod.connected-biking.cloud/v1/state-of-charge/<BIKE_ID>
          

          zurück kommt ein JSON dict, das unter anderem stateOfCharge als Schlüssel enthält, mit einem Prozentwert für den Ladezustand.

          K 1 Antwort Letzte Antwort
          1
          • D Dee4seep

            @no6mis said in Test Adapter Bosch ebik connect / flow:

            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?

            SOC wird laut Bosch während des Ladens alle 5 Minuten aktualisiert und ist aus der Cloud abrufbar, wenn das Diebstahlschutz Abo abgeschlossen ist.

            Die API sieht ungefähr so aus:

            obc-rider-profile.prod.connected-biking.cloud/v1/state-of-charge/<BIKE_ID>
            

            zurück kommt ein JSON dict, das unter anderem stateOfCharge als Schlüssel enthält, mit einem Prozentwert für den Ladezustand.

            K Offline
            K Offline
            Kanumouse
            schrieb am zuletzt editiert von
            #179

            Ist hier schon Jemand weiter gekommen mit dem Auslesen des Akku-Standes?

            1 Antwort Letzte Antwort
            2
            • HomoranH Homoran verschob dieses Thema von Tester am
            • HomoranH Homoran verschob dieses Thema von ...nicht in offiziellem Repo am
            • M Offline
              M Offline
              McLane
              schrieb am zuletzt editiert von
              #180

              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?

              1 Antwort Letzte Antwort
              0
              • FriedhofsblondF Offline
                FriedhofsblondF Offline
                Friedhofsblond
                schrieb am zuletzt editiert von Friedhofsblond
                #181

                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.

                1 Antwort Letzte Antwort
                0
                • FriedhofsblondF Offline
                  FriedhofsblondF Offline
                  Friedhofsblond
                  schrieb am zuletzt editiert von Friedhofsblond
                  #182

                  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.

                  f32a82e3-4eb1-42ad-b992-13f70c90a753-image.jpeg

                  6cfe09c4-e558-4a50-af9e-59995844e1da-image.jpeg

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    ckhx78
                    schrieb zuletzt editiert von
                    #183

                    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:

                    4670d47e-02dc-4b3e-9639-d3efe5d85289-image.jpeg

                    T 1 Antwort Letzte Antwort
                    0
                    • C ckhx78

                      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:

                      4670d47e-02dc-4b3e-9639-d3efe5d85289-image.jpeg

                      T Offline
                      T Offline
                      tombox
                      schrieb zuletzt editiert von
                      #184

                      @ckhx78 Einfach den link nutzen der da sichtbar ist

                      1 Antwort Letzte Antwort
                      0

                      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
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      304

                      Online

                      33.0k

                      Benutzer

                      83.4k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2026
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe