NEWS
E3DC Hauskraftwerk via Tibber laden
-
@mazze Jetzt ja, siehe FB Eintrag! Beim Senden nicht BESTÄTIGT anklicken ... blöd von mir, aber ich komm drüber weg
-
@dataeasy @Mazze Warum nicht gleich nach den Sternen greifen?
Nun habe ich ja die Möglichkeit, den Speicher per Script zum Laden zu bewegen, nun will ich diese Funktion in ein Gesamtkonzept einbetten und den Winter mit der Niedrigstrom-Logik von fl_dutch (Youtube: How To: dynamische Strompreise von Tibber optimal nutzen) kombinieren! Hier kommt Node-Red zu Einsatz, ist aber kein Problem, da im Grunde sich da nur Datenpunkte treffen, Deine Logik wird vom fl_Dutch Node-Red Script genutzt.
Hat da schon jemand Erfahrung zu? Das Node-Red an sich lüft bei mir gut, nur die Node "ps-strategy-Lowest-Price" will am Ausgang "On" nicht (beim Erreichen der Billigphase) "true" ausgeben, selbst, wenn ich beide Ausgänge (On/Off) auf den Datenpunkt lege, müsste beim Erreichen der Phase treu geschrieben und beim verlassen der Phase false! Leider nicht, ich kann meine komplette Logik gerne mal zur Verfügung stellen, damit Ihr wisst, wovon ich rede...
Hier mal die Config der Node, evtl. liegt da schon der Hase im Pfeffer:
Das bekommt die Node als Input:
{"priceData":[{"value":0.1664,"start":"2023-12-23T00:00:00.000+01:00"},{"value":0.1663,"start":"2023-12-23T01:00:00.000+01:00"},{"value":0.1663,"start":"2023-12-23T02:00:00.000+01:00"},{"value":0.1663,"start":"2023-12-23T03:00:00.000+01:00"},{"value":0.1663,"start":"2023-12-23T04:00:00.000+01:00"},{"value":0.1663,"start":"2023-12-23T05:00:00.000+01:00"},{"value":0.1665,"start":"2023-12-23T06:00:00.000+01:00"},{"value":0.1752,"start":"2023-12-23T07:00:00.000+01:00"},{"value":0.1901,"start":"2023-12-23T08:00:00.000+01:00"},{"value":0.2164,"start":"2023-12-23T09:00:00.000+01:00"},{"value":0.2159,"start":"2023-12-23T10:00:00.000+01:00"},{"value":0.221,"start":"2023-12-23T11:00:00.000+01:00"},{"value":0.2227,"start":"2023-12-23T12:00:00.000+01:00"},{"value":0.2256,"start":"2023-12-23T13:00:00.000+01:00"},{"value":0.2286,"start":"2023-12-23T14:00:00.000+01:00"},{"value":0.2303,"start":"2023-12-23T15:00:00.000+01:00"},{"value":0.2354,"start":"2023-12-23T16:00:00.000+01:00"},{"value":0.2474,"start":"2023-12-23T17:00:00.000+01:00"},{"value":0.2454,"start":"2023-12-23T18:00:00.000+01:00"},{"value":0.2396,"start":"2023-12-23T19:00:00.000+01:00"},{"value":0.2302,"start":"2023-12-23T20:00:00.000+01:00"},{"value":0.2158,"start":"2023-12-23T21:00:00.000+01:00"},{"value":0.1905,"start":"2023-12-23T22:00:00.000+01:00"},{"value":0.1755,"start":"2023-12-23T23:00:00.000+01:00"}],"source":"Tibber"}
Und das ist Output:
{"schedule":[{"time":"2023-12-23T00:00:00.000+01:00","value":false,"countHours":24}],"hours":[{"start":"2023-12-23T00:00:00.000+01:00","price":0.1664,"onOff":false,"saving":null},{"start":"2023-12-23T01:00:00.000+01:00","price":0.1663,"onOff":false,"saving":null},{"start":"2023-12-23T02:00:00.000+01:00","price":0.1663,"onOff":false,"saving":null},{"start":"2023-12-23T03:00:00.000+01:00","price":0.1663,"onOff":false,"saving":null},{"start":"2023-12-23T04:00:00.000+01:00","price":0.1663,"onOff":false,"saving":null},{"start":"2023-12-23T05:00:00.000+01:00","price":0.1663,"onOff":false,"saving":null},{"start":"2023-12-23T06:00:00.000+01:00","price":0.1665,"onOff":false,"saving":null},{"start":"2023-12-23T07:00:00.000+01:00","price":0.1752,"onOff":false,"saving":null},{"start":"2023-12-23T08:00:00.000+01:00","price":0.1901,"onOff":false,"saving":null},{"start":"2023-12-23T09:00:00.000+01:00","price":0.2164,"onOff":false,"saving":null},{"start":"2023-12-23T10:00:00.000+01:00","price":0.2159,"onOff":false,"saving":null},{"start":"2023-12-23T11:00:00.000+01:00","price":0.221,"onOff":false,"saving":null},{"start":"2023-12-23T12:00:00.000+01:00","price":0.2227,"onOff":false,"saving":null},{"start":"2023-12-23T13:00:00.000+01:00","price":0.2256,"onOff":false,"saving":null},{"start":"2023-12-23T14:00:00.000+01:00","price":0.2286,"onOff":false,"saving":null},{"start":"2023-12-23T15:00:00.000+01:00","price":0.2303,"onOff":false,"saving":null},{"start":"2023-12-23T16:00:00.000+01:00","price":0.2354,"onOff":false,"saving":null},{"start":"2023-12-23T17:00:00.000+01:00","price":0.2474,"onOff":false,"saving":null},{"start":"2023-12-23T18:00:00.000+01:00","price":0.2454,"onOff":false,"saving":null},{"start":"2023-12-23T19:00:00.000+01:00","price":0.2396,"onOff":false,"saving":null},{"start":"2023-12-23T20:00:00.000+01:00","price":0.2302,"onOff":false,"saving":null},{"start":"2023-12-23T21:00:00.000+01:00","price":0.2158,"onOff":false,"saving":null},{"start":"2023-12-23T22:00:00.000+01:00","price":0.1905,"onOff":false,"saving":null},{"start":"2023-12-23T23:00:00.000+01:00","price":0.1755,"onOff":false,"saving":null}],"source":"Tibber","config":{"fromTime":"00","toTime":"00","hoursOn":1,"maxPrice":0.3,"doNotSplit":false,"sendCurrentValueWhenRescheduling":true,"outputIfNoSchedule":false,"outputOutsidePeriod":false,"outputValueForOn":true,"outputValueForOff":false,"outputValueForOntype":"bool","outputValueForOfftype":"bool","override":"auto","contextStorage":"memory","hasChanged":false},"time":"2023-12-23T07:43:39.523+00:00","version":"4.1.5","strategyNodeId":"5aec03a7d05d5184","current":false}
Wenn diese Logik also mal fertig ist, dann will ich mit der preiswerten Phase den Speicher laden und die (bei Tibber normal) 8-10Uhr teure Phase dann mit dem Speicher überbrücken, so kommt man auf einen niedrigeren Durchschnittspreis pro Tag im Winter.
Oder was meint Ihr?
Schöne Feiertage und einen guten Rutsch ...
-
Ich habe es mal als JavaScript hinzugefügt und meine Tibberdatenpunkte durch die von TibberLink getascht. Allerdings bekomme ich den Fehler, dass der Name "Modus" und "Modus2" nicht bekannt sind.
Als Blockly geht es auch nicht. @dataeasy kannst du eventuell einfach dein Blockly nachreichen? Danke!
-
@dpcfan was meinst du damit?
Jetzt ja, siehe FB Eintrag! Beim Senden nicht BESTÄTIGT anklicken ... blöd von mir, aber ich komm drüber weg 🙂
-
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="0Y=so_Zpfh)R*xO_xNNF">laden</variable> <variable id="sna]-E(|pedUs57eb$2`">Modus</variable> <variable id=":HUM}NcSr6pr)*_tZ%K~">Modus2</variable> </variables> <block type="comment" id="wYGKOV@m;DSPr+gVMqP?" x="-1737" y="13"> <field name="COMMENT">Akku Kappa prüfen </field> </block> <block type="on" id="KFi=aS{@Kx{roq-j!Xe7" disabled="true" x="-1037" y="38"> <field name="OID">modbus.0.holdingRegisters.40083_Batterie_SOC</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="9N6u3).GRGvc)1gm;X|!"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="QWTMu`{ISH)Q+@B6L/%v"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="T;.A|P5(O7jN0G*;H~!m"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="]I19$BZjvJ!+)um^!_HI"> <field name="NUM">90</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="ssF!(q$ucIV!^0/gI.DE"> <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field> <value name="VALUE"> <block type="logic_boolean" id="!-5fe:)bt2D^o55`~V6e"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="vM=KXc6DPa*}Pr$Te~L4"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="W{$9=T9Riae0N%gbqi:f"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="/sBQS6(EU]m?-Y-d0IOy"> <field name="NUM">60</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="=Q8){LXrePz%dE.!$~N0"> <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field> <value name="VALUE"> <block type="logic_boolean" id="[N(Y1gE!ZR0xnH[0xv6C"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="procedures_callnoreturn" id="Yhrcf/j6f8Y~(@|y8Io|"> <mutation name="Ladeschaltung"></mutation> </block> </next> </block> </statement> </block> <block type="variables_set" id="x9m5V3x?MUQf?=|sIA)O" x="-1701" y="103"> <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field> <value name="VALUE"> <block type="logic_compare" id="!y@{Jc}M%Bx)@xDEF[e6"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="tLKe{e977sRsinM3RlD2"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40083_Batterie_SOC</field> </block> </value> <value name="B"> <block type="math_number" id="0G.cUP$cs(uN^d_e0)`e"> <field name="NUM">90</field> </block> </value> </block> </value> <next> <block type="on_ext" id="i[kzA$?k0Au)PSJj3NUX"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="W+V%)[~WW^AK@Ec{McC:"> <field name="oid">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="[H;K_$kk#fvdMgmVK,H/"> <field name="oid">e3dc-rscp.0.EMS.BAT_SOC</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="UmNudO+,rEct.^!V?j5b"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="AKgs?gRA*]lIT5e*HvC+"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="$?3+?crUY.`!=+a2kY!;"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="~$z+Ztl$p~8dlt{5`M5W"> <field name="NUM">90</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="sC?yyd#svq#4)f^QMN(d"> <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field> <value name="VALUE"> <block type="logic_boolean" id="Lk_)ggA/}P[lL1Y+iyGT"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="hoS~CwMU$B(3;8*@;w?C"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="6,~f[|=t71GEEl9]YdEU"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="Xz9JLpxA+K`5Vh:tlc$n"> <field name="NUM">60</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="ocdHdKy}TTE*!BBxZ5Gl"> <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field> <value name="VALUE"> <block type="logic_boolean" id="x-2MJ)({x}%|.E3G~8nt"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="procedures_callnoreturn" id="Wzv?*kolrctW9wZ!.uI@"> <mutation name="Ladeschaltung"></mutation> </block> </next> </block> </statement> <next> <block type="on" id=":2,QS4x0YvzuIG??Qk{6"> <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="kECB%]i[JX!ln^uC{3KS"> <mutation name="Ladeschaltung"></mutation> </block> </statement> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="5/;3|HSfY1DAjxt5?Boe" x="-1312" y="313"> <field name="NAME">Ladeschaltung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="}Fqs{clkugC%PJw|,#%x"> <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field> <value name="VALUE"> <block type="logic_ternary" id="[.r)hU4YsaqlemuDNLsW" inline="false"> <value name="IF"> <block type="logic_operation" id="H*{$FtGE0%O3m5jr4c21" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare" id="wZye_u#FX4S:_:^FGt5M"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">00:00</field> <field name="END_TIME">23:59</field> </block> </value> <value name="B"> <block type="logic_operation" id="ER[=B#TFc_ndUaaaTNRt" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="!*+rWx@,]$AW+i93=Mn*"> <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field> </block> </value> <value name="B"> <block type="logic_compare" id="=8#@vo)?z[cBMw:{FplF"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="E@n3z2oC/LJYxONikYzn"> <field name="ATTR">val</field> <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="GWdA~Yt7%EBIt:MB7mUx"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="XFc}i=E5`-sQo,q=EB3s"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Mg4(^8mm2m1m-!KR:KNU"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openWB.global.awattar.MaxPriceForCharging</field> </block> </value> <value name="B"> <shadow type="math_number" id="b|b]G0E|N?lfzh|zDNi0"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> </block> </value> </block> </value> <value name="THEN"> <block type="math_number" id="o#}VxYa6c$I+LFI1+swW"> <field name="NUM">4</field> </block> </value> <value name="ELSE"> <block type="math_number" id="-Ex~STFr^1*sZg6W]l9t"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="controls_if" id=":;ok#KZ[]ZEu0T|P=kkc"> <value name="IF0"> <block type="logic_compare" id="Et5%B.C)v{VpjEE{Uu:m"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="#_L2|M#CMg$RtVppuO;i"> <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field> </block> </value> <value name="B"> <block type="get_value" id="%_p_e*RYch*Ordw=@WAO"> <field name="ATTR">val</field> <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="/N-q:7/s~*M1MC``1^c,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="88O=,bjBm3i_+(?W{@lF"> <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field> </block> </value> <next> <block type="control" id="#s@xa/|zj!h~d)F5W#i_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.SET_POWER_VALUE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="7SgL{z$d[1n.T^;9?W0X"> <field name="NUM">9000</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> <block type="logic_compare" id="wF64?Si9r?dwKy]_EDI," disabled="true" x="-412" y="338"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="SeKBpiJu(74N$cpJcunB"> <field name="ATTR">val</field> <field name="OID">tibber.0.priceInfo.current.total</field> </block> </value> <value name="B"> <block type="math_number" id="G8B$puW6XG_@^WC4)xou"> <field name="NUM">0.175</field> </block> </value> </block> <block type="comment" id="Ti|wD85x|9vJ|jQkdkC." x="-1512" y="763"> <field name="COMMENT">Entladesperrzeiten setzten </field> <next> <block type="on" id="IIm+KjOL:(hXR[e|*WE{"> <field name="OID">go-e.1.car</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="7h}sCENa/zpk*Nt~ZBVc"> <mutation name="Endladesperre"></mutation> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="wZzT|Qsccu:rd|,.;1Z-" x="-1512" y="938"> <field name="NAME">Endladesperre</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="5*C{VGE_Dxz}J=P657-P"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> <value name="VALUE"> <block type="logic_ternary" id="fq`!8q%cl%)d=Ixn1_Hl"> <value name="IF"> <block type="logic_operation" id="E]@LMsU2],iqOI4VcarV"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="sqp/G2tE45TP4w64%Hx,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="s[Mrpp-{OnFlKb{`Qr7|"> <field name="ATTR">val</field> <field name="OID">go-e.1.car</field> </block> </value> <value name="B"> <block type="math_number" id=":3T$q[mhTuRd2gtv@Q=a"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="0*6%m8W!.RY8k~PXGF@0"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="vcPnw^PDiIlR``5H4SHJ"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openWB.global.ChargeMode</field> </block> </value> <value name="B"> <block type="math_number" id="J0dUc^1a%dpvJZn:~h|6"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="THEN"> <block type="logic_boolean" id="?/u~qD1:Nk{[YN}VPcJZ"> <field name="BOOL">TRUE</field> </block> </value> <value name="ELSE"> <block type="logic_boolean" id=",x??(^xPFEaGr(CV)yt}"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <next> <block type="controls_if" id="VXEP_o7e$E$G%i4UeHf9"> <value name="IF0"> <block type="logic_compare" id="x}#J]4N8U:kxEu[z2C_1"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="t@o(k7Y_cK5@;br)n1!f"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> <value name="B"> <block type="get_value" id="JeuFg+eo_?g(5fZ|?KDM"> <field name="ATTR">val</field> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id=",v4{PWtN7j=IbT,{?9wu"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="C-UAIh|@3K@q4FbUsZY6"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> <next> <block type="control" id=";bo#Od1yavuvBA0M7MPB"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.01-Tuesday.IDLE_PERIOD_ACTIVE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="fm2`{!(Wvx1^zTh}k1?}"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> <next> <block type="control" id=";KkLypI!01qn~g%gPOJu"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.02-Wednesday.IDLE_PERIOD_ACTIVE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="+sPa([CU]vgKBmHNq+:-"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> <next> <block type="control" id="v8QU_)qgLDHjau}SpUMd"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.03-Thursday.IDLE_PERIOD_ACTIVE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="#0OV]H%qAXHD.x*iMrdL"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> <next> <block type="control" id="9h}O1NWT4D]+,lWk!0sj"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.04-Friday.IDLE_PERIOD_ACTIVE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="].%%C*600cCsr/FuC_S|"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> <next> <block type="control" id=".nyo-LMoZbB4G7bY|8QU"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.05-Saturday.IDLE_PERIOD_ACTIVE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">6</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="u8X-iz3T{bt,0MHrap:X"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> <next> <block type="control" id="DB_AQFx-Ijot);%W#^@g"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.06-Sunday.IDLE_PERIOD_ACTIVE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">7</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="*E+#K/MUZjz*lZWg%slf"> <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@dataeasy Hallo. Ich würde es gerne testen.
Wenn ich deine Sachen im blockly inportiere ist da ein wenig alles durcheinander. Ebenfalls gibt es einen Block in der Farbe braun den ich so noch nicht gesehen habe. Hier sind auch Werte vom Modbus drin. Brauch ich den? Eigentlich ist ja E3RSCP für die Steuerung da.
Hat es schon jemand hinbekommen.Ziel ist für mich: Auto über EVCC laden wenn Strom günstig (Tibber), E3DC nachladen wenn Strom günstig (Tibber) und kein Laden aus der Batterie.
Danke
-
@dpcfan Hallo. Läuft es bei dir nun? Ich würde es gerne probieren, habe aber mit Nodered nichts am Hut.
Müsste ich dann installieren. Bekommt man das irgendwie dann importiert? -
@robbi12 mhhh was meinst du genau du musst das Script natürlich noch auf dein System anpassen (DatenPunkte etc) wenn du Evcc nutzt dann wäre das z.b der erste Punkt den du abändern musst .. ich Nutze z.b openWB)
hie rnoch mal das Script ohne die deaktivten Teilen die im letzten noch drin waren
<block xmlns="https://developers.google.com/blockly/xml" type="procedures_defnoreturn" id="5/;3|HSfY1DAjxt5?Boe" x="-1312" y="262.4"> <field name="NAME">Ladeschaltung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="}Fqs{clkugC%PJw|,#%x"> <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field> <value name="VALUE"> <block type="logic_ternary" id="[.r)hU4YsaqlemuDNLsW" inline="false"> <value name="IF"> <block type="logic_operation" id="H*{$FtGE0%O3m5jr4c21" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare" id="wZye_u#FX4S:_:^FGt5M"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">00:00</field> <field name="END_TIME">23:59</field> </block> </value> <value name="B"> <block type="logic_operation" id="ER[=B#TFc_ndUaaaTNRt" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="!*+rWx@,]$AW+i93=Mn*"> <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field> </block> </value> <value name="B"> <block type="logic_compare" id="=8#@vo)?z[cBMw:{FplF"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="E@n3z2oC/LJYxONikYzn"> <field name="ATTR">val</field> <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="GWdA~Yt7%EBIt:MB7mUx"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="XFc}i=E5`-sQo,q=EB3s"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Mg4(^8mm2m1m-!KR:KNU"> <field name="ATTR">val</field> <field name="OID">mqtt.0.openWB.global.awattar.MaxPriceForCharging</field> </block> </value> <value name="B"> <shadow type="math_number" id="b|b]G0E|N?lfzh|zDNi0"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> </block> </value> </block> </value> <value name="THEN"> <block type="math_number" id="o#}VxYa6c$I+LFI1+swW"> <field name="NUM">4</field> </block> </value> <value name="ELSE"> <block type="math_number" id="-Ex~STFr^1*sZg6W]l9t"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="controls_if" id=":;ok#KZ[]ZEu0T|P=kkc"> <value name="IF0"> <block type="logic_compare" id="Et5%B.C)v{VpjEE{Uu:m"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="#_L2|M#CMg$RtVppuO;i"> <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field> </block> </value> <value name="B"> <block type="get_value" id="%_p_e*RYch*Ordw=@WAO"> <field name="ATTR">val</field> <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="/N-q:7/s~*M1MC``1^c,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="88O=,bjBm3i_+(?W{@lF"> <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field> </block> </value> <next> <block type="control" id="#s@xa/|zj!h~d)F5W#i_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">e3dc-rscp.0.EMS.SET_POWER_VALUE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="7SgL{z$d[1n.T^;9?W0X"> <field name="NUM">9000</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block>
-
@dataeasy Hallo zusammen,
Ich weiß nicht, ob es mittlerweile einen neueren Thread als diesen hier gibt. Aber wenn nicht hätte ich ein paar Fragen zum Skript.
Grüße
Ron -
@dataeasy
Hallo es ist schon ein paar Monate her das Du diesen Skript geschreiben hast.
Setzt Du in deiner Anlage diese Version ein oder gibt es Überarbeitungen oder Anpassungen?Aus dem Umfeld „E3DC-Controll“ habe ich folgende Info erhalten:
e3dc-rscp.0.EMS.SET_POWER_VALUE alle 4 sek. die Ladeleistung eintragen.
Diesen 4 sek Intervall finde ich nicht bei dir.
LG Ronni -
@ronniboy Hi ich nutze das Script noch genau so und den Trigger auf Powervalue setzte ich doch