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. Skripten / Logik
  4. JavaScript
  5. Laden EBikeAkku via Shelly SmartPlug M Gen3 Steckdose

NEWS

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    1.0k

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

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

Laden EBikeAkku via Shelly SmartPlug M Gen3 Steckdose

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 155 Aufrufe 4 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.
  • G Online
    G Online
    GombersIOB
    schrieb am zuletzt editiert von
    #1

    Ich habe einen Akku für mein Bosch EBike mit 650 Wh. Es gibt die Empfehlung Akkus immer zwischen 20% und 80% Ladezustand zu halten um die Lebensdauer maximal zu halten. Den unteren Wert zu beachten ist relativ einfach, das wird am Kiox ständig angezeigt.
    Aber dann steckt man den Akku ans Ladegerät und müsste ständig vorbeischauen um nicht zuviel zu laden.

    Ich habe mir das jetzt automatisiert über eine Shelly SmartPlug M Gen3 smarte Steckdose. Ich habe das auch mal für die MEROSS smarte Steckdose gemacht. Aber der Adapter macht nur alle halbe Stunde einen Update auf den Status, das war mir zu lang

    Die Shelly Steckdose akkumuliert die abgegebene Energie offenbar über ihre Lebensdauer.
    Ich habe zwei Ansätze über die ich das Laden steuere. Zum Einen gebe ich den Ladezustand am Anfang an und den gewünschten Ladezustand am Ende. Im Script vorgegeben ist ein Anfangsladestand von 20% und eine gewünschter Endladestand von 70%. Über VIS kann ich diese Werte via Schieberegler ändern. Wenn ich aber einfach nur den Stecker einschalte, wird mit diesen Settings gearbeitet.

    Der zweite Ansatz ist die Verwendung der Ladekennlinie. Der Ladestrom wird gegen Ende des Ladens geringer. Das Script tracked den Peak des Ladestroms. Fällt der unter einen vorgegebenen Faktor (LOW_POWER_FACTOR, derzeit bei mir 0.5) dann wird das Laden beendet. Das Ganze ist sehr schön bei Olafs Pedal&Perspektive beschrieben. Olaf hat eine Script bereitgestellt, das direkt auf dem Shelly SmartPlug läuft.

    Meine VIS-Seite dafpr sieht so aus:
    7062f311-c1b7-4118-9c30-5b120ee01da8-image.jpeg

    Ich kann, zwischen zwei Akkugrößen wählen und die Ladezustände einstellen. Die Anpassung der Werte kann jederzeit gemacht werden, das Script nimmt immer die eingestellten Werte.
    Ich habe zwei Scripte am Laufen.
    Das Eine handelt das Ein- und Ausschalten.
    Das Zweite triggert einen Timer, Dabei ist mir wichtig, dass der Timer jederzeit eine gewise zeitlang gestoppt und wieder gestartet werden kann, ohne dass die Werte verloren gehen. Ich habe das derzeit auf MAX_MINUTES_STOPPED = 20 (Minuten) festgelegt.

    Ich lasse mir Meldungen über Pushover ausgeben. Zur besseren Übersicht über meine Meldungen habe ich mehrere Pushover-Instanzen laufen. Ich lasse mir das "richtige" Pushover über ein globales Script geben. Das passiert am Anfange der Scripte über:

    // ==== Pushover ==================================
    const pushmessage:string = iobGlbl_getPushoverInstance("ebikebattery");
    

    Hier kann man auch einfach direkt den Namen der Pushover-Instanz eingeben.

    SwitchOnOff.ts Handelt das Ein/Ausschalten
    BatteryMonitor.ts Steuert den Timer

    G 1 Antwort Letzte Antwort
    0
    • G GombersIOB

      Ich habe einen Akku für mein Bosch EBike mit 650 Wh. Es gibt die Empfehlung Akkus immer zwischen 20% und 80% Ladezustand zu halten um die Lebensdauer maximal zu halten. Den unteren Wert zu beachten ist relativ einfach, das wird am Kiox ständig angezeigt.
      Aber dann steckt man den Akku ans Ladegerät und müsste ständig vorbeischauen um nicht zuviel zu laden.

      Ich habe mir das jetzt automatisiert über eine Shelly SmartPlug M Gen3 smarte Steckdose. Ich habe das auch mal für die MEROSS smarte Steckdose gemacht. Aber der Adapter macht nur alle halbe Stunde einen Update auf den Status, das war mir zu lang

      Die Shelly Steckdose akkumuliert die abgegebene Energie offenbar über ihre Lebensdauer.
      Ich habe zwei Ansätze über die ich das Laden steuere. Zum Einen gebe ich den Ladezustand am Anfang an und den gewünschten Ladezustand am Ende. Im Script vorgegeben ist ein Anfangsladestand von 20% und eine gewünschter Endladestand von 70%. Über VIS kann ich diese Werte via Schieberegler ändern. Wenn ich aber einfach nur den Stecker einschalte, wird mit diesen Settings gearbeitet.

      Der zweite Ansatz ist die Verwendung der Ladekennlinie. Der Ladestrom wird gegen Ende des Ladens geringer. Das Script tracked den Peak des Ladestroms. Fällt der unter einen vorgegebenen Faktor (LOW_POWER_FACTOR, derzeit bei mir 0.5) dann wird das Laden beendet. Das Ganze ist sehr schön bei Olafs Pedal&Perspektive beschrieben. Olaf hat eine Script bereitgestellt, das direkt auf dem Shelly SmartPlug läuft.

      Meine VIS-Seite dafpr sieht so aus:
      7062f311-c1b7-4118-9c30-5b120ee01da8-image.jpeg

      Ich kann, zwischen zwei Akkugrößen wählen und die Ladezustände einstellen. Die Anpassung der Werte kann jederzeit gemacht werden, das Script nimmt immer die eingestellten Werte.
      Ich habe zwei Scripte am Laufen.
      Das Eine handelt das Ein- und Ausschalten.
      Das Zweite triggert einen Timer, Dabei ist mir wichtig, dass der Timer jederzeit eine gewise zeitlang gestoppt und wieder gestartet werden kann, ohne dass die Werte verloren gehen. Ich habe das derzeit auf MAX_MINUTES_STOPPED = 20 (Minuten) festgelegt.

      Ich lasse mir Meldungen über Pushover ausgeben. Zur besseren Übersicht über meine Meldungen habe ich mehrere Pushover-Instanzen laufen. Ich lasse mir das "richtige" Pushover über ein globales Script geben. Das passiert am Anfange der Scripte über:

      // ==== Pushover ==================================
      const pushmessage:string = iobGlbl_getPushoverInstance("ebikebattery");
      

      Hier kann man auch einfach direkt den Namen der Pushover-Instanz eingeben.

      SwitchOnOff.ts Handelt das Ein/Ausschalten
      BatteryMonitor.ts Steuert den Timer

      G Online
      G Online
      GombersIOB
      schrieb am zuletzt editiert von
      #2

      Ich habe die Scripts ein wenig angepasst.

      Das Script reagierte auf jede Änderung des Switch-Objekts. Der Adapter ändert aber nachts immer mal wieder den Zeitstempel. Das führte zur Meldung "Ladesteckdose wurde ausgeschaltet", ohne dass sie eingeschaltet gewesen war. Reagiere jetzt nur noch auf Änderung des Wertes (Schaltzstandes)
      von

      on({ id: SMARTPLUG_SWITCH_STATE, change: "any" }, (obj) => {
      

      auf

      on({ id: SMARTPLUG_SWITCH_STATE, change: "ne" }, (obj) => {
      

      Ich habe das Script geändert, dass das Einschalten des Steckers nur noch über IOBroker/VIS möglich ist Dazu gibt es eine neue User-Variable "Switch" den ich auch mit VIS schalte. Wenn die nich auf "true" steht wird der Stecker direkt wieder ausgeschaltet.

      Die geänderten Scripte füge ich bei. Außerdem noch das Setup-Script für die Kontrollvariablen.

      SwitchOnOff.ts Kobtrolle dss Ein/Ausschalt-Vorgangs
      BatteryMonitor.ts Handelt das Ein/Ausschalten
      EBikeAkkuSetup.ts Erstellen der Umgebungsvariablen

      1 Antwort Letzte Antwort
      0
      • G Offline
        G Offline
        gto
        schrieb am zuletzt editiert von gto
        #3

        Hallo GombersIOB
        Ich habe Verständnisfragen:
        Steuert ein Script den Timer und das andere über die Kennlinie? Müssen beide gleichzeitig laufen? Schaltet das Timerscript das andere aus und umgekehrt?
        Danke Thomas

        G 1 Antwort Letzte Antwort
        0
        • G gto

          Hallo GombersIOB
          Ich habe Verständnisfragen:
          Steuert ein Script den Timer und das andere über die Kennlinie? Müssen beide gleichzeitig laufen? Schaltet das Timerscript das andere aus und umgekehrt?
          Danke Thomas

          G Online
          G Online
          GombersIOB
          schrieb zuletzt editiert von
          #4

          @gto Ich habe aus ästhetischen Gründen zwei Scripts gemacht. Ich mag große Monolithen nicht. Und da hier zwei einigermaßen deutlich unterscheidbare Zwecke zu sehen waren, habe ich auch zwei Scripte daraus
          gemacht. Technisch könnte man das auch in eins nehmen.
          Da nichts zu überwachen ist, wenn der Shelly nicht eingeschaltet wurde, braucht man auch beide Scripte aktiv.

          Der SwitchOnOff.ts behandelt die Anfangswerte, mit denen gestartet wird. Speichert den Zustand des Shelly und setzt die Annahmen an den Ist-Ladezustand und Soll-Ladezustand. Außerdem überwacht es, ob per IOBroker oder auf anderem Wege eingeschaltet wurde. Nach dem Einschalten könnte man dieses Script beenden. Aber warum sollte man das tun?

          Der Timer "BatteryMonitor.ts" schaltet aus, mit was immer zuerst erreicht wird: Der gewünschte Ladezustand oder das Absinken der Ladekennlinie. Man kann also derzeit auch keine 100% Füllzustand einstellen, fällt mir bei der Frage auf, da die Kennlinie das Laden ja vorher stoppt.
          Diese Möglichkeit muss ich wohl auch noch einbauen. Denn ab und zu soll ja eine LIB/LFP-Batterie zu hundert Prozent geladen werden, um dem BMS zu ermöglichen, den Füllstand sauber zu bestimmen.

          Ich habe aber das Einschalten des Ladevorgangs am Steckdosenschalter wieder ermöglicht. Man kann die Kontrolle darüber jetzt in den Uservariablen unter dem Namen ".AppControlledSwitchOn" ein bzw ausschalten.
          "True" bedeutet hier, Einschalten nur über IOBroker, "False" lässt das Schalten auch über den Stecker zu.

          BatteryMonitor.ts
          SwitchOnOff.ts
          EBikeAkkuSetup.ts

          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

          433

          Online

          33.0k

          Benutzer

          83.6k

          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