NEWS
Schaltzeiten Addieren, Gesamt "An" in Minuten ..
-
Hallo,
ich habe ein Objekt welches in einem Zeitraum von 11:45Uhr - 18:15Uhr je nach Bedingungen mal Länger mal kürzer in diesem Zeitraum "An" ist.
Soweit alles OK.
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on_ext" id="wNNWp~Y_FZe|v#%-dVwx" x="-162" y="-513"> <mutation items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="~?t}50$cE*vhNwt/9d{k"> <field name="oid">sonoff.0.creationx-1023.DS18B20_Temperature</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="Hpa0]B73T)Sl=V{evgz2"> <field name="oid">fritzdect.0.DECT200_087610178347.temp</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="RtbEZklb).NV+Z98Gef:"> <value name="IF0"> <block type="time_compare" id="hH9U#G+TH0pk@~BgyC^A"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">11:45</field> <field name="END_TIME">18:15</field> </block> </value> <statement name="DO0"> <block type="controls_if" id="f`]_ZnrJPO+/s2gj8/sr"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="Ay:;6+j:q;d8n/9*)VQC" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="uLfZ.8ij68Im%Zp4D[K^"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="0MF^84cfN$rvZt-sMm7V"> <field name="ATTR">val</field> <field name="OID">sonoff.0.creationx-1023.DS18B20_Temperature</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="kO*{.nQyNy]#0AQMs^@E"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="S-?[ltaJSwGg=L^bp!Mh"> <field name="NUM">1</field> </shadow> <block type="get_value" id="fUzf0{W!S.r?tCW2os-8"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT200_087610178347.temp</field> </block> </value> <value name="B"> <shadow type="math_number" id="MuGm=)+OJsJ.%A.7J70)"> <field name="NUM">1</field> </shadow> <block type="math_number" id="u9EWK?-EMe(imqdeoX54"> <field name="NUM">4</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=":bVQVcrIL(YDY32VCsAp"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Qq4-:mE3r.sA9^D{Luee"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT200_087610178347.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="%C|:bx-oZCzz_A7vqcWK"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="/-2XhHkBmKey*R%[!n?d"> <mutation delay_input="false"></mutation> <field name="OID">fritzdect.0.DECT200_087610178347.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="q7t)HORVod)v9]3W}jo2"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="Yy~I1gw@#1s|eb*^QU]s" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="gJ(-S([ECw`S;(0i=r+M"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id=":;OaqB@6DgEvHKMx[Z/="> <field name="ATTR">val</field> <field name="OID">sonoff.0.creationx-1023.DS18B20_Temperature</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="!,vG%j$6J{Ikzg:x~x?U"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="S-?[ltaJSwGg=L^bp!Mh"> <field name="NUM">1</field> </shadow> <block type="get_value" id="C-xfh:R`9N#Rsvj7?gaz"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT200_087610178347.temp</field> </block> </value> <value name="B"> <shadow type="math_number" id="MuGm=)+OJsJ.%A.7J70)"> <field name="NUM">1</field> </shadow> <block type="math_number" id="B5/nTLNzT9]2HGKj)k=M"> <field name="NUM">4</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="fsEVLCKjDeTnXQO4viQs"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="G2%KCoV,9q)w;P-cWe8F"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT200_087610178347.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="T#4?AUYpx3)^tR)foJe("> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="gG{^EIio~OS*1nMq(CEu"> <mutation delay_input="true"></mutation> <field name="OID">fritzdect.0.DECT200_087610178347.state</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">50</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="C_xtJ}B3Z+oFPE:v?=+w"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="controls_if" id="-%l-D?i;KD83Qi8{S#u0"> <value name="IF0"> <block type="logic_operation" id="Y56yfZwbe-u2O0CTTO,-" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="1i9lU97W+J-eLC`CGBNw"> <mutation end_time="false" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">></field> <value name="START_TIME"> <shadow type="text" id="Eq9Cu/~/=7d(jR!4`3Pm"> <field name="TEXT">18:20</field> </shadow> </value> </block> </value> <value name="B"> <block type="logic_compare" id="dnF}Dk^~5RI+e)g:O1oN"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="-zW/+Lp3:})J^MF;sIMQ"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT200_087610178347.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="^d[x-)l*1:/VIr3=kVyi"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Jm3z*dMhXRRf!Our3?ne"> <mutation delay_input="true"></mutation> <field name="OID">fritzdect.0.DECT200_087610178347.state</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="iraX-caBHny?Py:,|Xe{"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
Nun möchte ich gerne noch wissen, wie Lange war das Objekt Switch on/off in diesem Zeitraum gesamt "an"?
Mir fehlt die Idee wie ich das hier einbauen könnte, bzw. berechnet werden kann.Wenn dieser Wert dann unter zb. unter 60 Minuten war, würde ich den Switch dann später nochmal für eine Fixen Wert von zb, 90 Minuten "An" schalten.
-
Vielleicht hilft dir ein Beispiel von einer Anwesenheits/Abwesenheitsberechnung als Ansatz weiter?!
Im Grunde wird die Zeit zwischen 2 Änderungszeitpunkten eines Datenpunktes betrachtet.
-
@BBTown der Ansatz ist ok.
Nur müssten die Zeiten der wechselnden Anwesenheiten über eine Zeitraum von x - y Addiert werden um meinen Wert zu erhalten.
Hast du evt. den code für mich?
-
@Mento sagte:
wie Lange war das Objekt Switch on/off in diesem Zeitraum gesamt "an"?
Die Variable ed enthält die Einschaltdauer in Minuten. Falls um 18:15 Uhr eingeschaltet ist, wird ausgeschaltet.
-
@paul53 Danke das sieht für mich Anwendbar aus.
Könntest du mir den code zur Verfügung stellen?
Ich tu mich da ein wenig schwer ein teil der Blockys so nach zu bauen. -