NEWS
TibberLink Adapter
-
@allelectrified
Dort ist nicht das Blockly eingefügt, kannst du mir das schicken? -
@maas-meister Hier ist der Blockly Code zum erzeugen des JSON welches in eCharts direkt angezeigt werden kann. Bitte vor dem Import "DEINE_TIBBERLINK_ID" durch Deine Tibber ID ersetzen, damit die Datenpunkte passen.
Nicht wundern. Ich mache noch ein wenig mehr in dem Script. Ich schreibe noch ein zweites JSON, welches bezogen auf einen Triggerpreis die Info enthält ob die jeweilige Stunde unter oder oberhalb liegt. Damit kann ich dann im eChart diesen grünen Bereich erzeugen. Und ich zähle, wieviele Stunden dann unter dem Triggerpreis liegen.
Und die Variablen mit 0_userdata.0.xxx müssen natürlich angelegt werden. Viel Erfolg!Leider ist der Blockly Script zu lang. Ich versuche es mal in 2 Teilen zu posten. Diese vor dem importieren hintereinander zusammenfügen (hoffe das geht - ansonsten bitte kurze Info).
-
Blockly Teil 1/2
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="XySa}1L62YN64ae4XfHM">nur_Daten_fuer_heute</variable> <variable id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</variable> <variable id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</variable> <variable id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</variable> <variable id="5^mq-W7yKyl?zo,-JG;J">letzte_Laenge</variable> <variable id="Ck=9?pt0VX=N%S,6},7f">Ladezeitflag</variable> <variable id="ChO!f~2yOOGR^a{VPiM-">Quelldaten2_fuer_Ladezeiten</variable> </variables> <block type="comment" id="(b9{2M1D3W{$ssbUwz~b" x="-1584" y="82"> <field name="COMMENT">Daten von Tibber auf Änderung prüfen</field> <next> <block type="on_ext" id="sqaz+j1f!=gUe}G4mzk="> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="1U^Z+K2ngC[Wp#!M/QV9"> <field name="oid">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.PricesToday.json</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="S;N9[PH4S%Ov^yr_oJJ3"> <field name="oid">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.PricesTomorrow.json</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="lJi%^DIveBz{5rp[93d_"> <field name="oid">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.CurrentPrice.total</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id=",d+~IAMucl`67yCw$Z7{"> <field name="oid">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.Calculations.0.TriggerPrice</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="kH|vM)*Dx+Kr-+(eMjp{"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="Yl(*XL?2}pe3T%,c;tO3"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="zd2nq@L:_kz(kH88|#=k"> <field name="ATTR">val</field> <field name="OID">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.PricesTomorrow.json</field> <comment pinned="false" h="80" w="160">Prices.Tomorrow</comment> </block> </value> <value name="B"> <block type="text" id="r*]Fvj{_[7$4Oi^gI.h*"> <field name="TEXT">[]</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="/+y7n9-o+%[J(p7pk9v0"> <field name="VAR" id="XySa}1L62YN64ae4XfHM">nur_Daten_fuer_heute</field> <value name="VALUE"> <block type="logic_boolean" id="nHJopxQ_qB(!W4uW-H^m"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="UGcdyGVc5|]GvCh{BZCQ"> <field name="VAR" id="XySa}1L62YN64ae4XfHM">nur_Daten_fuer_heute</field> <value name="VALUE"> <block type="logic_boolean" id="F+IlcMv#J5uci+cTSfbu"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="debug" id=";QJI|wzu~b/mr[!$u3V|" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="W*P|d:S|#[)cmXj?|p_n"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="HaUzyY*#IZd.R|@+m-X~"> <field name="VAR" id="XySa}1L62YN64ae4XfHM">nur_Daten_fuer_heute</field> </block> </value> <next> <block type="comment" id="3^JVJ)^{_P(*w=%hB*wD"> <field name="COMMENT">Daten von Tibber holen:</field> <next> <block type="variables_set" id="+rC:Sa}O3wFEQBBP#~H5"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> <value name="VALUE"> <block type="get_value" id="TeLT~aY(!Qs9B,eg6@9*"> <field name="ATTR">val</field> <field name="OID">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.PricesToday.json</field> </block> </value> <next> <block type="controls_if" id="r%|7{q4T0~?B{c;Wo3:m"> <value name="IF0"> <block type="logic_negate" id=":iykOM8IiEl;UK/TeAAJ"> <value name="BOOL"> <block type="variables_get" id="DV.az0%A``lW.*C1j7gO"> <field name="VAR" id="XySa}1L62YN64ae4XfHM">nur_Daten_fuer_heute</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="rQ*532RnTKQvaJ$e{]iH"> <field name="COMMENT">Zusammenführung in eine Variable:</field> <next> <block type="comment" id="%PE(lN|XBm-P@3gt1ge+"> <field name="COMMENT">zuerst Daten von heute rechtsbündig bereinigen:</field> <next> <block type="variables_set" id="D7YhEFY_Gd`px[k[Ht0-"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> <value name="VALUE"> <block type="text_join" id="Dck|--W;YeDDC3m`!Ami"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text_getSubstring" id="h/fME)cTqCw=%3Gj7*eg" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="imIgD~nTU81eeG5dsPzd"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="AT1"> <block type="math_number" id="lZVZaGr6{%jUXi`[x6zL"> <field name="NUM">1</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id="Qw.7fqzo+9s]djS]}kqL"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="i087qwULN,.bYj5OL8`m"> <field name="NUM">1</field> </shadow> <block type="text_length" id="ekAiVUCen3WHY,]t:/U1"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="V_alg_%w48ZibbNPT(|a"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LY.Pjau%bKj8]DMG;0,e"> <field name="NUM">1</field> </shadow> <block type="math_number" id="S6mXN$`4#gqi3|Q$KL93"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="fTf7~.5dG.|D2uDuA=WP"> <field name="TEXT">, </field> </block> </value> <value name="ADD2"> <block type="text_getSubstring" id="f=+chA;}W0g=nR]+V1SH" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="get_value" id="m1`1hIaOZtu~!1`(wX,~"> <field name="ATTR">val</field> <field name="OID">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.PricesTomorrow.json</field> </block> </value> <value name="AT1"> <block type="math_number" id="QuL$dtM,_mRUij-cpcgc"> <field name="NUM">2</field> </block> </value> <value name="AT2"> <block type="text_length" id="^b/Wo+lL=eLJ|Cc|m%Nl"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="get_value" id=";`5HmKTD(otT[0SIDYFM"> <field name="ATTR">val</field> <field name="OID">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.PricesTomorrow.json</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id="6~FIKz^bu9)A`~oHRX~$" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="aHAm@AgjhT(Vyz4Ott0P"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="5UNYK!4@tDCdQZCnW7Hk"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <next> <block type="comment" id="WcdT1@rK%glUn|}9Ogdm"> <field name="COMMENT">Datenformat umwandeln:</field> <next> <block type="variables_set" id="0+WIzL6)ub?#Q*Oi-e-3"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> <value name="VALUE"> <block type="text" id="S4u:-FS0p/50dD4Z27Wu"> <field name="TEXT">[{"ts": </field> </block> </value> <next> <block type="variables_set" id="1foz~@BgEBm#lJR!Zake"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> <value name="VALUE"> <block type="text" id="9bgW0c4f+}h~Z*=ASeon"> <field name="TEXT">[{"ts": </field> </block> </value> <next> <block type="control" id="#T!4nOkc]r9W5[wW1iG8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromversorgung.Tibber-Ladestunden_aktiv</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="w$7x7cYiPj}A{Xq8;qwn"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_whileUntil" id="gPAmf3O3vKv@uZY60m)7"> <field name="MODE">WHILE</field> <value name="BOOL"> <block type="logic_compare" id=";=/Cf`he66?^O,K=m]Mq"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="gfC{taqw(s=@@U*1z@/P"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="=iJ4cP+rAz,y26YJaU?9"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="FIND"> <shadow type="text" id="j!?v?UM+G?,Q;nh(NaP{"> <field name="TEXT">abc</field> </shadow> <block type="text" id="T8)-h6b`-,EeC_yda;}!"> <field name="TEXT">startsAt</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="!8=x5hK*j=lS7hpJ@-~R"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO"> <block type="variables_set" id="j/,%|hAaLAfiN,$1wrWy"> <field name="VAR" id="5^mq-W7yKyl?zo,-JG;J">letzte_Laenge</field> <value name="VALUE"> <block type="text_length" id=":WH(JFg9Di-M9v,~.we]"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="MpAraTQ#`T%rcQ(6=rAK"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> <next> <block type="variables_set" id="~1X2l0]tc#RgQ98Ef(r0"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> <value name="VALUE"> <block type="text_join" id="U[26IqruM7jlTo?C0=ly"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="?2S.EhCRL#/tnV1MXe]y"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <value name="ADD1"> <block type="convert_from_date" id="73LY.+hRj1T3jWojxTW5"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> <value name="VALUE"> <block type="get_attr" id="2c6?LRNEq`1~Xg@R{rOf"> <value name="PATH"> <shadow type="text" id="@-Tcqui;#iZpzGyFfazS"> <field name="TEXT">0.startsAt</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="g(jS8U14qZU5i[C{uAvo"> <value name="VALUE"> <block type="variables_get" id="NC5m5{rLvX{Jn:t?u6sq"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="Ix+;#0LT^dpg,OR#fb,g"> <field name="TEXT">, "val": </field> </block> </value> </block> </value> <next> <block type="variables_set" id="mWua`smZi5Pw@u/@:Zm}"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> <value name="VALUE"> <block type="text_join" id="y8{ftl%Y=F*|Pv),2QsT"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="xpQ5|kpls@7cW$K}qaOK"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <value name="ADD1"> <block type="get_attr" id="RM}:z+C65Y9@B./|zOp+"> <value name="PATH"> <shadow type="text" id="s$qtq+ISbGo#[P=[K=hl"> <field name="TEXT">0.total</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="icJa-0!RJ[MSfR(t:U)n"> <value name="VALUE"> <block type="variables_get" id="~NJo(3~Cl]+8vB+y~w}n"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="k/y7V5Myc+0,a-*Q2w~/"> <field name="TEXT">}, {"ts": </field> </block> </value> </block> </value> <next> <block type="variables_set" id="s62Pc8mtTo*Nzr)D@KY/"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> <value name="VALUE"> <block type="text_join" id="p!8xp@3Gk!Irp}9M8S+j"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="WI-q*2CjrbP|0m{b!_.B"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <value name="ADD1"> <block type="convert_from_date" id="{{sj6bK~sH:~}aM8+(r/"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> <value name="VALUE"> <block type="get_attr" id="=|#yux*}8U2=qL0=p5zK"> <value name="PATH"> <shadow type="text" id="T_JPa776M^Mob68D5iG9"> <field name="TEXT">0.startsAt</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="0y{uQhUc4;c-i/MSWe.W"> <value name="VALUE"> <block type="variables_get" id="M?/Z;jQs{CflX7T_zchn"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id=".FQWLrGu+=FaJ8.^[hm]"> <field name="TEXT">, "val": </field> </block> </value> </block> </value> <next> <block type="controls_if" id="Ny^gQCIp;5pF:$?nA~vx"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="kL~^%!qw^1?86qo5N2T#"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="|8)R4Wl6=Yg3Dp$Dg#=V"> <field name="OP">LT</field> <value name="A"> <block type="convert_tonumber" id="3tpX8skkWvyo``Bu#wbx"> <value name="VALUE"> <block type="get_attr" id="m]dRW#p@.iX#I8v::_34"> <value name="PATH"> <shadow type="text" id="iW37pzT|2[YPDy?k#[jb"> <field name="TEXT">0.total</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="2SZU(KQRAk%)h!Y]=a[("> <value name="VALUE"> <block type="variables_get" id="nJ:Hlmn6kys/6DC/?(`!"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="get_value" id=":]tevQz2n+Wg[dm#Ny74"> <field name="ATTR">val</field> <field name="OID">tibberlink.0.Homes.DEINE_TIBBERLINK_ID.Calculations.0.TriggerPrice</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="CtXc.Oov{}W/JT.S,8Hn"> <field name="OP">GTE</field> <value name="A"> <block type="convert_from_date" id="O*Ps~H?3vZ2}+#1Ce0E2"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> <value name="VALUE"> <block type="get_attr" id="SPh=NA9/KoJs9r2#maTQ"> <value name="PATH"> <shadow type="text" id="0J%xtQN.?SR#.lESg|a,"> <field name="TEXT">0.startsAt</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="}N!PvIayfr}UO[b=8oE}"> <value name="VALUE"> <block type="variables_get" id="JlLSq;PJSp$ML4XbDJ,-"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="time_get" id="(J^]NVz)pHHr@i(#iHxG"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id=")5{}$:ilX0xFSWpnEwcB"> <field name="VAR" id="Ck=9?pt0VX=N%S,6},7f">Ladezeitflag</field> <value name="VALUE"> <block type="text" id="kc=BAO#Re*^DlL2cYm}L"> <field name="TEXT">1</field> </block> </value> <next> <block type="control" id="Ak`PwmkNoa+sc)/^$Ztg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromversorgung.Tibber-Ladestunden_aktiv</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="c@I]1gcNB7?DCi%QT7J^"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="@Z0,1LJNOj,T)WuV7Hb@"> <field name="NUM">1</field> </shadow> <block type="get_value" id="yGt9e@Hj9OYT[_}oWF7["> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Stromversorgung.Tibber-Ladestunden_aktiv</field> </block> </value> <value name="B"> <shadow type="math_number" id="|pJpPy^]hpMO/OI@?E=d"> <field name="NUM">1</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="As`q5L,/zLik=4rk[[nz"> <field name="VAR" id="Ck=9?pt0VX=N%S,6},7f">Ladezeitflag</field> <value name="VALUE"> <block type="text" id="~{M}P_+$/q*JMtPC_~C!"> <field name="TEXT">0</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="J(]8o/sIx(#4qL{:GF~h"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> <value name="VALUE"> <block type="text_join" id="g4+$N2]bNtXs366M.5#o"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="X31}:O6a~(YEOA)K=-sy"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="p%GZ{Sz6~Mn@%]nu|ivI"> <field name="VAR" id="Ck=9?pt0VX=N%S,6},7f">Ladezeitflag</field> </block> </value> <value name="ADD2"> <block type="text" id="g8rvk#p#IyPr8Wx}u;e4"> <field name="TEXT">}, {"ts": </field> </block> </value> </block> </value> <next> <block type="controls_if" id="N44yj(f$rLKm-5Vd_DAP"> <value name="IF0"> <block type="logic_compare" id="l$!bz?@t4pn8h[xf7r.G"> <field name="OP">LT</field> <value name="A"> <block type="text_indexOf" id="ugKcRx)U6@O@/-W7$o:2"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id=";sLT%b3{qClTZ$ricR(C"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="FIND"> <shadow type="text" id="TD]vqrZwd@LCR9Lesv$="> <field name="TEXT"></field> </shadow> <block type="text" id="8,s}EhSrFOPF.4~@YP3_"> <field name="TEXT">},</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="%RUWe~3CpTm34w%^86OB"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_flow_statements" id="#-^kWsnKmkNelBj{?oE4"> <field name="FLOW">BREAK</field> </block> </statement> <next> <block type="variables_set" id="nQW(tG:E*X7uyXS_`eT/"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> <value name="VALUE"> <block type="text_join" id="7OFET=2OVbD^5n45(2%j"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="T0SkL#7_:,?gr(UnHN^j"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="text_getSubstring" id="A83bf@1`;#O:MmUMG7pd" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="Vu:Pu*9e4nCKLB?Q[Dsz"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="AT1"> <block type="math_arithmetic" id="f,nU/lzqDuIWurvffH0I" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="/=mesw]/(ZD)iAu5hnlv"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="+_8_K4+UO6LqChfWwkYy"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="|,Vw(_oA:as.+#;MoKI("> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="FIND"> <shadow type="text" id="TD]vqrZwd@LCR9Lesv$="> <field name="TEXT"></field> </shadow> <block type="text" id="p/a(ESKZ!C*D(CG.AWfN"> <field name="TEXT">},</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id=",B$`Uzx#P[v}BGy_p[Eg"> <field name="NUM">1</field> </shadow> <block type="math_number" id="*[DMsW)0ZS#%1A*D]c?]"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="AT2"> <block type="text_length" id="^zKtxAr]YQf^QLwoADj`"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="RIT*gN.,WF],1b{GJv`U"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="comment" id="wMhs5~1y4^FW?46:Xow,"> <field name="COMMENT">Zwangsabbruch, falls Endlosschleife droht:</field> <next> <block type="controls_if" id="P^^V](6=sv@P?bDju4Nu"> <value name="IF0"> <block type="logic_compare" id="{[l^e_@`a+lxA$Pz#UKl"> <field name="OP">EQ</field> <value name="A"> <block type="text_length" id="c+qLQgS;nB%8;r?=pyBc"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id=";9sHf3y0kus!Y%~_;m~b"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="JZo*0WptSP-ql_7f=Id3"> <field name="VAR" id="5^mq-W7yKyl?zo,-JG;J">letzte_Laenge</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_flow_statements" id="m[IT~x.Yo|JzL[#m(1NW"> <field name="FLOW">BREAK</field> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement>
-
Blockly Teil 2/2
<next> <block type="variables_set" id="2vRu@*hiMPm6!4n.O(/3"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> <value name="VALUE"> <block type="text_join" id="6X[kP1P*44IV[4NX,oEH"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text_getSubstring" id="XC(RM8S;y3.lCW=D,tzb" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="`=pe74bYq8SUI}pWR+T@"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <value name="AT1"> <block type="math_number" id="#`@m`yEq(rsP;7EZmo{B"> <field name="NUM">1</field> </block> </value> <value name="AT2"> <block type="text_indexOf" id="Lt_UYE0/,V6x4l`$#JE9"> <field name="END">LAST</field> <value name="VALUE"> <block type="variables_get" id="Wd(-|a-N5iE^5k$W@DZY"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <value name="FIND"> <shadow type="text" id="TD]vqrZwd@LCR9Lesv$="> <field name="TEXT"></field> </shadow> <block type="text" id="a0{H#7G[|Cy*DywB%[u{"> <field name="TEXT">}, {"ts":</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="ru:rxa52lS?NU3/PJIUx"> <field name="TEXT">]</field> </block> </value> </block> </value> <next> <block type="variables_set" id="yX=V1k+:9KYVvYkRj[O`"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> <value name="VALUE"> <block type="text_join" id="/?Jr?[NlqXjs6wNTk?,A"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text_getSubstring" id="fyRph*6MO@z7renZFWOO" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="7(qo{7LiRJlI4az%9V3f"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <value name="AT1"> <block type="math_number" id="j%3McXs02u%CX_VW})A^"> <field name="NUM">1</field> </block> </value> <value name="AT2"> <block type="text_indexOf" id="T;Ns]C$y76/;Ui1ue_)i"> <field name="END">LAST</field> <value name="VALUE"> <block type="variables_get" id="0ko@}Gx=@0mq48%Bht6+"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <value name="FIND"> <shadow type="text" id="V]29fmoUoyFHw;T.xZ4T"> <field name="TEXT"></field> </shadow> <block type="text" id="XFy7yi!^rf^_|%qh3MRl"> <field name="TEXT">}, {"ts":</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="#4]*cHk$vs@(Kdpcx6pc"> <field name="TEXT">]</field> </block> </value> </block> </value> <next> <block type="controls_if" id="86la_%Fcc#WF^7H,s@,]"> <value name="IF0"> <block type="variables_get" id="+WvBy#m2UUC2O;yOdV.q"> <field name="VAR" id="XySa}1L62YN64ae4XfHM">nur_Daten_fuer_heute</field> </block> </value> <statement name="DO0"> <block type="comment" id="o]ij6m)-!!DICl`LJ=l|"> <field name="COMMENT">Datensatz für Morgen ist leer --> Nullwerte generieren:</field> <next> <block type="variables_set" id="gD3`IQQl1$Y4-0qyN-)d"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> <value name="VALUE"> <block type="variables_get" id="qh5+/5hIqtn9M7J9#q5g"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <next> <block type="variables_set" id="j?l_qPu/xvSYMfp(8V~g"> <field name="VAR" id="ChO!f~2yOOGR^a{VPiM-">Quelldaten2_fuer_Ladezeiten</field> <value name="VALUE"> <block type="variables_get" id="0f/d4@lP=-vaIATx@|FV"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <next> <block type="variables_set" id="!pc/o4@Im(;$?a$;3||*"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> <value name="VALUE"> <block type="text_join" id="h7Bh(+.}Gu4_nYTi/SbQ"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text_getSubstring" id=".YI|FT{G?*|I$QFoNqp," inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="cawG5S.},`rE,(1UQ}$Y"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="AT1"> <block type="math_number" id="iTfca=:8b70)/L)25aRj"> <field name="NUM">1</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id="L)#_x?nsnz#;S4;k%V3,"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="bw|+8jJOK_K4)_I3EYv{"> <field name="NUM">1</field> </shadow> <block type="text_length" id="IVS4[dGGePINgBmd]Ed."> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="!v9:dAc1d=?iJM^u:I6v"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="=V!(gGZr[A409F!*%7#}"> <field name="NUM">1</field> </shadow> <block type="math_number" id="uH){9uI_I37Wp+*j:4/["> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="#8U-kx~caWd4:uC,1[YO"> <field name="TEXT">, {"ts": </field> </block> </value> </block> </value> <next> <block type="variables_set" id="]WFU]gq`;0vb3Q^Os!A1"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> <value name="VALUE"> <block type="text_join" id="Av*UA~kR4jnkD6?i!a[:"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text_getSubstring" id="Kota[5w]mLWW{B*@EnWT" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="S.6lQ}D8igC={k4g:GM!"> <field name="VAR" id="ChO!f~2yOOGR^a{VPiM-">Quelldaten2_fuer_Ladezeiten</field> </block> </value> <value name="AT1"> <block type="math_number" id="EV/SNyc82gg]@`J!pktF"> <field name="NUM">1</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id="=Qp{oX6iL:6v;`fThLzJ"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="fd^;jmCo]~R`kHB%whJx"> <field name="NUM">1</field> </shadow> <block type="text_length" id="D[(Q~4,r$J_U77KPd,@s"> <value name="VALUE"> <shadow type="text" id="41lWr!V+g--Aj]jX=1=]"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="LJGeaOl)OAvhXR;nY**1"> <field name="VAR" id="ChO!f~2yOOGR^a{VPiM-">Quelldaten2_fuer_Ladezeiten</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="nMYn:r$P)IVlCuPtNBO7"> <field name="NUM">1</field> </shadow> <block type="math_number" id="I4gG!22a16Jhd.{_|%o3"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="oX_Y3jUp.;7I8Gww~W7w"> <field name="TEXT">, {"ts": </field> </block> </value> </block> </value> <next> <block type="controls_whileUntil" id="m]q5RE}CY~[c`0!GyVk."> <field name="MODE">WHILE</field> <value name="BOOL"> <block type="logic_compare" id="V!/KT=]nI)2|H/nDCaJI"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="wuH_wEn$*eJk}tgU(qT1"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="0w#?0kkPV#7XY;E]~An7"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="FIND"> <shadow type="text" id="j!?v?UM+G?,Q;nh(NaP{"> <field name="TEXT">abc</field> </shadow> <block type="text" id="U;(^~RH;f*ZvVMcO@03b"> <field name="TEXT">ts</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="x-,7w6}h0|=XfANDdy0v"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO"> <block type="variables_set" id="{bN@W+8PuniN?h,(md$-"> <field name="VAR" id="5^mq-W7yKyl?zo,-JG;J">letzte_Laenge</field> <value name="VALUE"> <block type="text_length" id=")Rl`9ldo0*DlCa(){1]!"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="|p,1MI7g5P!?dzN:^/23"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> <next> <block type="variables_set" id="0`FJHIxQwGV($CHbTJx0"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> <value name="VALUE"> <block type="text_join" id="W@C5X4?fyrCf.)@{+PR;"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="uR)UUwMGn2/1`dovW2l?"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <value name="ADD1"> <block type="math_arithmetic" id=")FEnl.}OG-}9iLR_aW(y"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="B|i9F*R?TEp(_S-6%s54"> <field name="NUM">1</field> </shadow> <block type="get_attr" id="@TIM:@|ZX27e.MvaEK6N"> <value name="PATH"> <shadow type="text" id="9t|Jvs{@QmB`6$O~v*dS"> <field name="TEXT">0.ts</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="EkPaPf2+*}?o?/2EecH."> <value name="VALUE"> <block type="variables_get" id="n/k?gPLBH/.%{uY}*6|4"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="xF`8s.CLdbuCv(kV^e.7"> <field name="NUM">86400000</field> </shadow> </value> </block> </value> <value name="ADD2"> <block type="text" id="h*jt[3.kg;Y1~(hZvbkM"> <field name="TEXT">, "val": 0.30}, {"ts": </field> </block> </value> </block> </value> <next> <block type="variables_set" id="207TT3nA;w:X.IibC=s("> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> <value name="VALUE"> <block type="text_join" id=".!]oJF@#(}G-jR%igF#J"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="OnXHrd55=tjIpxy)#e0#"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <value name="ADD1"> <block type="math_arithmetic" id="HAL$KG(n?WAMPEJpr{j,"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="L4zc`5$X#j4lB)O$P@k^"> <field name="NUM">1</field> </shadow> <block type="get_attr" id="J8LMv+-9@^zzT?@_-5-p"> <value name="PATH"> <shadow type="text" id="9wcojx@T?wMlHu_lEo2}"> <field name="TEXT">0.ts</field> </shadow> </value> <value name="OBJECT"> <block type="convert_json2object" id="M]-M+Rrad5!)+SE/xTnW"> <value name="VALUE"> <block type="variables_get" id="MnIuOOzN!cjfMAH*b8S~"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="tGhLNI1ciV4KtJQ~4f?W"> <field name="NUM">86400000</field> </shadow> </value> </block> </value> <value name="ADD2"> <block type="text" id="Kl/]j74_29@d5p:BWOp|"> <field name="TEXT">, "val": 0}, {"ts": </field> </block> </value> </block> </value> <next> <block type="controls_if" id="c$~x,w^N.S1+EAuFp/=K"> <value name="IF0"> <block type="logic_compare" id="J!/b-m^KtUP5}jsQ`oA2"> <field name="OP">LT</field> <value name="A"> <block type="text_indexOf" id=",Gx-rl/qm_N0pAj7ysBj"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="w.e/b(:IuZeB;(?u-#p+"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="FIND"> <shadow type="text" id="TD]vqrZwd@LCR9Lesv$="> <field name="TEXT"></field> </shadow> <block type="text" id="NWElsWJ:Nsq*=bl7jqP)"> <field name="TEXT">},</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="6!_I7XWs`!?UNEe[NVkZ"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_flow_statements" id="RD,/rn)Of(opd6|rK4n)"> <field name="FLOW">BREAK</field> </block> </statement> <next> <block type="variables_set" id="fvBRgtgdFJe$16ZhRer5"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> <value name="VALUE"> <block type="text_join" id="8/_Hdl}{F-[r@OD#._/g"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="n18P8v}YqCEcI(8)@9rM"> <field name="TEXT">[</field> </block> </value> <value name="ADD1"> <block type="text_getSubstring" id="XtqP-][+WAXK2$Ac;E4e" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="{9_T4tYGA52Y4WTK/~!9"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="AT1"> <block type="math_arithmetic" id="7VgqFOEyhiqGovvsziWy" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="/=mesw]/(ZD)iAu5hnlv"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="Lw+EtjMzc^ckVP0-]i]p"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="r3xv;Cl@p-Z^J2h3-n#V"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> <value name="FIND"> <shadow type="text" id="TD]vqrZwd@LCR9Lesv$="> <field name="TEXT"></field> </shadow> <block type="text" id="~Ph0,-WgbD`2ALD!*DE2"> <field name="TEXT">},</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id=",B$`Uzx#P[v}BGy_p[Eg"> <field name="NUM">1</field> </shadow> <block type="math_number" id="YZjBfdG;@DNoo#e%Oc:6"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="AT2"> <block type="text_length" id="mU^M?s]gOq#^e]BnV8%M"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="~bi};3g31uIk;%[5=d[r"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="comment" id="ntQ__$]pU)1r=Ffz$0=t"> <field name="COMMENT">Zwangsabbruch, falls Endlosschleife droht:</field> <next> <block type="controls_if" id="FVd2}C$+Az/~..U[aUrr"> <value name="IF0"> <block type="logic_compare" id="wN@%zfTZg/aDfy:+s49@"> <field name="OP">EQ</field> <value name="A"> <block type="text_length" id="h@+8`6*hN=.RgEtvPJg7"> <value name="VALUE"> <shadow type="text" id="C!?@juiq+p/.iDcD}F2h"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id=")YEl/$12H_5Gm!{yuK`R"> <field name="VAR" id="3Sh8geT9s$T{B+^tMyJR">Quelldaten</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="Y(bID]xUwid~%rGH,`Gr"> <field name="VAR" id="5^mq-W7yKyl?zo,-JG;J">letzte_Laenge</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_flow_statements" id="b88S-]wIUMFhfk#8sGrw"> <field name="FLOW">BREAK</field> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="Yp#yVom0a;z{hx_~P{gq"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> <value name="VALUE"> <block type="text_join" id="Su*RA7Sgi){q3Y2)g(?t"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text_getSubstring" id="UKr*@(1qvNL)zK{^ju!V" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="ng?ZsWZJ7@+G!o=*B3hf"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <value name="AT1"> <block type="math_number" id="[X3a8cp~*bn1pRuy+xKN"> <field name="NUM">1</field> </block> </value> <value name="AT2"> <block type="text_indexOf" id="fPKb{5nI%dqV?NvW-da?"> <field name="END">LAST</field> <value name="VALUE"> <block type="variables_get" id="KnphqO}_@K}skd@u(;7-"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <value name="FIND"> <shadow type="text" id="TD]vqrZwd@LCR9Lesv$="> <field name="TEXT"></field> </shadow> <block type="text" id="($$nVWn;2,aG@.lH-dRs"> <field name="TEXT">}, {"ts":</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="tsiA~JF-2QO_]VHQ.nIT"> <field name="TEXT">]</field> </block> </value> </block> </value> <next> <block type="variables_set" id="[Z_YrWhtl*=.3-PxzSxp"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> <value name="VALUE"> <block type="text_join" id="*f}/`v;|cjz47$~Exr0t"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text_getSubstring" id="rq}xeyi:IO{0(LZ}kJ)b" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="8|G@jZnm9/KkX$,{9^Wl"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <value name="AT1"> <block type="math_number" id="k5-obcqD3lTG9*(E}Z]B"> <field name="NUM">1</field> </block> </value> <value name="AT2"> <block type="text_indexOf" id="KVLda*n=#:}:8k0;AQ~z"> <field name="END">LAST</field> <value name="VALUE"> <block type="variables_get" id="|uakI)M`E7_px5Qyty#Q"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <value name="FIND"> <shadow type="text" id="GF0nFs?@aBSgHiZk=k[J"> <field name="TEXT"></field> </shadow> <block type="text" id="%8;0@ZR#w|n1y2=4,SCg"> <field name="TEXT">}, {"ts":</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="7Dcz,=B~tqh}GM(3gqB;"> <field name="TEXT">]</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id="N.|qwvjYxIdZW.vU{kAL" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="aHAm@AgjhT(Vyz4Ott0P"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="~RI.H3-sc!/,J/#s8[=g"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <next> <block type="debug" id="q*-le}[O2Ple{)Jc3WU]"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="}9yONGZRaoZLEA)qQVW^"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="MwJS;1k-SK3B`i;.BSA)"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> <next> <block type="update" id="*lcpA/r+),kB;k;%Gq=4"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromversorgung.Tibber-Preise</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="}2yJ*lD#!^fLXv[VQ*tB"> <field name="VAR" id="D,$rcP=9}`_*/G|X6y{f">JSON_fuer_ECharts</field> </block> </value> <next> <block type="update" id=":@(lyw?~_eQdsKF7[HK1"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Stromversorgung.Tibber-Ladezeiten_aktiv</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Jz}4m0qy;agJ@,_f$tI6"> <field name="VAR" id="914l0(IgAR%F#+i[ywL!">JSON_fuer_Ladezeiten</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
@allelectrified Leider läut Dein Script bei mir nicht. Mit welchen Einstellungen hast Du die Variablen mit 0_userdata.0.xxx angelegt? Hast Du eine JSON Datei zum einladen dafür?
-
@lui1307 Leider nicht so auf die schnelle. Hatte die Variablen manuell angelegt während ich die Tibber-Scripte entwickelt hatte. Hier auf die schnelle mal der Variablenbaum den ich für alle Tibberscripte nehme (in dem Konvertierungsscript brauchst Du glaube ich nur 3 der Variablen):
-
Hallo,
ich habe auch mal fragen zu diesem Adapter.
Ich habe einen aktivierten Vertrag der zum 1.3.2024 startet. Ich habe den Token eingegeben den ich von Tibber habe. Soweit so gut.
Nun habe ich aber mal die Preise aus der Tibber App (über Analyse) mit der, die mir der Adapter über die API von Tibber holt verglichen und muss feststellen, das das völlig andere Preise sind. Es ist jedoch gesichert, da es definitiv die richtige Addresse ist, da meine Kontaktdaten usw. alles korrekt ist !
Ist das bei euch auch so, oder ist das ein Problem das nur ich habe ?
Grüße
-
Hat wer das mit dem Batterieladen probiert? Setzt er quasi automatisch sobald der Preis x Prozent günstiger ist als am Tag der höchste die Variable auf ein? Oder muss ich noch den Preis ausrechnen.
-
@maduuto Ist schwierig, dazu automatisch den Zeitpunkt zu finden.
Ich mache das im Moment eher halbautomatisch: Schaue mir den Tagesverlauf an und setze dann, wenn es Unterschiede von mehr als 30% gibt via timeswitch die Be- und Entladung frei.
Aber ehrlich gesagt sind mir die Unterschiede in letzter Zeit viel zu gering für sowas.
-
@oxident ja, das rechnet sich auch hinten und vorne nicht sowas. Dafür sind die Kosten für verschleiss sowie Verluste beim Ein und Ausspeichern viel zu teuer. Da legt man drauf wenn man den Akku zum puffern benutzt. Merkt es aber nicht, weil man die Rechnung ja erst viel später bezahlen muss.
-
@oxident Aber dafür gibt es doch die Automatisierung "Smart Batterie Puffer", die bei mir aber irgendwie nicht funktioniert hat. Ansonsten ja sollte es immer angehen wenn der Strom 30% günstiger ist als in den teuren Zeiten denke das ist ein guter Wert um Verluste und Verschleiß auszugleichen. Und 30% Unterschied find ich ist nicht immer.
Leider hat das Smart Batterie Puffer nicht geschaltet, warum auch immer
-
@maduuto nein, damit gleichst du nicht Verluste und Verschleiß aus. Darüber hinaus, sollte ja nicht nur das ausgeglichen werden, sondern auch noch ein Gewinn erwirtschaftet werden. Dies ist auf diese Art nicht möglich, es sei denn man spekuliert, das die Akkus in Zukunft sehr deutlich im Preis fallen und setzt das dann als Ziel an und nicht das, was man eigentlich bezahlt hat.
-
@sui Warum denkst du das es sich nicht lohnt? Hat man mehr als 30% Verlust + Verschleiß? ICh habe als Parameter mit eingebaut, wenn am Tag die Erwartete PV Kapazität 10kwh ist dann macht er erst garnicht eine Extraladung am Tag
-
@oxident sagte in TibberLink Adapter:
Ist schwierig, dazu automatisch den Zeitpunkt zu finden
warum
musst nur die preise sortieren
-
@maduuto ja, man hat mehr als 30% Verschleiß und Verlust. Und selbst wenn es nur 30% wären, dann macht es ja trotzdem erst richtig sinn, wenn es denn 40% wären, weil bei 30% nebenkosten hat man noch keinen Gewinn. Und 30% Preisunterschied am Tag gibt es derzeit auch nicht gerade oft. Dann müßte der Strompreis ja um ca. 10 cent schwanken. Sehr selten !
-
@arteck Jein, da hast Du schon Recht. Bei mir kommt noch erschwerend hinzu, dass ich zwei Akkus habe. Bei dem Victron-System, keine Frage, alles problemlos machbar.
Das Zweitsystem ist jedoch ein Senec-Akku. Den kann ich zwar zum Laden zwingen (geht nur volle Pulle), aber nicht das Entladen sperren.
Daher bin ich der blöden Zwickmühle, dass bei mir zwangsläufig nach dem Laden die Entladephase beginnt. Ich will ja auch nicht, dass der eine Akku den anderen lädt
Daher geht es bei mir nur, wenn der Unterschied zwischen zwei aufeinanderfolgenden Stunden min. 30% beträgt. Passiert eigentlich so gut wie nie.
@maduuto @Sui Exakt. Ab 30% wird's erst rentabel. Daher würde ich persönlich auch eher sagen, dass sich der Aufwand erst darüber hinaus (40%?) überhaupt lohnt. Leider.
-
Hallo.
Eine Frage in die Runde. Wir sind seit 2.12. bei Tibber. In der App werden mir die Kosten und der Verbrauch für den aktuellen Monat angezeigt. Ich kann also sehen, wieviel € wir schon verbraten haben. Über den Tibberlink Adapter kann ich so einen Datenpunkt nicht finden.
Vor ein paar Wochen habe ich angefangen mit Home Assistant rumzuspielen. Dort habe ich dann auch den Tibber Adapter eingerichtet und siehe da, dort wird mir das angezeigt. Die Infos dazu sind im Feed also enthalten.
Fehlt das im Adapter oder habe ich eine Einstellung übersehen?
-
Ich hab die 2.1.1 - und dort wird mir der Ordner "Consumption" angezeigt.
In diesem stehen json für Hourly, Daily, Weekly und Montly.
Diese enthalten Verbrauch, Preis, Kosten etc.In den Einstellungen musst du den Harken bei "Historische Verbrauchsdaten abrufen" setzen.
-
@maas-meister Die hab ich auch, nur sind das alles Historische Daten, also Letztes Jahr, letzter Monat usw. Ich suche die Info für den aktuellen Monat. Das müste ein Value sein, so ist es zumindest im Home Assistant.
-
@palm_maniac aha