NEWS
Wasserzähler - Selfmade
-
@Atifan Hi Atifan, hast Du eine HomeMatic hinter dem IOBroker, wenn ja kann ich Dir ein Script schicken wie Du auf:
Wasserzähler_5_Minuten
Wasserzähler_heute
Wasserzähler_gestern
Wasserzähler_Woche
Wasserzähler_letzte_Woche
Wasserzähler_Monat
Wasserzähler_letztes_Monat
Wasserzähler_Jahr
Wasserzähler_letztes_Jahrkommst. Geht natürlich auch nach Anpassung mit Datenpunkte im IOBrocker.
-
Hi, nein hab ich nicht.
Aber sowas wäre evtl. nice.
Kannst es aber mal schicken, wenn ich Lust und Zeit habe baue ich mir da auf jeden Fall was damit ich sowas schauen kann.
Wollte das gleiche auch noch für den Stromverbrauch machen. Das wäre ja das gleiche Prozedere -
@Atifan Hi Atifan, ist ein Blocky Script. Brauchst nur die Datenpunkte von Homematic Rega auf javascript.0. ändern.
Nachtrag: Ich bin kein Meister im Programmieren wie die meisten hier. Da sind auch noch Korrekturen drinnen falls eine Stelle einmal N zeigt, braucht man aber nicht mehr, da das @jomjol bereits mit PreValue abfängt. Ist schon alt das Script, funktioniert aber immer noch.<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="" id="zfu,1UqZOyai!fg:_U4p">N_im_Text</variable> <variable type="undefined" id="timeout4">timeout4</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="undefined" id="timeout3">timeout3</variable> <variable type="" id="jD*[#Zlic1jmyurL%.%b">Wasser</variable> <variable type="" id="fb%^b%(.P(De7B%I+^fp">Wasserverbrauch_alt_speichern</variable> <variable type="" id="~k/J85:%xN;|@?V$RZcW">Wasser2</variable> <variable type="" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</variable> </variables> <block type="comment" id="nZLIgu,pmh4[2*$0MI%?" x="-1713" y="-1387"> <field name="COMMENT">Prüfen ob eine Ziffer nicht erkannt wurde</field> <next> <block type="on_ext" id="4Psx1wuqrX65nv_lkDB}"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="3Q)hsz!uvKk?{unC*,0E"> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="l78P,L,|)=TmuSTJXA9E"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> <value name="VALUE"> <block type="logic_boolean" id="]]zQ?kG1yVgGd;H$$;Ys"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_settimeout" id="VbU2`#`Hd5Kc]ZBmhG1M"> <field name="NAME">timeout3</field> <field name="DELAY">0</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="uWWkh~VkcQQIsuD*NR9V"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> <value name="VALUE"> <block type="get_value" id="-0mM3|A(|$)E;b3,1X]J"> <field name="ATTR">val</field> <field name="OID">parser.0.Wasserzähler</field> </block> </value> <next> <block type="controls_if" id="I=GaZ!Nrc@[K8:N9Sm,D"> <value name="IF0"> <block type="logic_compare" id="EwFaq9y|5782[BWJaH^#"> <field name="OP">EQ</field> <value name="A"> <block type="text_charAt" id="3*@(POlgE#wjssZKLjSA"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="b[Zz?/jAL}J_]+/Uk0:)"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="MIeM1:YfeF}qMi+!nSt%"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="y)[:[1m0P;xT{PjKHF!*"> <field name="TEXT">N</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="jh(drW1E|[7D5vwUdv*`"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> <value name="VALUE"> <block type="logic_boolean" id="2djgkz}mxDM-M93`:~`f"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="TWTI{QK2eX8#VAW8ij`@"> <value name="IF0"> <block type="logic_compare" id="f3iSYOA2uW6}sbUEQJ1d"> <field name="OP">EQ</field> <value name="A"> <block type="text_charAt" id="ztr]f-V:Ut,,5JHY.0$E"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="F;7k=Y3iSLnVVe|5O!57"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="G,gb1p3rND4GR+y{|_qR"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="f+3Cd1pz8w^pM)8T/|*J"> <field name="TEXT">N</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id=";Kx$z$Dj8aUrdEs4|=%`"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> <value name="VALUE"> <block type="logic_boolean" id="bH%Vbyv0W,l)*KftU[%S"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="K$=Kv6vy!F0rsf#ma%FW"> <value name="IF0"> <block type="logic_compare" id="3}.UU0![y_B]?k2Gp(cu"> <field name="OP">EQ</field> <value name="A"> <block type="text_charAt" id=";[BKka|7Z6RW5VdATLu2"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id=".lA4b]Bta9]}WM5z;]uV"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id=")Qrq%1u+]FBFY:/s^C*y"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="+ZICLVFRp3UrO}hrMGkS"> <field name="TEXT">N</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="XMhVUQcbzJ7h5[{[J+Rk"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> <value name="VALUE"> <block type="logic_boolean" id="xU(vKJpyP=Iw7m5r6=M{"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="HE}JD5@jOH1kiNLmSJ:;"> <value name="IF0"> <block type="logic_compare" id="pf6,;IJcxi_(I[ImZ;%k"> <field name="OP">EQ</field> <value name="A"> <block type="text_charAt" id="mI%l]lGK@}z#V_u2{Ps/"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id=")ljL(L]lnK6tX1q[WS!u"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="RZSIu#kLp7W3#Z2se%J`"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="+672=khzSucvunzzOkA("> <field name="TEXT">N</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="HIb1QBJi|.9iRy85kDi{"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> <value name="VALUE"> <block type="logic_boolean" id="._E0`:B/h4S4TM`o;;JD"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="yO;83xmtqcovzb-XE{Yq"> <value name="IF0"> <block type="logic_compare" id="lD53c(tC83lf9@Mh,@*t"> <field name="OP">EQ</field> <value name="A"> <block type="text_charAt" id="74U6Na,4^*HvdSB0_7_7"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="p[;^iJ2M)uYVqLu.!VeS"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="~SZJjV@-w9Gt~wir5Y;u"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="Vm~;!mTb0a+}IX(I.NkH"> <field name="TEXT">N</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="3GLUD;3nkL#Rp}Hq,rPg"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> <value name="VALUE"> <block type="logic_boolean" id="HS6:ny3]LBhELSe1$nUe"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="sX==%Xr,vf/nfU@mF#iZ" x="-1712" y="-688"> <field name="COMMENT">Sichern der alten Werte des Wasserzählers</field> <next> <block type="on_ext" id="@zG4;]iYO[gk6PE9A8Bd"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="bo2gx?dIMh?:HL#A@*J["> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="MwjIy*6UD(bdeg8QIf8K"> <field name="NAME">timeout4</field> <field name="DELAY">250</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="Vu5M,h^D6M]9)dVerK4%"> <value name="IF0"> <block type="logic_negate" id="/4/x_C_VaOWU,JmoRiik"> <value name="BOOL"> <block type="variables_get" id="E,yGnK7~7A]2_/dWvY*u"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="wR=JtsBFCJou1i6LdCw~"> <field name="VAR" id="fb%^b%(.P(De7B%I+^fp" variabletype="">Wasserverbrauch_alt_speichern</field> <value name="VALUE"> <block type="get_value" id="pL9_YEK1IWWA6.!#W)bd"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_alt</field> </block> </value> <next> <block type="control" id="6DzKEv?-~d]3U=;Btcop"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_alt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="o5`@Rv8Ul:#hrNuvl,2|"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_aktuell</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="{)~[qYJwM%HmTqZC[Dme" x="-1712" y="-387"> <field name="COMMENT">Werte von Url Ausgabe aufbereiten und als Zahl speichern</field> <next> <block type="on_ext" id="O@t;)N+2$SFNG$?Gf{h2"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9K|x1o#+%6GQb*;p%3O#"> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="W]bzQri^_8bvqpKQOrEV"> <field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id=":rm8C$hO?yH8mM%Kx6bx"> <value name="IF0"> <block type="logic_negate" id="=N[2[gl[^Ebh85PI12?Z"> <value name="BOOL"> <block type="variables_get" id="dCBwWLl.K]_};D%I0@fz"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="ixFd@J8)L1oE}OCVbtYq"> <field name="VAR" id="~k/J85:%xN;|@?V$RZcW" variabletype="">Wasser2</field> <value name="VALUE"> <block type="text_join" id="/fqyB}E;PHmjBsJJ`0Fh"> <mutation items="10"></mutation> <value name="ADD0"> <block type="text_charAt" id="c^Wp3sQYKpQm*,auXf|d"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="ZS^Aqg]EMO47s.%5Cci="> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="S/t?G1M,9B!i}FB8%H^U"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_charAt" id="n8Z8R06]mBKtjqxyd/dC"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="[f+Iv#3h5{Q#ZJU-i2Da"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="Nl5$?TbSG3ENylE6b+K,"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="ADD2"> <block type="text_charAt" id="$)Z@wOl%r9=!ZKX.e3=t"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="5%b=Jfu)q8+xH%o!iyKv"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="C^4v;3LRpf[9$`Qmgf$R"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text_charAt" id=")kR!i)u|Q@c`InlI,CR7"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="2A8HOWwO7*xwq#o;?V%~"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="n]Lr=8Nab,nm{(j#I_)R"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text_charAt" id="^9^~rSmH!/^lg1/NA0-C"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="Af%qM3b3ywEBoWGE*P8V"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="F4t@9e.{|~aH[lP_n`W5"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="ADD5"> <block type="text" id="jG9:2)cUJILX/H-Lwy~t"> <field name="TEXT">.</field> </block> </value> <value name="ADD6"> <block type="text_charAt" id="kJ_eC,oa_KKeEhwykd:J"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="-y({kI6sfR,nQAjVkA]A"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="hr%jA*b+T]5*Ca|K9m+4"> <field name="NUM">7</field> </block> </value> </block> </value> <value name="ADD7"> <block type="text_charAt" id="5.{HXUkih?pbuhQ3mL)E"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="H=fwgeU*yM2BO1So/@rJ"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="Up65|^q^LW$4[4{Q2Kvh"> <field name="NUM">8</field> </block> </value> </block> </value> <value name="ADD8"> <block type="text_charAt" id="ds.0fi_$#ZlQ+?RhAo,4"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="O|qHH_xUhqy?KE+,cKX2"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="bLvs%(U/*rs$Ld9Al1[+"> <field name="NUM">9</field> </block> </value> </block> </value> <value name="ADD9"> <block type="text_charAt" id="6OR:#lbqI-PRhCHNec9^"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id=":H4e}P$k[XW1ul.ATEA5"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="X4xw.sN^lzaqf}IPF.jh"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="K2vn9_SQgwL|)u!!gl1|"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_aktuell</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="0`|;Y~sT)dBbK`1D3S)V"> <value name="VALUE"> <block type="variables_get" id="vAxwr8UK-qi#!psdG%Bc"> <field name="VAR" id="~k/J85:%xN;|@?V$RZcW" variabletype="">Wasser2</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> <block type="on_ext" id="g0!@tN:hJ5,@IC03]C(R" x="-1688" y="238"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="i*|8`Z*]C1Z-aKXfx4qF"> <field name="oid">javascript.0.Wasserverbrauch.Wasserverbrauch_aktuell</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="9)silgejCBBBlJ^K5*h."> <field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="GG1Odf{~p%XYL,K[o1Q8"> <value name="IF0"> <block type="logic_negate" id=":fsE:_dtR_p:Udf+gj.h"> <value name="BOOL"> <block type="variables_get" id="b(}df.E_Ka%ElAuzjlqi"> <field name="VAR" id="zfu,1UqZOyai!fg:_U4p" variabletype="">N_im_Text</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="$_^*U)oNg;J39mNWX7iv"> <value name="IF0"> <block type="logic_compare" id="R+]z+~$9PRX.!`-n2j$_"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="1Q.u,.7hmJgpxgTS!yJJ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_aktuell</field> </block> </value> <value name="B"> <block type="get_value" id="*^w0O6:fgj}}S|y_?89S"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_alt</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="[)h5!Wt?#u]$;DJ*fSen"> <value name="IF0"> <block type="logic_compare" id="}I^P3N/ka`dJ[#)ravN7"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="yiT6k|}2%QxC5Ip2;7;^"> <field name="VAR" id="fb%^b%(.P(De7B%I+^fp" variabletype="">Wasserverbrauch_alt_speichern</field> </block> </value> <value name="B"> <block type="get_value" id="UX+:bzMd8g/f6b{dN+lx"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_aktuell</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="z)/Gd*s9,-W6[D752=D?"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> <value name="VALUE"> <block type="math_arithmetic" id="xt-H^j-:43Irbg7Fhml("> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="X_rWlPD~o/J^KhVZi%6o"> <field name="NUM">1</field> </shadow> <block type="get_value" id="A4Sx?OtCp2T?h#I(031U"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_aktuell</field> </block> </value> <value name="B"> <shadow type="math_number" id="+qND:7;^kTj.azwuZHHi"> <field name="NUM">1</field> </shadow> <block type="get_value" id="@R6Vro4Waf_mK|.+!]^0"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_alt</field> </block> </value> </block> </value> <next> <block type="controls_if" id="8K}#}[Fk:%g~F#3)+NAF"> <value name="IF0"> <block type="logic_operation" id="lR$k8X3;ySVntotf-vFz"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="q0zW=|U!.1,jkAy[X!b$"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Hnk,pbHq`B?Nb}~w$=$H"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <block type="math_number" id="7E.:+JU.a]LF)/p!,#;*"> <field name="NUM">0.15</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="6Ig?RU}s(dFcicEuhcm0"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="jcdb+L_Z#8kmj7e(cq:1"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <block type="math_number" id="9=%(A.)%}-%Ym9CUISV^"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="CDT0?0zH4r9GW/H*Y2$f"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch.Wasserverbrauch_gerechnet</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="*aA/fh;#]Di_eXq6nL,^"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="XGWua76GS6aHpO3imk]l"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="|~8@Y)]z.lKE{$Sr]Phs"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="@6AZ4Y}v+0qS8p%_qu{H"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="control" id="0(_/h8O2,M[gEb`Ic4=2"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30965</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="A_V2Dl3Tco*!@[~Lr1n~"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="XY5vn6~5Da?Zt0namcfQ"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Il/T*4`06v:{m@*OFmkc"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30965</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="lKu:^o1-H]d/0,7P%Ipo"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="XB}ackBd~?1d)cTC#bwV"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="RP9x3%P{}.7k42Qpi5y;"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="5fng!*j2(M,$$,YwlLHx"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30969</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="-3@,nGkZ]@$FU1Ry}%PA"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="(E?id-LI#NfEL|Jt:.vZ"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="0E2;EjD-PBt:GCDwPU~H"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30969</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="G9U[WP2t4_f8T+_0LGXB"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="34;qZzQ3Z+JnD{P-NYW:"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="G:AdLWj}|(?]]ENs(!55"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="oBT%X]5xBNnY,5AICE3X"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30966</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id=",P%Ylnd^*u1LkcG9X]:W"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="|(*+rA~Ej?$2*?ityV)U"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="]ziDJBvg89Wq:.R;J:!,"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30966</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="e.p_|Smt|,NX(RunG)gt"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="P5_c8#OAPy=l^ASZ;$es"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="YDm1,jv1{.k2e(?8V)(|"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="R5$.Na4^BAFjW2ARqTxN"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30967</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="e{,b!INUIeaJ}fkB8}m@"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="!-w04:ct]D5r!DJQmLSW"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="HgghGzkzow#w{s|+|+a:"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30967</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="nllQn,{7d8IO(@Lg3M:B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="MJ/ZuL+#^.3AQq~epH3J"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="J^_v%Hn7gX*W7f[-+mgU"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="=E[:Y4;({rV9PgxM??W#"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30968</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="pIPk0X$;_7l#cS6]J[a)"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="`:+j8dW)6S#f{T%Ai9u5"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="vuDO5{C4d)Z4!.?z)/v."> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30968</field> </block> </value> <value name="B"> <shadow type="math_number" id="P!TIMt7*.bBC#4%Idw8j"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="`,M`KPfi72=ir~XGyo;+"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="^v@w@K@=*~ET7Z1v-oO@"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="@~]Yp/KY$~_P8PTXoQKy"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> <block type="comment" id="$f;2YJblP5aT5TAGfFMx" x="-712" y="487"> <field name="COMMENT">Maximaler Durchfluss pro Sekunde x 30 Sekunden Abtastrate, 120 Liter Ziffernwechsel</field> </block> <block type="comment" id="qSxx=;Q,jlnWfNVxu*TC" x="-1688" y="1062"> <field name="COMMENT">reset heute</field> <next> <block type="schedule" id="v;%?AXWh:txx%4R+2:U,"> <field name="SCHEDULE">0 0 * * *</field> <statement name="STATEMENT"> <block type="control" id="+%wEpsL(Ww[z8Tfc-X$0"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.31100</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="2D{+Qa%pnz-R43!M3Fr0"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30965</field> </block> </value> <next> <block type="control" id="o03K_LgrizESb@J0r`gL"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30965</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="+|Dv5/%]/%.QIWBB+**C"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="ox+@jzn`KXVwX.fOTB$," x="-538" y="1063"> <field name="COMMENT">Wasserverbrauch letzte 5 min zurücksetzen</field> <next> <block type="on_ext" id="j=c,w9.$Xq;DsB5^}pBB"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}z+=RenMSy8(B@XhK@0K"> <field name="oid">hm-rega.0.30969</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="%|yEAWaJ*FP|KJ!T/+Y$"> <value name="IF0"> <block type="logic_compare" id="_EAAa*G$MT%4=Rg?[~bP"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="tZQSY0`YcA7JL[M$Ws@g"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30969</field> </block> </value> <value name="B"> <block type="math_number" id="Pd*)$#q#9Ay-w#:cv1+7"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="lU:dL+CfL4WMPIg8M38w"> <mutation delay_input="true"></mutation> <field name="OID">hm-rega.0.30969</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="sH;+ugos5JXLrj_4BfDg"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="f}lW@jf:=d$f0yptTr$b" x="-1687" y="1288"> <field name="COMMENT">reset Woche</field> <next> <block type="schedule" id="CS=RSPfa:iN5AMzgx~+$"> <field name="SCHEDULE">0 0 * * 1</field> <statement name="STATEMENT"> <block type="control" id="t0cN(g{+b8)OJ-/00/~|"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.31101</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="):/cfCdq~Md|vN,`/o0|"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30966</field> </block> </value> <next> <block type="control" id=".l7{U_lCbkh?eh[J76.L"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30966</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="NQ{Xt.0IXvoF}I^AtomT"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="L0xCte;w,mCtr5``[I6d" x="-537" y="1338"> <field name="COMMENT">reset Monatserster um 0:00</field> <next> <block type="schedule" id="ZJuIT}CXu@.%G_,asO#;"> <field name="SCHEDULE">0 0 1 * *</field> <statement name="STATEMENT"> <block type="control" id="e4CSH~@KH=*]lpuxtu=H"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.31102</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="vd_9A0Lx!_;e=Z^9V))G"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30967</field> </block> </value> <next> <block type="control" id="Q+iLqKVdxopT4]nO6QAy"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30967</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="WcF0pJahHrFD!v-d+zv("> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="oHR,JG*z8K2lOHmdJgUI" x="-1687" y="1488"> <field name="COMMENT">reset Jahr</field> <next> <block type="schedule" id="#CJ#r$^ohJ=^7![RC?r["> <field name="SCHEDULE">0 0 1 1 *</field> <statement name="STATEMENT"> <block type="control" id="Yd{OxT;_R~B9P,Psmp5V"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.31103</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="UYH]mq6ma|o#0tn5lU*9"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.30968</field> </block> </value> <next> <block type="control" id="RjxS0F1e!{}R=?k0u5hu"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.30968</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Gv+;Fb{zqvo$M?Mv;DML"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
Jo super, vielen Dank! Wie gesagt wenn ich Zeit und Lust habe baue ich mir das alles zusammen Bin auch kein Programmierer
-
@Atifan danke für das Feedback - freut mich, wenn es so gut klappt.
Ein kleiner Hinweis noch: die beiden Referenzen oben links sind recht eng beeinander. Rein mathematisch ist es stabiler, wenn du eine Referenz auf die linke Seite verlagerst, quasi in ein möglichst gleichschenkliges Dreieck. Aber solange es so klappt ist alles gut.
Beste Grüße,
jomjol -
@Atifan Hi Atifan, du kannst auch das "w" am linken Bildrand und das 2015 am rechten Bildrand als Referenz nehmen
-
Hi, ja Danke, bei Gelegenheit ändere ich es evtl. aber im Moment sehe ich eigentlich keinen Grund, da alles ja funktioniert
-
Hier mal noch ein Bild von der Installation am Wasserzähler, für alle die sich sowas neu Installieren wollen.
Habe die ESP32 CAM einfach mit Panzerband am 3D-Halter fixiert
Sieht nicht schön aus, sieht aber auch keiner
Der Halter wird mit 1x Schraube an der Wand fixiert, mit der Linse mittig über der Wasseruhr, ca. 10cm Entfernung.
Der Sicherungskasten mit einem 5V Netzteil befindet sich ca. in 1m Entfernung.
Habe einfach über 2 Drähte die 5V zur ESP32 CAM gebracht und dort angeschlossen.Das Intervall vom Parser habe ich bei mir auf 3600000ms erhöht, das entspricht einer Stunde, d.h. jede Stunde wird 1x geparst.
Ich denke auf Dauer ist es besser, wenn man die LED der ESP32 CAM nicht unnötig oft aktiviert, oder hat da jemand Langzeiterfahrung? -
@Atifan Hallo Atifan,
sieht so aus, als ob auch die Aufsteckversion bei dir funktionieren könnte:
https://www.thingiverse.com/thing:3860911
Ich habe bei mir den Deckel abgebaut, dann geht es echt gut. -
Hallo zusammen,
ich hatte ja schonmal angedeutet, an einem WYSIWYG Editor für die Config.ini zu arbeiten. Insbesondere auch, um die Erstellung von Reference-Images und ROIs für die Ziffern und Zeiger zu vereinfachen. Ich habe es jetzt einen ersten Prototyp als Alpha-Version auf meinem Server am laufen.
Es ist graphisch weder schön, noch 100% selbsterklärend. Deshalb veröffentliche ich den Link erstmal nur hier in diesem Post an erfahrene User . Hier die Adresse:http://wasserzaehler.ignorelist.com
Probiert es einfach aus und gebt mir Feedback. Dafür habe ich ein GitHub eingerichtet, wo ihr Issues starten könnt: https://github.com/jomjol/water-meter-config-creator-web-application
Bitte seid etwas geduldig mit der Performance. Es läuft bei mir auf einer Synology, leider bekomme ich bei mir kein High-Speed DSL.
Bin gespannt auf euer Feedback!
Beste Grüße,
jomjol -
Hi, hab den Editor mal getestet und funktioniert wunderbar Am Anfang ist es bisschen unverständlich was man machen muss, aber irgendwann blickt man durch und dann ist es eigentlich ganz einfach Erspart jedenfalls das gefrickel in Paint und geht damit schon bisschen einfacher Super Arbeit! Danke!
-
@Atifan Danke für das erste Feedback - ja der Einstieg ist etwas unverständlich. Mir geht es erstmal um den Workflow. Design und Benutzerführung kommt noch. Habe ich erstmal so gelöst, dass man erst weiter kommt, wenn man alles notwendige eingestellt hat.
-
Ja klar, erst mal die grundlegenden Funktionen testen Aber funktioniert alles
Von der Performance her hatte ich auch keine Probleme. -
@jomjol Durch den Editor habe ich gelernt, dass man die Rotation auch in Nachkommastellen angeben kann. Ich habe jetzt auch keine offensichtlichen Fehler entdecken können.
Als Verbesserungsvorschlag: Es wäre bestimmt sinnvoll, das beim ermitteln der Koordinaten der Digitalzahlen man eine Hilfestellung zu den Außenmaßen (per Digitalzahl) bekommt. Vielleicht die manuelle Eingabe so gestalten, dass die Zahl oben und unten genau reinpasst, und die Gesamtgröße (+23% oben bzw. +22% unten) durch den Editor ermittelt wird. Ich hoffe, ich habe mich verständlich ausgedrückt, ansonsten bitte noch einmal nachfragen.
Aber schon mal ein geiler Einstieg -
@Knallochse Danke!
Die Nachkommastellen werden nicht gespeichtert , das dient nur zur optimalen Ausrichtung des Referenzbildes. Leichte Verdrehung von einigen wenigen Grad kompensiert nachher sehr zuverlässig die Alignment Prozedur über die Referenzbilder. -
@jomjol Toll wäre auch, wenn das Referenzbild direkt der ESP-Cam kommt (Eingabe IP)
-
@Knallochse sagte in Wasserzähler - Selfmade:
@jomjol Toll wäre auch, wenn das Referenzbild direkt der ESP-Cam kommt (Eingabe IP)
Das klappt nicht, weil ich vermutlich aus der Webapplication heraus nicht auf eine lokale IP in deinem Heimnetz zugreifen kann. Wenn das ginge, wäre natürlich cool - habe aber noch keine Idee.
-
@jomjol Ich hatte angenommen, dass der Editor mal eine Art Einrichtungsassistent wird. (offline)
Aber so geht es ja auch -
@jomjol : Bei mir ist in der Config die ich durch dein Tool erstellt hab die 4. und 5. digital Ziffer vertauscht.
Hab ich da irgnendwo nen Fehler gemacht?
In der Config waren die Daten verdreht, also habe ich es geändert, aber die Anzeige ist immer noch verdreht Oo[Imagesource] timeoutloadimage = 30 #ip durch die ip des esp32 ersetzen! urlimagesource = http://192.168.178.238/capture_with_flashlight #logimagelocation=logimagelocation #logonlyfalsepictures=false [ConsistencyCheck] enabled = True #stores the last value in a file for the case of a restart (e.g. docker container after update) readprevaluefromfileatstartup = True #maximum time spanning since last startup for use of prevalue from filestorage in minutes readprevaluefromfilemaxage = 30 allownegativerates = False #maximum change of new to old value (+ or -) maxratevalue = 0.1 #return in case of error: value = oldvalue or newvalue # errormessage = return text with problem (seperated by tabstopp) if nothing, then no error message # readout = real readout without corrections (newvalue) errorreturn = OldValue, ErrorMessage, Readout [AnalogReadOut] #if enabled analog counters will be read, if disabled only digital counters will be read. enabled = True [alignment] initial_rotation_angle = 0.0 [alignment.ref0] image = ./config/ref0.jpg pos_x = 335 pos_y = 260 [alignment.ref1] image = ./config/ref1.jpg pos_x = 499 pos_y = 186 [alignment.ref2] image = ./config/ref2.jpg pos_x = 365 pos_y = 445 [Digital_Digit] names = ziffer1, ziffer2, ziffer3, ziffer5, ziffer4 modelfile = ./config/neuralnets/Train_CNN_Digital-Readout_Version_5.0.0.h5 #logimagelocation= #lognames= [Analog_Counter] names = zeiger1, zeiger2, zeiger3, zeiger4 modelfile = ./config/neuralnets/CNN_Analog-Readout_Version-5.0.0.h5 #logimagelocation= #lognames= [Analog_Counter.zeiger1] pos_x = 536 pos_y = 286 dx = 123 dy = 123 [Analog_Counter.zeiger2] pos_x = 481 pos_y = 416 dx = 122 dy = 122 [Analog_Counter.zeiger3] pos_x = 349 pos_y = 468 dx = 122 dy = 122 [Analog_Counter.zeiger4] pos_x = 208 pos_y = 408 dx = 123 dy = 123 [Digital_Digit.ziffer1] pos_x = 251 pos_y = 197 dx = 28 dy = 50 [Digital_Digit.ziffer2] pos_x = 298 pos_y = 197 dx = 28 dy = 50 [Digital_Digit.ziffer3] pos_x = 344 pos_y = 197 dx = 28 dy = 50 [Digital_Digit.ziffer5] pos_x = 438 pos_y = 197 dx = 28 dy = 50 [Digital_Digit.ziffer4] pos_x = 392 pos_y = 197 dx = 28 dy = 50
-
Ah hat sich erledigt, habe den Fehler gefunden in der config.