NEWS
Alexa2 3.25.x (Beta) - jetzt wieder mit History :-)
-
@jojo58
Einfach ausprobieren.
Schon beim Anlegen der Routine wird die App meckern, wenn sie den Satz/das Wort nicht (überschreiben) mag.
Geht fix. -
Moin, ich habe mir dann mal ein kleines Blockly-Skript gebaut, welches ich nach dem manuellen Refresh starte und welches mir dann meine Routinen startet. Denn zumindest bei mir ist es so, das die Routinen aktuell nicht auf "true" gesetzt werden, wenn diese per Sprachbefehl gestartet werden.
Das Skript funktioniert generisch, also man muss da eigentlich nichts mehr anpassen, auch wenn Routinen hinzukommen etc. Schaut es euch mal an, vielleicht kann es jemand gebrauchen:Der Trigger ("power" ist mein virtuelles Gerät, welches ich in den Routinen schalte):
Die Funktion RoutineAktualisieren (sucht automatisch das passende Gerät und die passende Routine und setzt die Routine auf true):
Die Funktion "StringReplace":
Für den Import:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Ab53HE;$-b:BQv8)ITk!">Uebergabe</variable> <variable id="sn:Qm8r/I{0@n$mGf2s%">Suchtext</variable> <variable id="t4o:-jVz:WANR,nO6*,c">Ersatztext</variable> <variable id="*D,0xp!zxTtCukPR^)qJ">AlexaInfoName</variable> <variable id="2:svZ%wygS!Z{!Db2mL1">AlexaID</variable> <variable id="9%11lPF|ZD!-=t9N=+@)">AlexaRoutines</variable> </variables> <block type="on_ext" id="5QK{bxQ-p/uz?596m.,}" x="163" y="63"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="05P.%8d,-Djy/H(4`tt~"> <field name="oid">javascript.0.VirtualDevices.AlexaTrigger.power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id=":(U,LSw+U-H1P{1#1OlN"> <value name="IF0"> <block type="logic_compare" id="Omc9#!Q5w3v*=S7y$lm0"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="rsJ{%G2rviv?n+yx]Q~N"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="K*;B-mH,v28_/Tt!rfcw"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="Gi(tn9l^~`#3sXcZF`0="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.VirtualDevices.AlexaTrigger.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="m?}kLb@UqA`,n9}WGgxP"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="!U_AU9^/zp^itzA0G;5~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.History.#trigger</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="J_*AV9{t0k82EeM=t}?v"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="update" id="o4sH9KQf?6acXEYl$2:)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.History.#trigger</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="}av_kvZO?!BLhB191ihj"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_wait" id="~j)+]HsJwm]u~-@@=*nj"> <field name="DELAY">150</field> <field name="UNIT">ms</field> <next> <block type="procedures_callnoreturn" id="2JhY9[Y5NA@5ZE0ZwQN0"> <mutation name="Routine Aktualisieren"></mutation> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="LGkfp.j:frjg~6meIsoR" x="162" y="388"> <field name="NAME">Routine Aktualisieren</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="vq/Ti2ETt{WKnfJS!nBX"> <value name="IF0"> <block type="logic_compare" id="/b]E!`QpKJ#YnMfE$*};"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="TzEFMh-+#[h$`$pNf9}T"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.domain</field> </block> </value> <value name="B"> <block type="text" id="Z={J/PaJf{Fj5HX`!s=#"> <field name="TEXT">Routines</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_forEach" id="w:dW]`eIoHoS8o]P[NIV"> <field name="VAR" id="*D,0xp!zxTtCukPR^)qJ">AlexaInfoName</field> <value name="LIST"> <block type="selector" id="L@;28:C+7Z]@1-~]Y[ei"> <field name="TEXT">alexa2.0.Echo-Devices.*.Info.name</field> </block> </value> <statement name="DO"> <block type="controls_if" id="G=qua.8yH1]mX6JK/[Y}"> <value name="IF0"> <block type="logic_compare" id="KwO*Pw-2Rc?PuPQha)LH"> <field name="OP">EQ</field> <value name="A"> <block type="get_value_var" id="nCRH7GSF.+GPnAh}B5;/"> <field name="ATTR">val</field> <value name="OID"> <shadow type="field_oid" id="wAks:Q[*Q=J9U-,OKReR"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="FaN+-@DJ?9;Cy(SMuB,T"> <field name="VAR" id="*D,0xp!zxTtCukPR^)qJ">AlexaInfoName</field> </block> </value> </block> </value> <value name="B"> <block type="get_value" id=".9o50-|^,F.)w,usK@8E"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="w|V3uod8~$y9gA9V.#58"> <field name="VAR" id="2:svZ%wygS!Z{!Db2mL1">AlexaID</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="(9aC[L)~8O+No^;ZO8Jm"> <mutation name="StringReplace"> <arg name="Uebergabe"></arg> <arg name="Suchtext"></arg> <arg name="Ersatztext"></arg> </mutation> <value name="ARG0"> <block type="convert_tostring" id="d7IWXe5b(E6``@bkXQj9"> <value name="VALUE"> <block type="variables_get" id="[xQxSxo#n}xK79*M,wqa"> <field name="VAR" id="*D,0xp!zxTtCukPR^)qJ">AlexaInfoName</field> </block> </value> </block> </value> <value name="ARG1"> <block type="text" id="zgb{dZvYJUV,b0|G`I4W"> <field name="TEXT">.Info.name</field> </block> </value> <value name="ARG2"> <block type="text" id="W@Zg9@6K}7W!B-HcP}m`"> <field name="TEXT"></field> </block> </value> </block> </value> <next> <block type="controls_forEach" id="eA1;0dHM|tgNf2t*.T){"> <field name="VAR" id="9%11lPF|ZD!-=t9N=+@)">AlexaRoutines</field> <value name="LIST"> <block type="selector" id="3KBNb]?jO0JKB@1TiKg$"> <field name="TEXT">'+AlexaID+'.Routines.*</field> </block> </value> <statement name="DO"> <block type="controls_if" id="fp(1,5yMR;qh43@jJ)v@"> <value name="IF0"> <block type="logic_compare" id="F.00=az_sVvrOqkNNU9="> <field name="OP">EQ</field> <value name="A"> <block type="text_changeCase" id="g9,H[U8g!lH%?LVeGAN9"> <field name="CASE">LOWERCASE</field> <value name="TEXT"> <shadow type="text" id="N6FqHxM~Gd.XNVp-G-[8"> <field name="TEXT">abc</field> </shadow> <block type="get_value_var" id="/7{oF]#!aGCm2DEv0I0q"> <field name="ATTR">common.name</field> <value name="OID"> <shadow type="field_oid" id="wAks:Q[*Q=J9U-,OKReR"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="0Gd$yf1X+]ILuOHH;Pf~"> <field name="VAR" id="9%11lPF|ZD!-=t9N=+@)">AlexaRoutines</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="get_value" id="kQ6Zj9vD}HnzGwfWdPxP"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.summary</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control_ex" id="ago=Ch8IuPBHCJD8EITb"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="LbXn@mBE-/tL0Gwyub9Z"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="lA?X!Qh{=m]fnqL(D5=v"> <field name="VAR" id="9%11lPF|ZD!-=t9N=+@)">AlexaRoutines</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="CL.k/k]hJ)iQ2]k6Qf8:"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="UX|6P(aM/iG}X6IZTTrF"> <field name="NUM">0</field> </shadow> </value> <next> <block type="controls_flow_statements" id="[++P[oX-Qwbkx@^?{Y$["> <field name="FLOW">BREAK</field> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_flow_statements" id="WZ:C|hihlkgt:{MQ)l0~"> <field name="FLOW">BREAK</field> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> <block type="procedures_defcustomreturn" id="_tIJ{~4uAw$EQF`Yc`?V" x="213" y="1338"> <mutation statements="false"> <arg name="Uebergabe" varid="Ab53HE;$-b:BQv8)ITk!"></arg> <arg name="Suchtext" varid="sn:Qm8r/I{0@n$mGf2s%"></arg> <arg name="Ersatztext" varid="t4o:-jVz:WANR,nO6*,c"></arg> </mutation> <field name="NAME">StringReplace</field> <field name="SCRIPT">cmV0dXJuIFVlYmVyZ2FiZS5yZXBsYWNlKFN1Y2h0ZXh0LCBFcnNhdHp0ZXh0KTs=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>
Und hier noch einmal einzeln, der Code für die Funktion StringReplace:
return Uebergabe.replace(Suchtext, Ersatztext);
-
Leider liefert der History-Wert auch in der aktuellen Adapterversion (3.26.1) ca. alle 12h nicht mehr ab. Auch wenn ich den Trigger manuell auslöse, wird der History-Wert nicht mehr aktualisiert. Ich muss dann den Adapter mauell neu starten, dann klappt es wieder für ca 12h. Das Log sagt nichts zum Thema.
Ich würde deshalb die Instanz gerne alle 12h oder besser alle 8h automatisch neu starten. Wenn ich im Expertenmodus diese Einstellung vornehme, heißt es aber
Restart schedule "*/ */12 * * *" is too often, please set a restart schedule that makes sense. Disabling adapter now.
... wobei die Einstellung völlig egal ist, auch ein Neustart alle 12 Monate wird nicht akzeptiert:
Restart schedule "* * * */12 *" is too often, please set a restart schedule that makes sense. Disabling adapter now.
@apollon77 Gibt es wirklich keine Möglichkeit, den Adapter automatisiert neu zu starten?
-
@mick70 Also zwei Dinge hier
1.) Dein Schedule macht NICHT das was Du willst!! liess mal genau was dir im Admin da beschrieben wird. Und es ist eh falsch was du da hast. "*" bedeutet "Mache bei JEDEM wert"!!! Also jede Sekunde in jeder Minute in jede Stunde im Dezember (wäre der zweite). der erste sagt: Starte jede sekunde wenn die minute / 12 teilbar ist.
Wenn Du sowas willst dann solltest Du eine zeit definieren, also eher sowas wie "0 0 */12 * *" ... Aber wie gesagt ... Admin zeigt dir das oben auch an. Also bitte Aufpassen was Du tust ...
2.) lass das mal bitte sein und lieber rausfinden warum mes bei dir nach 12h kaputt ist ... weil normal ist das nicht, wie bestimmt viele hier bestätigen können. Also Debug log anwerfen ... dann halt 12h damit laufen lassen und dann mal Logauszug posten wenns nicht mehr geht
-
@apollon77 ich Danke dir ganz herzlich für die 3.26.2 und natürlich auch für 3.26.3 du bist ja schneller als die Polizei erlaubt.
Grüße
Fabio -
@apollon77 uuuh, da hab ich ja sauber daneben gelangt...
Aut. Neustart läuft jetzt natürlich, debug kommt aber auch, wenn ich wieder daheim bin und selbst testen kann.
-
@carsten-sauermann sagte in Alexa2 3.25.x (Beta) - jetzt wieder mit History :
Denn zumindest bei mir ist es so, das die Routinen aktuell nicht auf "true" gesetzt werden, wenn diese per Sprachbefehl gestartet werden.
Leute ... warum meldet denn keiner sowas als Issue? Ihr scheint echt Spass dran zu haben Zeit zu investieren um Aufwändig drum herum zu arbeiten ... grrmmff
Bzw wenn du passend zu diesem Thread auf der 3.25 bist ist eh alles "zu spät" ... wir sind auf 3.26.2+ ... -
Ich selbst nutze den Status der Routinen nicht, hab jetzt aber ein wenig getestet.
Bei mir funktioniert es einwandfrei, wenn die History automatisch aktualisiert wird, also das "neue Häkchen" gesetzt ist. Ist es nicht gesetzt und ich kümmere mich selbst um das Aktualisieren der History, werden die Routinen-States nicht getriggert.
Wenn ich das richtig verstehe, ist das aber ein Feature, weil man ja auf diese Weise nie sicher sein kann, dass die History nicht was altes (oder evtl. auch gar nix, wenn man sie nicht aktualisiert) enthält.@Homoran
Wäre es evtl. sinnvoll, diesen Thread zu schließen und nochmal auf den aktuellen hinzuweisen?
Alexa2 3.26.x -
@bananajoe Danke jetzt weiss ich wie du dass meinst mit trigger Abfragen!
Aber irgw. findet Alexa meine angelegten Geräte nicht.
Habe eine sehr alte iot Nutzeranmeldung ebenfalls damals den Skill connected - zahle aber nichts jährlich? Kann dann das überhaupt funktionieren?Der Haken bei "Amazon AlexaV3 (Beta)" ist nicht angehakt.
-
@gaspode sagte in Alexa2 3.25.x (Beta) - jetzt wieder mit History :
@Homoran
Wäre es evtl. sinnvoll, diesen Thread zu schließen und nochmal auf den aktuellen hinzuweisen?
Alexa2 3.26.xSorry, hab mit der Dame nichts am Hut.
Bin daher da nicht auf dem laufenden.erledigt!
Also:
weiter geht's hier