Hallo,
var min = 0; // Minimum Minuten var max = 100; // Maximum Minuten // Zufallszahl ermitteln function rand (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } var zufall = rand(min,max); schedule({astro: "sunrise", shift: zufall}, function () { log(zufall + " Minuten nach Sonnenaufgang"); }); ````damit bekommst du einen zufälligen Shift zwischen 0 und 100 Minuten nach Sonnenaufgang. Allerdings berechnet sich der Shift nur einmal beim Skriptstart. Wenn er zB täglich neu berechnet werden soll, musst du um Mitternacht noch einen __clearSchedule__ Scheinbar ist aber die Nutzung von __clearSchedule__ in Verbindung mit Astrofunktionen nicht möglich ~~@[url=https://github.com/ioBroker/ioBroker.javascript/blob/master/README.md#clearschedule:~~ > ~~Javascript Github von ioBroker"]~~If no "astro" function used you can cancel the schedule later. To allow this the schedule object must be saved: ` Falls das wirklich nicht geht, kannst du etwas umständlich die Sonnenaufgangszeit mit getAstroDate("sunrise", … abfragen und die Stunden und Minuten in eine Cron-Schreibweise portieren. Daraus kann man dann einen Schedule machen, der sich auch wieder löschen lässt :roll: :o :? :lol: Falls der Schedule beim Beenden des Skriptes gelöscht wird, kann man auch das Skript nach dem Skriptstart um Mitternacht sofort nach dem erreichten Schedule wieder deaktivieren. Das geht mit __ScriptEnabled__. PixNEWS
Waschmaschine plus Verbrauchskosten
-
Hallo zusammen,
leider bin ich noch nicht ganz so erfahren mit den Scripten. Folgendes Script habe ich für meine Waschmaschine gebaut, habe hier aber versucht ein existierendes Script von einem anderen Nutzer für den gleichen Homematic Stromadapter zu übernehmen. Leider bringt es noch nicht den gewünschten Erfolg. Wie finde ich denn am besten die niedrigen Schwellen für Reststrom raus?
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="on_ext" id="Zxp?zp.hXwA.q7]2,21Z" x="-6287" y="-1562"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="u};dfbiaXXzSzB1=|W!,"> <field name="oid">default</field> </shadow> <block type="field_oid" id="6[o5v#:4%*}Jn#!}Fypx"> <field name="oid">hm-rpc.2.0001D3C99C9790.6.CURRENT</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="n!-/KeR^m;D;]=m_jOZk"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="9-@|%^H{`/1nL/e7Q3H5"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="#]DTc6uEt2cVjekF@(7}"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="~QTL^yp1/W1(5v-hdJOT"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.0001D3C99C9790.6.POWER</field> </block> </value> <value name="B"> <block type="math_number" id="RZkwU6|ZSz^c!6C6lXH^"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="%_PR~/NddiDWL!^JgjXL"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="3g5#kWI;tK}Rb3K!Jwm5"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.0001D3C99C9790.6.CURRENT</field> </block> </value> <value name="B"> <block type="math_number" id="9)9L6c0C8|uaST*MaI9S"> <field name="NUM">60</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="eSJ`};z^:E+|ycBI)KuO"> <mutation delay_input="false"></mutation> <field name="OID">datenpunkte.homematic.Waschmaschine.last_value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="y(sS3uS2@nF(ReIxRxY#"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.0001D3C99C9790.6.ENERGY_COUNTER</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="{[c7Gm}9NwBrI~#qMU3K"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id="IU;rFh[(22kx[=s*m%ry"> <field name="NAME">timeout</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="DCxameKuP7;mgIUgrTx|"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="GA)zL])6:008r7^*[kik"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="5yP4m`dajQlTJy*kR?xJ"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="z2X)wySRtAk8a1#5f=11"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.0001D3C99C9790.6.POWER</field> </block> </value> <value name="B"> <block type="math_number" id="S{Ky:p-sC=tN+H11jYs6"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="5B9VPy:*@Y-!6C!_suj#"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="mL*m_yecdoap4=.IgOwH"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.0001D3C99C9790.6.CURRENT</field> </block> </value> <value name="B"> <block type="math_number" id=")uLL}#gWxZ8)BZY*w6k["> <field name="NUM">60</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="REi:cF}:iF-^u2??Kxpd"> <mutation delay_input="false"></mutation> <field name="OID">datenpunkte.homematic.WM_aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="J|/Ouo+TyNo02ocj.H0Q"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="update" id="6tDA7%e~8gdD%Q{pnCeS"> <mutation delay_input="false"></mutation> <field name="OID">datenpunkte.homematic.Waschmaschine.new_value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="0EgV_m%6n?8ZfxGdCSfx"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.0001D3C99C9790.6.ENERGY_COUNTER</field> </block> </value> <next> <block type="telegram" id="?*z%p(|KA0Rt)Fk-Yzx|"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="ueT7]*4ej`U;{0,EGZ{w"> <field name="TEXT">Waschmaschine ist fertig</field> </shadow> <block type="text_join" id="C.N{zv.r14=#rcvwC@P@"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="[y7d#?v)5s1gNx-eOr3V"> <field name="TEXT">Die Waschmaschine ist fertig.</field> </block> </value> <value name="ADD1"> <block type="text" id="%!AmEIpsok,ejf[|O#ta"> <field name="TEXT">Kostenpunkt: </field> </block> </value> <value name="ADD2"> <block type="math_arithmetic" id="`#p0|ofbWjl:[FlYD/fV"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="*9eg%`uDeK5!y-j#m1U~"> <field name="NUM">1</field> </shadow> <block type="get_value" id="xo7VlW^0tB9o+:)vG~dc"> <field name="ATTR">val</field> <field name="OID">datenpunkte.homematic.Waschmaschine.latest_consumption</field> </block> </value> <value name="B"> <shadow type="math_number" id="CzHPA[0s=!fdqw{^6ln`"> <field name="NUM">1</field> </shadow> <block type="math_number" id="*BMY@W./7wm^L*MXcoo9"> <field name="NUM">0.00025</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text" id="v@7zuqPV{IKEoe?Pi+GA"> <field name="TEXT"> €</field> </block> </value> </block> </value> <next> <block type="control" id="MNJR%zQakS3T}_31a57V"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB09745500MA.Commands.speak-volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="X!=y*/.p{Q65rEFw#Oi;"> <field name="NUM">10</field> </block> </value> <next> <block type="control" id="}tX`Ix|7_7@FklQFe0}f"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB09745500MA.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="T_oC]_lQoCUFb4GLP!]-"> <field name="TEXT">Waschmaschine ist fertig</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="6ZSM@%fNfX+tU{.E@@#("> <mutation delay_input="false"></mutation> <field name="OID">datenpunkte.homematic.WM_aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="q2y7R[QASGh9ee6r-P~2"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="M1=h]kSA4WQ3_KA0Co!l"> <mutation delay_input="false"></mutation> <field name="OID">datenpunkte.homematic.WM_aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="l3ly|,?U}N}P6#rZZ35n"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
Die Kostenberechnung ist ein Nebeneffekt, den ich über wegschreiben von Werten in ein anderes Objekt zu lösen versuche. Mir geht es primär darum, dass meine Meldung mit der Fertigstellung des Waschgangs funktioniert.
-
waschen, waschen, waschen.....und dabei die Stromaufnahme beobachten.
-
Am besten ist es auch, die Strom- und Leistungsaufnahme mittels History mitzuloggen, das erleichtert das Auswerten