Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Easee Wallbox mit iobroker

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    200

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Easee Wallbox mit iobroker

Easee Wallbox mit iobroker

Scheduled Pinned Locked Moved ioBroker Allgemein
easeewallboxadapter
529 Posts 61 Posters 131.3k Views 54 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S stonemaan

    @k_o_bold
    Über sowas habe ich auch nachgedacht. Ich habe es noch nicht umgesetzt. Was ich gemacht habe ist, die Bedingung „Ladetimer Fahrzeug aktiv“ (bekomme ich über den VW Connect Adapter) auszulesen. Und wenn also der Ladetimer aktiv ist, wird nicht per PV Überschuss geladen, sondern ich stelle die volle Leistung zur Verfügung. Was man machen könnte: wenn Timer aktiv, die prognostizierte Ladedauer abfragen oder berechnen. Und wenn diese größer ist als die Zeit bis zur geplanten Abfahrtszeit, dann per Überschuss laden, ansonsten volle Leistung. Das war mir aber bisher zu viel Aufwand 😉
    War das einigermaßen verständlich? 🤔 😉

    K Offline
    K Offline
    K_o_bold
    wrote on last edited by
    #182

    @stonemaan ,

    ja danke für deinen Input. Das war verständlich und ungefähr das was ich mir auch grob üerlegt habe. Nur scheitere ich am Skript dazu. Ich glaube die Umsetzung wäre besser zu lösen mir einem Java-Skript und da bin ich noch nicht fit genug.

    Ein Adapter für PV Überschuss Ladung wäre echt super für so eine Anwendung...

    1 Reply Last reply
    0
    • S Offline
      S Offline
      stonemaan
      wrote on last edited by
      #183

      ich habe mal mein Blockly Script unten eingefügt. Es funktioniert für meinen Anwendungszweck super. Es geht bedingt durch die Timerabfrage aber nur für "das Eine" Auto. Wer also das Auto vom Freund aufladen möchte, muss den Schalter an machen.

      Die eigentliche Überschusssteuerung findet ihr ab Zeile 57. Davor habe ich nur einen kleinen (sehr ungenauen) Zähler eingebaut.

      Randnotiz: ich bin kein Programmierer und hab mit Informatik wenig am Hut, falls da dinge doppelt oder schwachsinnig drin sind, sagst mir bitte 😉 Ich habe mich bemüht, die Seriennummer von der Easee zu ersetzen und die Fahrgestellnummer vom Auto auch. Falls ich noch was persönliches übersehen habe, auch hier kurze Meldung 😉

      Vielleicht hilft es dem Ein oder Anderen trotzdem..

      var PVUeberschuss;
      
      
      // Easee adapter Neustarten falls offline
      on({id: "system.adapter.easee.0.alive"/*easee.0 alive*/, change: "ne"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("system.adapter.easee.0.alive").val == false) {
          setState("system.adapter.easee.0.alive"/*easee.0 alive*/, false);
          setStateDelayed("system.adapter.easee.0.alive"/*easee.0 alive*/, true, 5000, false);
        }
      });
      // Easee adapter Neustarten falls offline
      on({id: "system.adapter.easee.0.connected"/*easee.0 is connected*/, change: "ne"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("system.adapter.easee.0.connected").val == false) {
          setState("system.adapter.easee.0.alive"/*easee.0 alive*/, false);
          setStateDelayed("system.adapter.easee.0.alive"/*easee.0 alive*/, true, 5000, false);
        }
      });
      // einfacher Zähler zum ermitteln der PV Überschussladung oder Ladung per Netzbezug (ungenau, Werte nur zur Orientierung)
      schedule("*/10 * * * * *", async function () {
        if (getState("plenticore.0.devices.local.Pv_P").val - (getState("plenticore.0.devices.local.Home_P").val - getState("easee.0.XXXX1234.status.totalPower").val * 1000) > 0) {
          PVUeberschuss = getState("plenticore.0.devices.local.Pv_P").val - (getState("plenticore.0.devices.local.Home_P").val - getState("easee.0.XXXX1234.status.totalPower").val * 1000);
        } else {
          PVUeberschuss = 0;
        }
        if (getState("easee.0.XXXX1234.status.totalPower").val * 1000 > 100 && getState("easee.0.XXXX1234.status.totalPower").val * 1000 <= PVUeberschuss) {
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss"/*LadeleistungMitPvÜberschuss*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000) / 360));
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag"/*LadeleistungMitPvUeberschussTag*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000) / 360));
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat"/*LadeleistungMitPvUeberschussMonat*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000) / 360));
        }
        if (getState("easee.0.XXXX1234.status.totalPower").val * 1000 > 100 && getState("easee.0.XXXX1234.status.totalPower").val * 1000 > PVUeberschuss) {
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss"/*LadeleistungMitPvÜberschuss*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss").val + PVUeberschuss / 360));
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag"/*LadeleistungMitPvUeberschussTag*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag").val + PVUeberschuss / 360));
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat"/*LadeleistungMitPvUeberschussMonat*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat").val + PVUeberschuss / 360));
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezug"/*LadeleistungMitNetzbezug*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezug").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss) / 360));
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugTag"/*LadeleistungMitNetzbezugTag*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugTag").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss) / 360));
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugMonat"/*LadeleistungMitNetzbezugMonat*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugMonat").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss) / 360));
          console.log(('Ladeleistung' + String(getState("easee.0.XXXX1234.status.totalPower").val * 1000)));
          console.log(('PV Leistung' + String(getState("plenticore.0.devices.local.Pv_P").val)));
          console.log(('Leistung Über PV' + String(PVUeberschuss)));
          console.log(('Leistung Netzbezug' + String(getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss)));
        }
      });
      // Zurücksetzen des Tageszählers
      schedule("0 0 * * *", async function () {
        setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag"/*LadeleistungMitPvUeberschussTag*/, 0);
        setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugTag"/*LadeleistungMitNetzbezugTag*/, 0);
      });
      // Zurücksetzen des Monatszählers
      schedule("0 0 1 * *", async function () {
        setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat"/*LadeleistungMitPvUeberschussMonat*/, 0);
        setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugMonat"/*LadeleistungMitNetzbezugMonat*/, 0);
      });
      schedule("*/30 * * * * *", async function () {
        // PV Überschuss ermitteln
        PVUeberschuss = getState("plenticore.0.devices.local.Pv_P").val - (getState("plenticore.0.devices.local.Home_P").val - getState("easee.0.XXXX1234.status.totalPower").val * 1000);
        // wenn PV Überschuss größer als minimale Ladeleistung (6A) und ... setze DynamicChargerCurrent auf den Wert des PV Überschusses
        if (getState("vw-connect.0.XXXZZZXXXXXX12345.charger.status.batteryStatusData.stateOfCharge.content").val < 100 && getState("easee.0.XXXX1234.config.dynamicChargerCurrent").val != Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val) && getState("0_userdata.0.Manuelles_laden").val != true && Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val) >= 6 && getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer01.timerProgrammedStatus").val == 'notProgrammed' && getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer02.timerProgrammedStatus").val == 'notProgrammed') {
          console.log(('Setze Dynamic Chargercurrent auf: ' + String(Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val))));
          setState("easee.0.XXXX1234.config.dynamicChargerCurrent"/*Dynamic max current this charger is allowed to offer to car (A)*/, (Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val)));
          if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 3) {
            console.log(('PV Überschussladen' + ''));
            getState("easee.0.XXXX1234.control.resume", function (err, state) {
                setState("easee.0.XXXX1234.control.resume"/*Resume charging*/, state ? !state.val : true);
            });
          }
          // wenn Timer aktiv, oder manuelles Laden (HomeKit Schalter) aktiv, setze DynamicChargerCurrent auf 16A und starte das Laden
        } else if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && getState("0_userdata.0.Manuelles_laden").val == true || getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && (getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer01.timerProgrammedStatus").val == 'programmed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer02.timerProgrammedStatus").val == 'programmed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer03.timerProgrammedStatus").val == 'programmed')) {
          console.log(('Timer/manuelles Laden gestartet' + ''));
          setState("easee.0.XXXX1234.config.dynamicChargerCurrent"/*Dynamic max current this charger is allowed to offer to car (A)*/, 16);
          if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 3) {
            console.log(('Time Charging gestartet' + ''));
            getState("easee.0.XXXX1234.control.resume", function (err, state) {
                setState("easee.0.XXXX1234.control.resume"/*Resume charging*/, state ? !state.val : true);
            });
          }
          // Nicht laden wenn kein Timer, kein PV Überschuss und Schalter aktiv
        } else if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && getState("easee.0.XXXX1234.status.chargerOpMode").val != 2 && Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val) < 6 && getState("0_userdata.0.Manuelles_laden").val == false && (getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer01.timerProgrammedStatus").val == 'notProgrammed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer02.timerProgrammedStatus").val == 'notProgrammed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer03.timerProgrammedStatus").val == 'notProgrammed')) {
          console.log(('Pause Charging weil kein PV, kein Timer und kein manueller start' + ''));
          setState("easee.0.XXXX1234.config.dynamicChargerCurrent"/*Dynamic max current this charger is allowed to offer to car (A)*/, 16);
          getState("easee.0.XXXX1234.control.pause", function (err, state) {
              setState("easee.0.XXXX1234.control.pause"/*Pause charging*/, state ? !state.val : true);
          });
        }
      });
      // Wenn Kabel raus, manuelles Laden-Schalter auf "false"
      on({id: "easee.0.XXXX1234.status.chargerOpMode"/*Charger operation mode according to charger mode table*/, change: "ne"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("easee.0.XXXX1234.status.chargerOpMode").val == 1) {
          setState("0_userdata.0.Manuelles_laden"/*Manuelles laden*/, false);
        }
      });
      
      A 1 Reply Last reply
      0
      • S stonemaan

        ich habe mal mein Blockly Script unten eingefügt. Es funktioniert für meinen Anwendungszweck super. Es geht bedingt durch die Timerabfrage aber nur für "das Eine" Auto. Wer also das Auto vom Freund aufladen möchte, muss den Schalter an machen.

        Die eigentliche Überschusssteuerung findet ihr ab Zeile 57. Davor habe ich nur einen kleinen (sehr ungenauen) Zähler eingebaut.

        Randnotiz: ich bin kein Programmierer und hab mit Informatik wenig am Hut, falls da dinge doppelt oder schwachsinnig drin sind, sagst mir bitte 😉 Ich habe mich bemüht, die Seriennummer von der Easee zu ersetzen und die Fahrgestellnummer vom Auto auch. Falls ich noch was persönliches übersehen habe, auch hier kurze Meldung 😉

        Vielleicht hilft es dem Ein oder Anderen trotzdem..

        var PVUeberschuss;
        
        
        // Easee adapter Neustarten falls offline
        on({id: "system.adapter.easee.0.alive"/*easee.0 alive*/, change: "ne"}, async function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (getState("system.adapter.easee.0.alive").val == false) {
            setState("system.adapter.easee.0.alive"/*easee.0 alive*/, false);
            setStateDelayed("system.adapter.easee.0.alive"/*easee.0 alive*/, true, 5000, false);
          }
        });
        // Easee adapter Neustarten falls offline
        on({id: "system.adapter.easee.0.connected"/*easee.0 is connected*/, change: "ne"}, async function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (getState("system.adapter.easee.0.connected").val == false) {
            setState("system.adapter.easee.0.alive"/*easee.0 alive*/, false);
            setStateDelayed("system.adapter.easee.0.alive"/*easee.0 alive*/, true, 5000, false);
          }
        });
        // einfacher Zähler zum ermitteln der PV Überschussladung oder Ladung per Netzbezug (ungenau, Werte nur zur Orientierung)
        schedule("*/10 * * * * *", async function () {
          if (getState("plenticore.0.devices.local.Pv_P").val - (getState("plenticore.0.devices.local.Home_P").val - getState("easee.0.XXXX1234.status.totalPower").val * 1000) > 0) {
            PVUeberschuss = getState("plenticore.0.devices.local.Pv_P").val - (getState("plenticore.0.devices.local.Home_P").val - getState("easee.0.XXXX1234.status.totalPower").val * 1000);
          } else {
            PVUeberschuss = 0;
          }
          if (getState("easee.0.XXXX1234.status.totalPower").val * 1000 > 100 && getState("easee.0.XXXX1234.status.totalPower").val * 1000 <= PVUeberschuss) {
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss"/*LadeleistungMitPvÜberschuss*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000) / 360));
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag"/*LadeleistungMitPvUeberschussTag*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000) / 360));
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat"/*LadeleistungMitPvUeberschussMonat*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000) / 360));
          }
          if (getState("easee.0.XXXX1234.status.totalPower").val * 1000 > 100 && getState("easee.0.XXXX1234.status.totalPower").val * 1000 > PVUeberschuss) {
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss"/*LadeleistungMitPvÜberschuss*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvÜberschuss").val + PVUeberschuss / 360));
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag"/*LadeleistungMitPvUeberschussTag*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag").val + PVUeberschuss / 360));
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat"/*LadeleistungMitPvUeberschussMonat*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat").val + PVUeberschuss / 360));
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezug"/*LadeleistungMitNetzbezug*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezug").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss) / 360));
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugTag"/*LadeleistungMitNetzbezugTag*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugTag").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss) / 360));
            setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugMonat"/*LadeleistungMitNetzbezugMonat*/, (getState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugMonat").val + (getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss) / 360));
            console.log(('Ladeleistung' + String(getState("easee.0.XXXX1234.status.totalPower").val * 1000)));
            console.log(('PV Leistung' + String(getState("plenticore.0.devices.local.Pv_P").val)));
            console.log(('Leistung Über PV' + String(PVUeberschuss)));
            console.log(('Leistung Netzbezug' + String(getState("easee.0.XXXX1234.status.totalPower").val * 1000 - PVUeberschuss)));
          }
        });
        // Zurücksetzen des Tageszählers
        schedule("0 0 * * *", async function () {
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussTag"/*LadeleistungMitPvUeberschussTag*/, 0);
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugTag"/*LadeleistungMitNetzbezugTag*/, 0);
        });
        // Zurücksetzen des Monatszählers
        schedule("0 0 1 * *", async function () {
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitPvUeberschussMonat"/*LadeleistungMitPvUeberschussMonat*/, 0);
          setState("0_userdata.0.Stromverbrauch.LadeleistungMitNetzbezugMonat"/*LadeleistungMitNetzbezugMonat*/, 0);
        });
        schedule("*/30 * * * * *", async function () {
          // PV Überschuss ermitteln
          PVUeberschuss = getState("plenticore.0.devices.local.Pv_P").val - (getState("plenticore.0.devices.local.Home_P").val - getState("easee.0.XXXX1234.status.totalPower").val * 1000);
          // wenn PV Überschuss größer als minimale Ladeleistung (6A) und ... setze DynamicChargerCurrent auf den Wert des PV Überschusses
          if (getState("vw-connect.0.XXXZZZXXXXXX12345.charger.status.batteryStatusData.stateOfCharge.content").val < 100 && getState("easee.0.XXXX1234.config.dynamicChargerCurrent").val != Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val) && getState("0_userdata.0.Manuelles_laden").val != true && Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val) >= 6 && getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer01.timerProgrammedStatus").val == 'notProgrammed' && getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer02.timerProgrammedStatus").val == 'notProgrammed') {
            console.log(('Setze Dynamic Chargercurrent auf: ' + String(Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val))));
            setState("easee.0.XXXX1234.config.dynamicChargerCurrent"/*Dynamic max current this charger is allowed to offer to car (A)*/, (Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val)));
            if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 3) {
              console.log(('PV Überschussladen' + ''));
              getState("easee.0.XXXX1234.control.resume", function (err, state) {
                  setState("easee.0.XXXX1234.control.resume"/*Resume charging*/, state ? !state.val : true);
              });
            }
            // wenn Timer aktiv, oder manuelles Laden (HomeKit Schalter) aktiv, setze DynamicChargerCurrent auf 16A und starte das Laden
          } else if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && getState("0_userdata.0.Manuelles_laden").val == true || getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && (getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer01.timerProgrammedStatus").val == 'programmed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer02.timerProgrammedStatus").val == 'programmed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer03.timerProgrammedStatus").val == 'programmed')) {
            console.log(('Timer/manuelles Laden gestartet' + ''));
            setState("easee.0.XXXX1234.config.dynamicChargerCurrent"/*Dynamic max current this charger is allowed to offer to car (A)*/, 16);
            if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 3) {
              console.log(('Time Charging gestartet' + ''));
              getState("easee.0.XXXX1234.control.resume", function (err, state) {
                  setState("easee.0.XXXX1234.control.resume"/*Resume charging*/, state ? !state.val : true);
              });
            }
            // Nicht laden wenn kein Timer, kein PV Überschuss und Schalter aktiv
          } else if (getState("easee.0.XXXX1234.status.chargerOpMode").val != 1 && getState("easee.0.XXXX1234.status.chargerOpMode").val != 2 && Math.round(PVUeberschuss / getState("easee.0.XXXX1234.status.voltage").val) < 6 && getState("0_userdata.0.Manuelles_laden").val == false && (getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer01.timerProgrammedStatus").val == 'notProgrammed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer02.timerProgrammedStatus").val == 'notProgrammed' || getState("vw-connect.0.XXXZZZXXXXXX12345.timer.timersAndProfiles.timerList.timer03.timerProgrammedStatus").val == 'notProgrammed')) {
            console.log(('Pause Charging weil kein PV, kein Timer und kein manueller start' + ''));
            setState("easee.0.XXXX1234.config.dynamicChargerCurrent"/*Dynamic max current this charger is allowed to offer to car (A)*/, 16);
            getState("easee.0.XXXX1234.control.pause", function (err, state) {
                setState("easee.0.XXXX1234.control.pause"/*Pause charging*/, state ? !state.val : true);
            });
          }
        });
        // Wenn Kabel raus, manuelles Laden-Schalter auf "false"
        on({id: "easee.0.XXXX1234.status.chargerOpMode"/*Charger operation mode according to charger mode table*/, change: "ne"}, async function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (getState("easee.0.XXXX1234.status.chargerOpMode").val == 1) {
            setState("0_userdata.0.Manuelles_laden"/*Manuelles laden*/, false);
          }
        });
        
        A Offline
        A Offline
        Aiouh
        wrote on last edited by
        #184

        @stonemaan Ich wollte mich gerade mal mit Deinem script beschäftigen, kann es aber leider nicht importieren. Kannst Du die Blöcke bitte nochmal exportieren?

        1 Reply Last reply
        0
        • S stonemaan

          Wenn du nur eine Wallbox hast, kannst du die CircuitMaxCurrentP1 verwenden. Die Dynamic Charger bezieht sich auf die einzelne Wallbox und die circuit current auf den Stromkreis - sofern du mehrere easees hast 😉
          Daher ist bei mehreren die Dynamic Charger zu bevorzugen. Sonst regelst du den Strom aller wallboxen herunter.

          A Offline
          A Offline
          Aiouh
          wrote on last edited by
          #185

          @stonemaan Hallo, ich bin gerade noch auf einen post dazu gestoßen der interessant ist
          hier. Insbesondere finde ich interessant:

          "...We are in contact with the easee engineers, so they have explained a few things to us that are not obvious. Among these are the fact that settings are generally stored in flash in the charger and we should not change these to often because it can wear out... For instance a setting like the max charger current will write to flash, while the dynamic charger current and circuit dynamic currents are safe to update as often as you like since they are not stored in flash....
          But nevertheless, I think using the dynamic circuit current is what easee recommends for user/integrator control and then let the charger do its decisions based on that.
          Anyway, using dynamic circuit current also allows you to control which phase to use, not only to switch between 3 and 1 phase."

          Ich werde also versuchen dynamic verwenden womit ich auch noch die Phase bestimmen kann, was bei meiner einpghasigen PV von Vorteil ist. Ich lade mit der Phase, in die auch die PV eingespeisst wird.

          S 1 Reply Last reply
          0
          • A Aiouh

            @stonemaan Hallo, ich bin gerade noch auf einen post dazu gestoßen der interessant ist
            hier. Insbesondere finde ich interessant:

            "...We are in contact with the easee engineers, so they have explained a few things to us that are not obvious. Among these are the fact that settings are generally stored in flash in the charger and we should not change these to often because it can wear out... For instance a setting like the max charger current will write to flash, while the dynamic charger current and circuit dynamic currents are safe to update as often as you like since they are not stored in flash....
            But nevertheless, I think using the dynamic circuit current is what easee recommends for user/integrator control and then let the charger do its decisions based on that.
            Anyway, using dynamic circuit current also allows you to control which phase to use, not only to switch between 3 and 1 phase."

            Ich werde also versuchen dynamic verwenden womit ich auch noch die Phase bestimmen kann, was bei meiner einpghasigen PV von Vorteil ist. Ich lade mit der Phase, in die auch die PV eingespeisst wird.

            S Offline
            S Offline
            stonemaan
            wrote on last edited by
            #186

            @aiouh sehr interessante Info, mein Script läuft ja mit der DynamicChargerCurrent. von daher auf der sicheren Seite.
            Hier noch mein Script als Blockly export. ich habe es mal als html gespeichert. hoffe man kann damit was anfangen:

            Script.html

            A S 2 Replies Last reply
            1
            • S stonemaan

              @aiouh sehr interessante Info, mein Script läuft ja mit der DynamicChargerCurrent. von daher auf der sicheren Seite.
              Hier noch mein Script als Blockly export. ich habe es mal als html gespeichert. hoffe man kann damit was anfangen:

              Script.html

              A Offline
              A Offline
              Aiouh
              wrote on last edited by
              #187

              @stonemaan Import hat geklappt, Danke, nun mach ich mich ans Verstehen 😉

              S 1 Reply Last reply
              0
              • A Aiouh

                @stonemaan Import hat geklappt, Danke, nun mach ich mich ans Verstehen 😉

                S Offline
                S Offline
                stonemaan
                wrote on last edited by
                #188

                @aiouh Viel erfolg 😉

                A 1 Reply Last reply
                0
                • S stonemaan

                  @aiouh Viel erfolg 😉

                  A Offline
                  A Offline
                  Aiouh
                  wrote on last edited by Aiouh
                  #189

                  Das Steuern der Easee mit dynamiccircuitcurrent klappt bei mir noch nicht. Ich wollte jetzt mal ganz von vorn anfangen und der Easee einfach sagen sie soll mit max 10A auf P2 laden.
                  Das erste was mir aufgefallen ist: Die Objekte DynamicCircuitCurrent sind nur lesbar. Wenn ich sie auf "write allowed" setze geht das zwar, wenn ich aber einen Wert reinschreibe wird dieser nach wenigen Sekunden wieder auf 40A gesetzt und geladen wird trotzdem nicht 😞
                  8335bf6b-91fa-455e-a091-d10643d62497-image.png .
                  Wie ist denn genau die Reihenfolge der Befehle bzw. setzen der Objekte ?

                  1. Pause (oder stop?)
                    dann
                  2. DynamicCircuitCurrent setzen?
                    dann
                  3. Start oder resume?
                  S NewanN 2 Replies Last reply
                  0
                  • A Aiouh

                    Das Steuern der Easee mit dynamiccircuitcurrent klappt bei mir noch nicht. Ich wollte jetzt mal ganz von vorn anfangen und der Easee einfach sagen sie soll mit max 10A auf P2 laden.
                    Das erste was mir aufgefallen ist: Die Objekte DynamicCircuitCurrent sind nur lesbar. Wenn ich sie auf "write allowed" setze geht das zwar, wenn ich aber einen Wert reinschreibe wird dieser nach wenigen Sekunden wieder auf 40A gesetzt und geladen wird trotzdem nicht 😞
                    8335bf6b-91fa-455e-a091-d10643d62497-image.png .
                    Wie ist denn genau die Reihenfolge der Befehle bzw. setzen der Objekte ?

                    1. Pause (oder stop?)
                      dann
                    2. DynamicCircuitCurrent setzen?
                      dann
                    3. Start oder resume?
                    S Offline
                    S Offline
                    stonemaan
                    wrote on last edited by
                    #190

                    @aiouh ich setze nur die DynamicChargercurrent während des Ladevorgangs. Es kann sein, dass diese bei resume wieder überschrieben wird.

                    1 Reply Last reply
                    0
                    • A Aiouh

                      Das Steuern der Easee mit dynamiccircuitcurrent klappt bei mir noch nicht. Ich wollte jetzt mal ganz von vorn anfangen und der Easee einfach sagen sie soll mit max 10A auf P2 laden.
                      Das erste was mir aufgefallen ist: Die Objekte DynamicCircuitCurrent sind nur lesbar. Wenn ich sie auf "write allowed" setze geht das zwar, wenn ich aber einen Wert reinschreibe wird dieser nach wenigen Sekunden wieder auf 40A gesetzt und geladen wird trotzdem nicht 😞
                      8335bf6b-91fa-455e-a091-d10643d62497-image.png .
                      Wie ist denn genau die Reihenfolge der Befehle bzw. setzen der Objekte ?

                      1. Pause (oder stop?)
                        dann
                      2. DynamicCircuitCurrent setzen?
                        dann
                      3. Start oder resume?
                      NewanN Offline
                      NewanN Offline
                      Newan
                      wrote on last edited by
                      #191

                      @aiouh read only sind dann auch nur supported. Wenn ihr das schreibbar braucht muss das ja auch an die api gesendet werden.

                      A 1 Reply Last reply
                      0
                      • NewanN Newan

                        @aiouh read only sind dann auch nur supported. Wenn ihr das schreibbar braucht muss das ja auch an die api gesendet werden.

                        A Offline
                        A Offline
                        Aiouh
                        wrote on last edited by Aiouh
                        #192

                        @newan hmmmm... 😉 Wer kriegt das hin dass die schreibbar sind und an die API geschickt werden 🙂 ?

                        NewanN 1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          Don_Hasso
                          wrote on last edited by
                          #193

                          Hallo zusammen und erstmal vielen Dank für den Adapter und die vielen Hinweise. Hab damit jetzt meine ersten Gehversuche gemacht und auch das Blockly von @stonemaan versucht zu durchdringen und ein einfaches Skript zu schreiben.
                          Eigentlich möchte ich nur, dass über Vis die Ladung gestartet und eine fixe Ladestromstärke eingestellt wird und auch wieder beendet wird.

                          Zur Einstellung der Ladestromstärke verwendet man wegen Lebensdauer Speicher der Wallbox den "dynamicChargerCurrent", richtig? Ich denke das funktioniert auch.
                          Den Ladevorgang beende ich, indem ich "dynamicChargeCurrent" auf NULL setze.
                          Was aber nicht funktioniert ist das Starten des Ladevorgangs. Wenn ich mit der Ladestromstärke auf 6 oder höher gehe, passiert nichts. Erst wenn ich das Auto abstecke und wieder anstecke läuft es. Wie kann ich über ioBroker die Ladung weiterführen?

                          S 1 Reply Last reply
                          0
                          • D Don_Hasso

                            Hallo zusammen und erstmal vielen Dank für den Adapter und die vielen Hinweise. Hab damit jetzt meine ersten Gehversuche gemacht und auch das Blockly von @stonemaan versucht zu durchdringen und ein einfaches Skript zu schreiben.
                            Eigentlich möchte ich nur, dass über Vis die Ladung gestartet und eine fixe Ladestromstärke eingestellt wird und auch wieder beendet wird.

                            Zur Einstellung der Ladestromstärke verwendet man wegen Lebensdauer Speicher der Wallbox den "dynamicChargerCurrent", richtig? Ich denke das funktioniert auch.
                            Den Ladevorgang beende ich, indem ich "dynamicChargeCurrent" auf NULL setze.
                            Was aber nicht funktioniert ist das Starten des Ladevorgangs. Wenn ich mit der Ladestromstärke auf 6 oder höher gehe, passiert nichts. Erst wenn ich das Auto abstecke und wieder anstecke läuft es. Wie kann ich über ioBroker die Ladung weiterführen?

                            S Offline
                            S Offline
                            stonemaan
                            wrote on last edited by
                            #194

                            @don_hasso du kannst doch einfach den Button „resume charging“ nutzen, um das laden zu starten. Oder „Start charging“.. das müsste dann gehen.
                            Zum beenden des Ladevorgangs würde ich auch „Pause charging“ nutzen statt auf 0 zu reduzieren. So mache ich es auch. Wenn kein PV Überschuss und kein Schalter und kein timer, dann Pause charging.

                            D 1 Reply Last reply
                            0
                            • S stonemaan

                              @don_hasso du kannst doch einfach den Button „resume charging“ nutzen, um das laden zu starten. Oder „Start charging“.. das müsste dann gehen.
                              Zum beenden des Ladevorgangs würde ich auch „Pause charging“ nutzen statt auf 0 zu reduzieren. So mache ich es auch. Wenn kein PV Überschuss und kein Schalter und kein timer, dann Pause charging.

                              D Offline
                              D Offline
                              Don_Hasso
                              wrote on last edited by
                              #195

                              @stonemaan Danke für die sehr schnelle Antwort, denke es funktioniert jetzt.

                              1 Reply Last reply
                              0
                              • S Offline
                                S Offline
                                stonemaan
                                wrote on last edited by
                                #196

                                @Newan ich habe heute ein anderes Auto an der Easee. das lädt mit 2 Phasen. Leider kann der Adapter nicht unterscheiden, ob 1, 2 oder 3 Phasen laden. Kann man das über die API herausfinden, welche Phase mit wie viel A lädt? in der App kann man es sehen. also eine Art PhaseOutputCurrent oder so?
                                Danke schon mal 🙂

                                NewanN 1 Reply Last reply
                                0
                                • A Aiouh

                                  @newan hmmmm... 😉 Wer kriegt das hin dass die schreibbar sind und an die API geschickt werden 🙂 ?

                                  NewanN Offline
                                  NewanN Offline
                                  Newan
                                  wrote on last edited by
                                  #197

                                  @aiouh Das ist so nicht soo einfach. Denke aber das deine Ziele mit den hier vorgestellten Möglichkeiten umgesetzt werden können

                                  A 1 Reply Last reply
                                  0
                                  • S stonemaan

                                    @Newan ich habe heute ein anderes Auto an der Easee. das lädt mit 2 Phasen. Leider kann der Adapter nicht unterscheiden, ob 1, 2 oder 3 Phasen laden. Kann man das über die API herausfinden, welche Phase mit wie viel A lädt? in der App kann man es sehen. also eine Art PhaseOutputCurrent oder so?
                                    Danke schon mal 🙂

                                    NewanN Offline
                                    NewanN Offline
                                    Newan
                                    wrote on last edited by
                                    #198

                                    @stonemaan Was steht den unter easee.0.XX.config.phaseMode?

                                    S 1 Reply Last reply
                                    0
                                    • NewanN Offline
                                      NewanN Offline
                                      Newan
                                      wrote on last edited by
                                      #199

                                      Bräuchte mal mehr Meinungen zu: https://github.com/Newan/ioBroker.easee/issues/10
                                      Sind die Logs zu viel oder wie soll ich das für euch machen?

                                      TMHEINE created this issue in Newan/ioBroker.easee

                                      closed Many entries in the IOBroker-Log #10

                                      S 1 Reply Last reply
                                      0
                                      • NewanN Newan

                                        @stonemaan Was steht den unter easee.0.XX.config.phaseMode?

                                        S Offline
                                        S Offline
                                        stonemaan
                                        wrote on last edited by
                                        #200

                                        @newan phasemode ist nur die Einstellung, ob er einphasig, automatisch oder dreiphasig laden soll.. das hilft leider nicht.

                                        1 Reply Last reply
                                        0
                                        • NewanN Newan

                                          Bräuchte mal mehr Meinungen zu: https://github.com/Newan/ioBroker.easee/issues/10
                                          Sind die Logs zu viel oder wie soll ich das für euch machen?

                                          TMHEINE created this issue in Newan/ioBroker.easee

                                          closed Many entries in the IOBroker-Log #10

                                          S Offline
                                          S Offline
                                          stonemaan
                                          wrote on last edited by
                                          #201

                                          @newan offen gesagt brauche ich die Logs nicht. Ich habe nach wie vor öfter das Problem, dass der Adapter auf gelb geht. Dann muss man ihn neu starten. Das hab ich per Script gelöst. Leider konnte ich bisher nicht herausfinden woran das liegt…

                                          NewanN 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          135

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe