NEWS
(gelöst) Script starten in VIS geht nicht
-
Hallo zusammen,
ich möchte meine Scripte über die VIS an und ausschalten.Also "button state" eingefügt, script aus dem scriptenabled-Ordner ausgewählt und Wert im Widget auf true gesetzt.
Beim schalten in der VIS ändert sich der state des Sckriptes kurzzeitig auf true. Schaltet aber sofort wieder auf false zurück.Jemand ne Idee was ich WIEDER falsch mache?
-
@Lollo du solltest keine scripte über diesen weg ein bzw ausschalten
nehme/erstelle stattdessen einen eigenen datenpunkt vom typ boolean und trigger im script darauf
ich hatte anfangs auch diesen fehler gemacht und wurde von den admins darauf hingewiesen , dass diese scriptenabled sache eher zur richtung system gehört - habe dann selbst über 25 scripte abgeändert
-
@liv-in-sky danke für den Hinweis. Wie man Datenpunkte anlegt ist mir bekannt, nur wie triggere ich im script darauf?
-
@Lollo mit blockly ?
wenn ja - damit - die roten blockly sind trigger blockly's - sie reagieren im script
unter ObjectId wählst du den eigenen datenpunkt
unter "wurde geändert" kannst du auswählen wie es getriggert wird -
@liv-in-sky bitte blockly. Javaskript kann ich garnicht
-
@liv-in-sky ok. und wie sage ich jetzt dem script dass es starten oder stoppen soll?
-
Mit dieser Variante lässt sich das Script komischerweise nur ANHALTEN aber nicht STARTEN.
Der selbsterstellte Datenpunkt wechselt von true aud false hin und her.
Der Scriptdatenpunkt allerdings nur von true auf false. -
die scripte laufen immer - die werden nur beim start vom iobroker eingeschaltet.
deine scripts werden dann getriggert , weil sich andere datenpunkte ändernbei deinem beispiel:
den oberen trigger brauchst du eigentlich garnicht
der untere teil:alle 5 sekunden einen fenster check - dann bekommst du alle 5 sek ein telegramm - das ist viel
das mit dem zyklus kannst du so machen - aber du könntest auch einen crontrigger nutzen
das hier wird alle 10 minuten getriggert(das script führt alles darunter alle 10 minuten aus - da könntest du deinen falls block von unten einsetzen ohne zyklus
mach mal einen export von deinem blockly und poste ihn hier mit dem code tag
-
@Lollo sagte in Script starten in VIS geht nicht:
Mit dieser Variante lässt sich das Script komischerweise nur ANHALTEN aber nicht STARTEN.
Der selbsterstellte Datenpunkt wechselt von true aud false hin und her.
Der Scriptdatenpunkt allerdings nur von true auf false.aber jetzt startest du wieder das script - das sollen wir ja nicht machen
-
@Lollo habe dir ein pn geschrieben (persönliche nachricht) - was hälst du davon
-
die 5 Sekunden sind auch nur zum testen
Ich möchte einige Scripte über die VIS aus- und einschalten können, falls die "Regierung" mal wieder von ALEXA zugetextet wird. Weil ich noch "anfange" kann da schonmal die ein- oder andere "Nervigekeit" ausgelöst werden
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="on_ext" id="+A7wlutQO8gBfqosc.y3" x="-412" y="-562"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="L[i=p{|ii-ai*/YAZ@8s"> <field name="oid">Meine_Geräte.0.Script_Badfensterüberwachung</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="V6]e:v6u:?I_dnQ6L_VO"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="YL]^MiM0C_d90EjXd7qr"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="yM=9zWrslsViHeXAVGm6"> <field name="ATTR">val</field> <field name="OID">Meine_Geräte.0.Script_Badfensterüberwachung</field> </block> </value> <value name="B"> <block type="logic_boolean" id="9fL22SRTWP2%H`gSq]|e"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="!kuBOfM`+9tVj}J[-__L"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.common.Badfensterüberwachung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="B7QVi*G|Y?}Ac3%L5AZI"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="M~uV)}gj0R1:#*W8;u|_"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=";C4ZX5Zy!7cKvi8im7j~"> <field name="ATTR">val</field> <field name="OID">Meine_Geräte.0.Script_Badfensterüberwachung</field> </block> </value> <value name="B"> <block type="logic_boolean" id="6*euFlC(XVj1|IL-#GE:"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="wZNe;^d#PX)x)R!U$haP"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.common.Badfensterüberwachung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="e(VPE?0hlHh#qHA-7*gg"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="on_ext" id="H:9,9TWOV/;=MPKaSy=N"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="04M.poS^9eb%xAlr.;P^"> <field name="oid">hmip.0.devices.3014F711A00000D709A49544.channels.1.windowOpen</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_clearinterval" id="+k0LlU6(qY5jH4v8eb5("> <field name="NAME">Intervall</field> <next> <block type="controls_if" id="_PClP$x5F@T`?/)Qz;.7"> <value name="IF0"> <block type="logic_operation" id="oCx)Of)WznC0)8RXxyJ;" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="HqWI_$uxi:YT^CljdO$]" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="{=@2.bn*%6g2.:s?Oc+A"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="d-r^WjGkr9+KL|5=:9FK"> <field name="ATTR">val</field> <field name="OID">hmip.0.devices.3014F711A00000D709A49544.channels.1.windowOpen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="V.B^,Dk0-.p9AOs^H18r"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="E:+|n:*%(val06yRrChP"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="j[bV]U:}~ii}PwgnY]r+"> <field name="ATTR">val</field> <field name="OID">daswetter.0.NextHours.Location_1.Day_1.current.temp_value</field> </block> </value> <value name="B"> <block type="math_number" id=".]QW-6-MGY8dXcqyOR]Q"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="time_compare_ex" id="ol31JsrDuphoiBE?]6{?"> <mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="v!K[s^Bp4i/S8A`o4De#"> <field name="TEXT">19:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="Gm/|$%,DC)~YZ;NDjB4U"> <field name="TEXT">22:00</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id="XMjq-{g`W@a*K;yBD}.R"> <field name="NAME">Intervall</field> <field name="INTERVAL">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id="mfW9;Wkt2mS_R:~8%Pi$"> <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="}~0.oh^rAi?|-#%a=QJ`"> <field name="TEXT">Das Fenster ist noch offen !!!</field> </shadow> </value> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
-
-
-
-
@Lollo
hab nochmal drüber gekuckt und festgestellt,
dass es noch nicht ganz durchdacht war (stop interval gehört eine ebene höher - die variable, die den alarm wieder aktiviert gehört eine ebene tiefer)und noch folgendes - der alarm geht immer an, auch wenn man im bad ist und das fenster "gewollt" offen läßt - es fehlt also insgesamt noch ein input, ob jmd. im bad ist ? - bewegungsmelder ? sonst bekommst du immer ein telegram oder alexa fängt zum quasseln an (wird aber im winter eh nicht so oft vorkommen)
habe mal eine andere version gemacht - dabei gibt es ein telegram und alle 5 minuten eine "alexa mahnung" bis das fenster wieder geschlossen wird
-
@liv-in-sky
Klappt prima so. Vielen Dank für Deinen support. Es war mir eine Freude -
@Lollo dito