{"id":894,"date":"2024-01-07T14:22:29","date_gmt":"2024-01-07T13:22:29","guid":{"rendered":"https:\/\/www.stephan-lubahn.de\/?p=894"},"modified":"2024-02-04T08:45:03","modified_gmt":"2024-02-04T07:45:03","slug":"sonnen-batterie-batterie-pflege-tibber-iobroker","status":"publish","type":"post","link":"https:\/\/www.stephan-lubahn.de\/?p=894","title":{"rendered":"Sonnen Batterie \/ Batterie-Pflege \/ Tibber \/ ioBroker"},"content":{"rendered":"\n<p>In dieser Beschreibung geht es darum, die Batterie-Pflege vorzuziehen, wenn der Strompreis g\u00fcnstig ist. Alle 30 Tage wird eine Batterie-Pflege von Sonnen initiiert, wenn die  Batterie nicht innerhalb der Zeit zu 100% geladen wurde.  Hier wird versucht, diese Batterie-Pflege dann einzuleiten, wenn der Strompreis besonders g\u00fcnstig ist.<\/p>\n\n\n\n<p>Voraussetzung ioBroker mit installierten und konfigurierten Sonnen Adapter sowie TibberLink und der Telegram Adapter.<br>Ich musste feststellen, das bei einem von drei Testl\u00e4ufen das Laden einfach stoppte ohne ersichtlichen Grund. Es war n\u00f6tig nochmal den Befehl zum Laden mit 3300W abzusetzen.<\/p>\n\n\n\n<p>Vorbereitung:<\/p>\n\n\n\n<p>Verwendete Datenpunkte: <\/p>\n\n\n\n<p>0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge -&gt; number<br>0_userdata.0.Sonnen-Batterie.StartCharge -&gt; boolean<br>0_userdata.0.Sonnen-Batterie.Time-Start-Charge -&gt; string <br>0_userdata.0.Sonnen-Batterie.Time-End-Charge -&gt; string <br><\/p>\n\n\n\n<p>Berechnung zur Zeit 25 Tage = 25*24*60*60 = 2160000<br>Zum Test 3 Tage = 260200<br>getState(&#8217;sonnen.0.latestData.secondsSinceFullCharge&#8216;).val &gt;= 260200<\/p>\n\n\n\n<p>Zum Testen ist der Preis noch auf &#8222;NORMAL&#8220; gesetzt sp\u00e4ter dann &#8222;CHEAP&#8220;<\/p>\n\n\n\n<p>Change Log<br>V1.0 Start Codierung -> Steuerungs Test der Batterie<br>V1.1 Automatisches Laden<br>V1.2 Einf\u00fchrung der Variablen (Datenpunkt 0_userdata.0.Sonnen-Batterie.StartCharge)<br>V1.3 Zus\u00e4tzliche if Abfrage Im SOC Bereich <br>V1.4 Datenpunkte werden automatisch bei Script Start angelegt<br>V1.5 Zus\u00e4tzlicher Datenpunkt Erfassung, Datum Uhrzeit Start laden und Ende Laden<br>V1.6 Nach dem 3. Test hat das Laden bei 26% angehalten ohne ersichtlichen Grund. Zus\u00e4tzlich SOC &lt;= 100% Setzen des Ladewertes<br>V1.7 Einf\u00fchrung der Variablen TimeToLoad = 2160000 * 25 Tage*<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/**************************************************************************\/\n\/\/* Script Sonnen-Batterie landen wenn der Strompreis am g\u00fcnstigen ist     *\/\n\/\/* Copyright by stephan-lubahn.de                                         *\/\n\/\/* Keine Garantie oder Haftung f\u00fcr Fehlfunktion oder Erstehung von Kosten *\/ \n\/\/* License public nur f\u00fcr den Privaten gebrauch. Kommerziell nur mit      *\/\n\/\/* ausdr\u00fccklicher Genehmigung                                             *\/\n\/\/* Datenpunkte                                                            *\/\n\/\/* 0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge -&gt; number          *\/\n\/\/* 0_userdata.0.Sonnen-Batterie.StartCharge -&gt; boolean                    *\/\n\/\/* 0_userdata.0.Sonnen-Batterie.Time-Start-Charge -&gt; string               *\/\n\/\/* 0_userdata.0.Sonnen-Batterie.Time-End-Charge -&gt; string                 *\/\n\/\/* Berechnung zur Zeit 25 Tage = 25*24*60*60 = 2160000                    *\/\n\/\/* Version 1.7                                                            *\/\n\/\/**************************************************************************\/\n\/\/ Datenpunkte Anlegen\ncreateState(\"0_userdata.0.Sonnen-Batterie.StartCharge\", false, {\n  read: true, \n  write: true, \n  name: \"StartCharge\", \n  type: \"boolean\", \n  def: false\n});\n\ncreateState(\"0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge\", 0, {\n  read: true, \n  write: true, \n  name: \"Tage-seit-full-charge\", \n  type: \"number\", \n  def: 0\n});\n\ncreateState(\"0_userdata.0.Sonnen-Batterie.Time-Start-Charge\", \"\" , {\n  read: true, \n  write: true, \n  name: \"Time-Start-Charge\", \n  type: \"string\", \n  def: \"\"\n});\n\ncreateState(\"0_userdata.0.Sonnen-Batterie.Time-End-Charge\", \"\" , {\n  read: true, \n  write: true, \n  name: \"Time-End-Charge\", \n  type: \"string\", \n  def: \"\"\n});\n\nschedule('*\/5 * * * *', On_Time );   \/\/ Alle 5 Minuten Starten\n\n function On_Time() {\n\/\/ Variablen\nvar TimeToLoad = 2160000;\nvar Wert1 = getState(\"sonnen.0.latestData.secondsSinceFullCharge\").val;\nvar Tageseitvollgeladen = Wert1 \/ 60 \/ 60 \/24;\nvar Tibberpreiswert =getState(\"tibberlink.0.Homes.YOUR TIBBER API.CurrentPrice.level\").val;\nvar UserSOC =getState(\"sonnen.0.status.userSoc\").val;\nvar Charging = getState(\"0_userdata.0.Sonnen-Batterie.StartCharge\").val;\nvar Zeit = new Date();\nlet date = \"2020-03-23T05:20:44\";\nsetState(\"0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge\",Tageseitvollgeladen);\n\n\/\/ Debugging -&gt; Nach test auskommentieren \n\/\/ console.log(Wert1);\n\/\/ console.log(Tageseitvollgeladen);\n\/\/ console.log(TimeToLoad);\n\/\/ console.log(Tibberpreiswert);\n\/\/ console.log(Charging);\n\nif (Charging === false) {\nif (getState('sonnen.0.latestData.secondsSinceFullCharge').val &gt;= TimeToLoad) {\n \n sendTo(\"telegram.0\", \"send\", {\n     text: 'Zeit zur Batterie Pflege erreicht'});\nconsole.log('Wert erreicht'); \n \n\nif (Tibberpreiswert == 'CHEAP') {\n    console.log('Preiswert');\n    sendTo(\"telegram.0\", \"send\", {\n    text: 'Tibber Preis cheap'});\n    \/\/ Start charge Sonnen Batt\nsetState(\"0_userdata.0.Sonnen-Batterie.StartCharge\",true);\nsetState('sonnen.0.configurations.EM_OperatingMode',1);\nsetState('sonnen.0.control.discharge', 0); \/\/Als erstes aus Sicherheit discharge auf 0 setzen\nsetState('sonnen.0.control.charge', 3300); \/\/ Die Batterie wird mit maximal 3300 Watt geladen\nsetState('sonnen.0.configurations.EM_OperatingMode',1);\ndate = formatDate(Zeit, 'DD.MM.YYYY - hh:mm');\nsetState(\"0_userdata.0.Sonnen-Batterie.Time-Start-Charge\",date);\n}  \/\/ Ende Tibber Preis\n} \/\/ Ende Zeit last charge\n} \/\/ Ende laden false\n\nconsole.log(UserSOC);\nif (Charging === true) {\n    if (UserSOC &lt;=100) {\n       setState('sonnen.0.control.charge', 3300); \n    }\nif (UserSOC &gt;= 100) {\n  setState('sonnen.0.configurations.EM_OperatingMode',2);   \/\/ Automatik\n  setState('sonnen.0.control.discharge', 1); \/\/Entladen Ein\n  setState(\"0_userdata.0.Sonnen-Batterie.StartCharge\",false); \n  setState('sonnen.0.configurations.EM_OperatingMode',2);\n  sendTo(\"telegram.0\", \"send\", {\n    text: 'SOC &gt;= 100%'}); \n  console.log('SOC &gt;= 100%');\n  date = formatDate(Zeit, 'DD.MM.YYYY - hh:mm');\n  setState(\"0_userdata.0.Sonnen-Batterie.Time-End-Charge\",date);\n}\n}\n\n } \n \/\/ Ende<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In dieser Beschreibung geht es darum, die Batterie-Pflege vorzuziehen, wenn der Strompreis g\u00fcnstig ist. Alle 30 Tage wird eine Batterie-Pflege von Sonnen initiiert, wenn die Batterie nicht innerhalb der Zeit zu 100% geladen wurde. Hier wird versucht, diese Batterie-Pflege dann &hellip; <a href=\"https:\/\/www.stephan-lubahn.de\/?p=894\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[71],"tags":[],"class_list":["post-894","post","type-post","status-publish","format-standard","hentry","category-anleitungen"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts\/894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=894"}],"version-history":[{"count":44,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts\/894\/revisions"}],"predecessor-version":[{"id":1130,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=\/wp\/v2\/posts\/894\/revisions\/1130"}],"wp:attachment":[{"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.stephan-lubahn.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}