Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Alexa Routinen zum Schalten von Geräten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alexa Routinen zum Schalten von Geräten

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active @Info last edited by

      @Info sagte in Alexa Routinen zum Schalten von Geräten:

      Ich lese aus dem ALEXA2 History die Anfrage mit. Trigger, Ausgabe und alles ist kein Akt.
      ABER Alexa antwortet erstmal das sie keine Ahnung hat wie der Status des Pools ist oder das sie das Gerät nicht kennt. DAS würde ich gerne unterbinden. Und am liebsten ohne etliche Skills die genau auf den Wortlaut x hören.

      Ich kenne dazu keine Möglichkeit.

      Irgendwie auch logisch, das Alexa mit "ich kenne das Gerät nicht" usw...antwortet, denn sie kennt es ja tatsächlich nicht. Funktionieren wird Dein Script dann trotzdem, weil das ja nur auf die History reagiert...Nur die erste Antwort von Alexa nervt halt. Deshalb gehe ich nicht den Weg über die History, sondern lege meistens über den iot-Adapter mehrere SmartGeräte/SmartNamen an, die dann eine echte Routinen in der Amazon App auslösen, z.B. löst dann ein Button der aktualisiert wird mein Blockly/Script aus und gibt mir das wieder was ich will.

      I Gaspode 2 Replies Last reply Reply Quote 0
      • I
        Info @dslraser last edited by

        @dslraser ja es funktioniert wie Du sagst.
        Was ich bei Dir nicht verstehe: Du sagst also z.B. per Alexa Skill das das "Gerät" (virtuelles Gerät im IoT Adapter) Pool eingeschaltet werden soll. Den Switch triggerst Du dann, macht irgendwas (Sprachausgabe, .....) ?

        Ich möchte es gerne so natürlich wie möglich haben. Über smarte Devices zu gehen ist natürlich der einfachste Weg. Aber man kann halt nicht alles abfragen. Geschweige denn komplexe Dinge aus mehreren Status.

        dslraser 1 Reply Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active @Info last edited by

          @Info sagte in Alexa Routinen zum Schalten von Geräten:

          Was ich bei Dir nicht verstehe: Du sagst also z.B. per Alexa Skill das das "Gerät" (virtuelles Gerät im IoT Adapter) Pool eingeschaltet werden soll. Den Switch triggerst Du dann, macht irgendwas (Sprachausgabe, .....) ?

          Vielleicht reden wir auch aneinander vorbei, aber auch mehrere Dinge in einem Blockly abfragen und ausgeben geht, also auch komplexe Antworten.
          Z.B. Die Temperaturen von allen Räumen.
          (das ist eine Routine, man kann ja auch mehrere Routinen mit verschieden formulierten Fragen erstellen. Diese Routine aktualisiert einen Button über iot und löst dann die Blockly Abfrage aus)

          Beispiel Temperatur
          Temperaturen.wav

          Oder Fenster
          Fenster.wav

          Meinst Du so was ?

          1 Reply Last reply Reply Quote 0
          • M
            Michi68 @G.Hawk last edited by

            @Martin-0
            Hallo,
            vielleicht ist das so etwas einfacher zu verstehen.
            Um eine Abfrage zu stellen brauchst du nur ein Script, hier mal ein Beispiel, Ausgabe ist immer auf dem Gerät das du ansprichst.

            einmal die lange variante
            Status_Lampen2.png


            <xml xmlns="https://developers.google.com/blockly/xml">
            <variables>
            <variable id="~J%;V(L_kdEvsqQ~IBk">Ausgabetext</variable>
            <variable type="timeout" id="timeout">timeout</variable>
            <variable type="timeout" id="timeout2">timeout2</variable>
            </variables>
            <block type="comment" id="cU,}hA#oC@+|ueGSN6{" x="-837" y="-838"> <field name="COMMENT">Alexa, sind noch Lampen eingeschaltet</field> <next> <block type="comment" id="4PKyNb9DKivCB/%Q6R@v"> <field name="COMMENT">Alexa, ist noch Licht eingeschaltet</field> <next> <block type="control" id="@J7@ob/rsR9OCYN+!hI7"> <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="oI]KS-#7{Lh(W#]MB7C">
            <field name="BOOL">TRUE</field>
            </block>
            </value>
            <next>
            <block type="controls_if" id="{_JT|3Mpv
            tSOVWD3Pz6">
            <value name="IF0">
            <block type="logic_compare" id="D?,QGBBwauCm,Qte=Q-">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="]irLwLWGul].x{m.#.@"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_die_an_sind</field> </block> </value> <value name="B"> <block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> <value name="VALUE"> <block type="text_join" id="4?k[0reCRn.mjkxHg41~"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="NgpEM1aq.?1o;p,vmj.">
            <field name="TEXT"><speak><voice name="Alexa"></field>
            </block>
            </value>
            <value name="ADD1">
            <block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC">
            <field name="ATTR">val</field>
            <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_sind_wo_an</field>
            </block>
            </value>
            <value name="ADD2">
            <block type="text" id="nbjQLM
            ~Fd1@ly;mL|Z*">
            <field name="TEXT"></voice></speak></field>
            </block>
            </value>
            </block>
            </value>
            <next>
            <block type="timeouts_settimeout" id="^c,bQ)^![(HGz2QrWw/u">
            <field name="NAME">timeout</field>
            <field name="DELAY">500</field>
            <field name="UNIT">ms</field>
            <statement name="STATEMENT">
            <block type="comment" id="3e5[cR-lQ2P@g3-V]T.">
            <field name="COMMENT">Wohnzimmer</field>
            <next>
            <block type="controls_if" id="KauxWUEJAP2sp)D%Cdm9">
            <value name="IF0">
            <block type="logic_compare" id="F4MK(fbY8WU[yWO)@Z~O">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="Oe@)VM+1Y_1YJn?6xyl"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field> </block> </value> <value name="B"> <block type="text" id="Q8@T8q|P]D*WR6aG#*j0"> <field name="TEXT">Wohnzimmer</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="r|w?GKF2R8A%WSX@AP[|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="HTcKd2V9F)=k:Ae4mS}F"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </statement> <next> <block type="comment" id="Lg@:ha-a2x,0rfhC.]_="> <field name="COMMENT">Küche</field> <next> <block type="controls_if" id="DTWD3KK_f2CmowWl}Dw+"> <value name="IF0"> <block type="logic_compare" id="*r~k%Po!vzUQHybU)sv">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="285L,qT@eWkZS(#hgXnl">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.name</field>
            </block>
            </value>
            <value name="B">
            <block type="text" id="w!HtM,nb,KI1aqaOeI36">
            <field name="TEXT">Küche</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="control" id="_H{%k4b|sj!:P^rDu%};">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="variables_get" id="~51B8(3{stq1BpR1J~p%">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </statement>
            <next>
            <block type="comment" id="?k8YL[;!mE5;-NddVTc"> <field name="COMMENT">Schlafzimmer</field> <next> <block type="controls_if" id="zyeAn3wMc!;hYZDhK)hy"> <value name="IF0"> <block type="logic_compare" id="bq=B-rG}sw}7gG1{/Y-."> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ZrS-l8E!}8.4{,qM9i">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.name</field>
            </block>
            </value>
            <value name="B">
            <block type="text" id="te+gSwhWiVR4,scYV%ca">
            <field name="TEXT">Schlafzimmer</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="control" id="grH6#whY1.N-q[pLM5X.">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="variables_get" id="[hMf^;p|,CaZVyd+qTm~">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </statement>
            <next>
            <block type="comment" id="zB.uUF.v)YSQB%fh-NeN">
            <field name="COMMENT">Badezimmer</field>
            <next>
            <block type="controls_if" id="yLDA;+i/I+kd:0zZE}WS">
            <value name="IF0">
            <block type="logic_compare" id="c!s}w1%u#jEsW#BP^],=">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="ANko_h~ho^4}^aa=9sS">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.name</field>
            </block>
            </value>
            <value name="B">
            <block type="text" id="O,6A4Ym6Pm;LnGW{aHh:">
            <field name="TEXT">Badezimmer</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="control" id="tg_[?#}w5X(T6O@aJwK8">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="variables_get" id=";#p5#I+i.f#xUjF#U7)@">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </statement>
            <next>
            <block type="comment" id="Z^qFzd.$Eq69H^BadO9t">
            <field name="COMMENT">Flur</field>
            <next>
            <block type="controls_if" id="M7hV07aa/l?O]8?~Q1;">
            <value name="IF0">
            <block type="logic_compare" id="Kh%.^Ls~FUNBCw.S!;5"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="jQ)Is^0?xsU%Gp=LLE"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field> </block> </value> <value name="B"> <block type="text" id="bVIu?*Y3KEq}V}ehCWF."> <field name="TEXT">Flur</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="DA3W]TJ_CX$)2O3}Ca|~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="?n:m6}Y4|gYD7,oulgk#"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </statement> <next> <block type="comment" id="t3]i)L+2B.Jnfa2eap,:"> <field name="COMMENT">Gästezimmer</field> <next> <block type="controls_if" id="TO9RT7C9la!v9ZgSMcs4"> <value name="IF0"> <block type="logic_compare" id="~cyXuqsTmYgp5o=wWmm)"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="p%xttIq4BmLwwKxz__+">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.name</field>
            </block>
            </value>
            <value name="B">
            <block type="text" id="~K5Qg^xQEePp(z.M]wU2">
            <field name="TEXT">Gästezimmer</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="control" id="yNv9Ae7e^u;=HgPlo_6b">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="variables_get" id="Fa52rB4f[7U3aHZ8eZA"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id=".{Ew66Z]MiR,{4e08hvp" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="+;gROYIhif%4n~j.}Nhz"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="H2iPnI=xf$iC3jL9$mQV"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|"> <value name="IF0"> <block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="k=BXdEuQo7?Mo%bdfdng"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_die_an_sind</field> </block> </value> <value name="B"> <block type="math_number" id="j-blGyC;V4jTLHKvikXr"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="mk,--n%8x}e1WshOCBc."> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> <value name="VALUE"> <block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="L(r$t@)3fal36K.]Oag."> <field name="TEXT">&lt;speak&gt;&lt;voice name="Alexa"&gt;</field> </block> </value> <value name="ADD1"> <block type="text" id="Lo0@rGsN^gt1iZ#@~A/7"> <field name="TEXT">Im Moment sind im </field> </block> </value> <value name="ADD2"> <block type="get_value" id="i?[Ze,W23|M_S5@d?;q">
            <field name="ATTR">val</field>
            <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_sind_wo_an</field>
            </block>
            </value>
            <value name="ADD3">
            <block type="text" id="NqEob9;8UT11wTdCQi#"> <field name="TEXT">eingeschaltete Lampen</field> </block> </value> <value name="ADD4"> <block type="text" id="-9oSLmZYA~kWjO#/VdCp"> <field name="TEXT">&lt;/voice&gt;&lt;/speak&gt;</field> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id="YUcn[QksR=DsW0nE^6~;"> <field name="NAME">timeout2</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="comment" id="~/NGTn@Mn185A#A@}8|#"> <field name="COMMENT">Wohnzimmer</field> <next> <block type="controls_if" id="t/iFREg+aB[Tg|fNABO1"> <value name="IF0"> <block type="logic_compare" id="D(x#GpMhMaD67h~IXyLv"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="+}2st9y5DfUl-#ll]Z}:"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field> </block> </value> <value name="B"> <block type="text" id=";}C_.s[i7I4,Veg*qcG)"> <field name="TEXT">Wohnzimmer</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="K:5m9f*LTG}^bDe*EMRM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="$oM=t$]eZXT[~+[[FM87"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </statement> <next> <block type="comment" id="T-*4J_}8s|[qg1JO7rZB"> <field name="COMMENT">Küche</field> <next> <block type="controls_if" id="ncx,@hS5whA03;Ip5;VA"> <value name="IF0"> <block type="logic_compare" id="Q.RwM6/fds:jBUCp:wUU"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="+DUh%F)wI-Arbp;uhIJO"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field> </block> </value> <value name="B"> <block type="text" id="PVeTUK8X:tB-(u13[+pC"> <field name="TEXT">Küche</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_:8l4dLKjuOI@p_I@/qI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=")!9E6@!U?T#0iZ8?rtU">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </statement>
            <next>
            <block type="comment" id="rnL!p!!mhI[hPHPE,^8Y">
            <field name="COMMENT">Schlafzimmer</field>
            <next>
            <block type="controls_if" id="15Q%R0g[m.$Q#SiqV,tx">
            <value name="IF0">
            <block type="logic_compare" id="Mr.EdOG:^c[0n[eUPq@">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="NNWi7X3~PA1~?bB.o1z%">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.name</field>
            </block>
            </value>
            <value name="B">
            <block type="text" id="MNDwMm~j]|[/(L|yNzR4">
            <field name="TEXT">Schlafzimmer</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="control" id=")kA0gFFA]g2:yn@o=gJQ">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="variables_get" id="3B}%@Yz[li)JZjP,Ylqr">
            <field name="VAR" id="~J%;V(L_kdEvsqQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </statement>
            <next>
            <block type="comment" id="]ua=kK~)+chG).Mnyh7w">
            <field name="COMMENT">Badezimmer</field>
            <next>
            <block type="controls_if" id="Z:Gocl?5n,AY)W%/@m4e">
            <value name="IF0">
            <block type="logic_compare" id="m6g}@gs
            B9l
            +iVI_]}b">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="M;]frUPdx-7ZESpG.,,x">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.name</field>
            </block>
            </value>
            <value name="B">
            <block type="text" id="0:D*?Zgedt*[@sv!0W%n">
            <field name="TEXT">Badezimmer</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="control" id="DeMs)NQDVQ}.^sj(/%6w">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="variables_get" id="bnCyexNAWsN}xyb7taH"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </statement> <next> <block type="comment" id="mDHc|DBRr51nE8XeHB">
            <field name="COMMENT">Flur</field>
            <next>
            <block type="controls_if" id="W50K|L9rUZ7j%YS7S26H">
            <value name="IF0">
            <block type="logic_compare" id="bznXcs(PYerfY|p.tcj">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="-gei;oNvi;cY7T%]c:|"> <field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field> </block> </value> <value name="B"> <block type="text" id="|pQKH4O!;YfvapWjdkrQ"> <field name="TEXT">Flur</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="]b)sZp,{Xv0YuzH1s.X)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="3mw_T}b_CW|}j0XUAWlQ"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </statement> <next> <block type="comment" id="#tN~zg61IsMw]DodsqV0"> <field name="COMMENT">Gästezimmer</field> <next> <block type="controls_if" id="g*?G|Wk98SP,fF#~@.DW"> <value name="IF0"> <block type="logic_compare" id="jS#T#,6$9#^Ne$048-x">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="ZOETTZ^TH,)wA;WoSQ:?">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.name</field>
            </block>
            </value>
            <value name="B">
            <block type="text" id="=RM
            =?4Iq6%q!@8uBJ]6">
            <field name="TEXT">Gästezimmer</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="control" id="?/@ICyV_A~Le~]P]+jaV">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.ssml</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
            <block type="variables_get" id="Ri6x|2|F%=P}T|aw+S%"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id="S(nJ=3w67ayn/{bF]icJ" disabled="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="+;gROYIhif%4n~j.}Nhz"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="@,rV[(ci[uW6uGM36,]">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </next>
            </block>
            </next>
            </block>
            </statement>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </xml>

            und einmal die kurze

            Status_Lampen.png


            <xml xmlns="https://developers.google.com/blockly/xml">
            <variables>
            <variable id="~J%;V(L_kdEvsqQ~IBk">Ausgabetext</variable>
            </variables>
            <block type="comment" id="cU,}hA#oC@+|ueGSN6{" x="-837" y="-838"> <field name="COMMENT">Alexa, sind noch Lampen eingeschaltet</field> <next> <block type="comment" id="4PKyNb9DKivCB/%Q6R@v"> <field name="COMMENT">Alexa, ist noch Licht eingeschaltet</field> <next> <block type="control" id="@J7@ob/rsR9OCYN+!hI7"> <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="oI]KS-#7{Lh(W#]MB7C">
            <field name="BOOL">TRUE</field>
            </block>
            </value>
            <next>
            <block type="controls_if" id="{_JT|3Mpv
            tSOVWD3Pz6">
            <value name="IF0">
            <block type="logic_compare" id="D?,QGBBwauCm,Qte=Q-">
            <field name="OP">EQ</field>
            <value name="A">
            <block type="get_value" id="]irLwLWGul].x{m.#.@"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_die_an_sind</field> </block> </value> <value name="B"> <block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"> <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field> <value name="VALUE"> <block type="text_join" id="4?k[0reCRn.mjkxHg41~"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="NgpEM1aq.?1o;p,vmj.">
            <field name="TEXT"><speak><voice name="Alexa"></field>
            </block>
            </value>
            <value name="ADD1">
            <block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC">
            <field name="ATTR">val</field>
            <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_sind_wo_an</field>
            </block>
            </value>
            <value name="ADD2">
            <block type="text" id="nbjQLM
            ~Fd1@ly;mL|Z*">
            <field name="TEXT"></voice></speak></field>
            </block>
            </value>
            </block>
            </value>
            <next>
            <block type="control_ex" id="+x0q7E?Hft)ajTWnsbCG">
            <field name="TYPE">false</field>
            <field name="CLEAR_RUNNING">FALSE</field>
            <value name="OID">
            <shadow xmlns="http://www.w3.org/1999/xhtml" type="field_oid" id="jnJO@~-TZSnZH4eTlWi^">
            <field name="oid">Object ID</field>
            </shadow>
            <block type="text_join" id="Uc(C1DhkN=(Ej:3;/_{">
            <mutation items="3"></mutation>
            <value name="ADD0">
            <block type="text" id="3N=uEC@l
            )_nr#{g4uNp">
            <field name="TEXT">alexa2.0.Echo-Devices.</field>
            </block>
            </value>
            <value name="ADD1">
            <block type="get_value" id="mTQ}3#/=?3VG-}4O,m-">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.serialNumber</field>
            </block>
            </value>
            <value name="ADD2">
            <block type="text" id="E|q29/u43a=DeTghbcsC">
            <field name="TEXT">.Commands.ssml</field>
            </block>
            </value>
            </block>
            </value>
            <value name="VALUE">
            <shadow xmlns="http://www.w3.org/1999/xhtml" type="logic_boolean" id="Xul}ZCl#TwB{^r7um)n{">
            <field name="BOOL">TRUE</field>
            </shadow>
            <block type="variables_get" id="D_FnDB|lSUf55^mbVG7]">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            <value name="DELAY_MS">
            <shadow type="math_number" id="N@fDKf#STgixesQWvdkZ">
            <field name="NUM">500</field>
            </shadow>
            </value>
            <next>
            <block type="debug" id=".{Ew66Z]MiR,{4e08hvp" disabled="true">
            <field name="Severity">log</field>
            <value name="TEXT">
            <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="+;gROYIhif%4n~j.}Nhz">
            <field name="TEXT">test</field>
            </shadow>
            <block type="variables_get" id="H2iPnI=xf$iC3jL9$mQV">
            <field name="VAR" id="~J%;V(L_kdEvsqQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </next>
            </block>
            </next>
            </block>
            </statement>
            <next>
            <block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|">
            <value name="IF0">
            <block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g">
            <field name="OP">NEQ</field>
            <value name="A">
            <block type="get_value" id="k=BXdEuQo7?Mo%bdfdng">
            <field name="ATTR">val</field>
            <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_die_an_sind</field>
            </block>
            </value>
            <value name="B">
            <block type="math_number" id="j-blGyC;V4jTLHKvikXr">
            <field name="NUM">0</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO0">
            <block type="variables_set" id="mk,--n%8x}e1WshOCBc.">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            <value name="VALUE">
            <block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR">
            <mutation items="5"></mutation>
            <value name="ADD0">
            <block type="text" id="L(r$t@)3fal36K.]Oag.">
            <field name="TEXT"><speak><voice name="Alexa"></field>
            </block>
            </value>
            <value name="ADD1">
            <block type="text" id="Lo0@rGsN^gt1iZ#@~A/7">
            <field name="TEXT">Im Moment sind im </field>
            </block>
            </value>
            <value name="ADD2">
            <block type="get_value" id="i?[Ze,W23|M_S5@d?;q"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Status.Lampen.Lampen_sind_wo_an</field> </block> </value> <value name="ADD3"> <block type="text" id="NqEob9;8UT11wTdCQi#">
            <field name="TEXT">eingeschaltete Lampen</field>
            </block>
            </value>
            <value name="ADD4">
            <block type="text" id="-9oSLmZYA~kWjO#/VdCp">
            <field name="TEXT"></voice></speak></field>
            </block>
            </value>
            </block>
            </value>
            <next>
            <block type="control_ex" id="AmH$dRclYraFxYn_M[@N">
            <field name="TYPE">false</field>
            <field name="CLEAR_RUNNING">FALSE</field>
            <value name="OID">
            <shadow xmlns="http://www.w3.org/1999/xhtml" type="field_oid" id="jnJO@~-TZSnZH4eTlWi^">
            <field name="oid">Object ID</field>
            </shadow>
            <block type="text_join" id="UzlVgfT#m#ZF~KKfJRD">
            <mutation items="3"></mutation>
            <value name="ADD0">
            <block type="text" id="X{Xt
            :vkWZD-xQ-@GOTb">
            <field name="TEXT">alexa2.0.Echo-Devices.</field>
            </block>
            </value>
            <value name="ADD1">
            <block type="get_value" id="lev,hwALzsP%~ck[Gq(@">
            <field name="ATTR">val</field>
            <field name="OID">alexa2.0.History.serialNumber</field>
            </block>
            </value>
            <value name="ADD2">
            <block type="text" id="b/=7G)A}}r/0L,~}#8lZ">
            <field name="TEXT">.Commands.ssml</field>
            </block>
            </value>
            </block>
            </value>
            <value name="VALUE">
            <shadow xmlns="http://www.w3.org/1999/xhtml" type="logic_boolean" id="Xul}ZCl#TwB{^r7um)n{">
            <field name="BOOL">TRUE</field>
            </shadow>
            <block type="variables_get" id="f(wOW[koP;iSAE;2ith">
            <field name="VAR" id="~J%;V(L_kdEvs
            qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            <value name="DELAY_MS">
            <shadow type="math_number" id="@[ja$X%TAqP8Vx/RP(.m">
            <field name="NUM">500</field>
            </shadow>
            </value>
            <next>
            <block type="debug" id="S(nJ=3w67ayn/{bF]icJ" disabled="true">
            <field name="Severity">log</field>
            <value name="TEXT">
            <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="+;gROYIhif%4n~j.}Nhz">
            <field name="TEXT">test</field>
            </shadow>
            <block type="variables_get" id="@,rV[(ci[u`W6uGM36,]">
            <field name="VAR" id="~J%;V(L_kdEvs*qQ~IBk">Ausgabetext</field>
            </block>
            </value>
            </block>
            </next>
            </block>
            </next>
            </block>
            </statement>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </xml>

            machen im Endeffekt aber beide das gleiche
            iot Brauchst du um das an Alexa weiter zugeben, also hier das Script auswählen

            iot.png

            dann in der Alexa app eine Routine anlegen und das Script auswählen
            wie zum Beispiel,
            Alexa, sind noch Lampen eingeschaltet
            Alexa, ist noch Licht eingeschaltet
            sind dann halt zwei Routinen auf dasselbe Script

            Routine.PNG

            nur über die History geht es nicht so richtig sauber, schreibt ja auch schon dslraser weiter vorne.
            Mehrere Abfragen geht auch ohne Probleme man muss halt nur die Datenpunkte haben oder sie sich selber befüllen.

            wetter.png

            nur eine Temperatur abfragen geht auch ohne Routine oder Script, nur den Datenpunkt im iot hinzufügen

            multi.png

            hier geht dann Alexa, wie ist die Temperatur von Multisensor Wohnzimmer oder auch Alexa, Temperatur Multisensor Wohnzimmer.
            Geräte steuern also An und Aus macht iot es muss auch keine Routine erstellt werden.

            iot2.png

            und zum Schluss immer Alexa, Geräte suchen, nicht vergessen

            und die Luxus variante gibt es von @dslraser dann hier Fenster und andere Geräte zählen opt. Alexa Ansagen

            vielleicht Hilft es ja was weiter

            Gruß Michael

            G 1 Reply Last reply Reply Quote 0
            • Gaspode
              Gaspode @dslraser last edited by

              @dslraser said in Alexa Routinen zum Schalten von Geräten:

              Irgendwie auch logisch, das Alexa mit "ich kenne das Gerät nicht" usw...antwortet, denn sie kennt es ja tatsächlich nicht. Funktionieren wird Dein Script dann trotzdem, weil das ja nur auf die History reagiert...Nur die erste Antwort von Alexa nervt halt.

              Diese Antwort lässt sich zwar nicht komplett unterbinden, aber per Routine verändern.
              Ich löse das so, dass ich für alle Sprachbefehle, die ein Script per History triggern sollen, eine Routine anlege, die als einzige Reaktion eine Sprachausgabe macht. Also z.B. würde die Routine auf den Sprchbefehl "wer hat angerufen" reagieren und als einzige Reakton auf dem angegebenen Echo sagen "Moment, ich sehe nach". Die eigentliche Aussage wird dann per ioBroker Script gemacht, dass auf die History mit "wer hat angerufen" triggert. Die Routine muss übrigens nur ein einziges Mal in der Alexa App angelegt werden.

              G 1 Reply Last reply Reply Quote 0
              • G
                G.Hawk @Gaspode last edited by

                @Alexi
                Das habe ich auch so gemacht, aber hast du mal gesehen, dass der Datenpunkt Summery dann sofort wieder gelöscht wird, wenn eine Routine darauf startet?

                Gaspode 1 Reply Last reply Reply Quote 0
                • G
                  G.Hawk @Michi68 last edited by

                  @Michi68
                  Super danke. Welchen Typ verwende ich denn im IOT wenn ich ein Skript auslösen will bzw was ist der Trigger?

                  M 1 Reply Last reply Reply Quote 0
                  • Gaspode
                    Gaspode @G.Hawk last edited by Gaspode

                    @Martin-0 said in Alexa Routinen zum Schalten von Geräten:

                    @Alexi
                    Das habe ich auch so gemacht, aber hast du mal gesehen, dass der Datenpunkt Summery dann sofort wieder gelöscht wird, wenn eine Routine darauf startet?

                    Es geht doch nur darum, das Event zu triggern. Also per JScript z.B. so:
                    (Sorry, mit Blockly kann ich nicht dienen, aber das Prinzip sollte klar werden)

                    on('alexa2.0.History.json'/*json*/, function (json) {
                    
                        let jsonObj = JSON.parse(json.state.val); 
                        let summary = jsonObj.summary;
                        let echoID = 'alexa2.0.Echo-Devices.' + jsonObj.serialNumber;
                        
                        if (jsonObj.status == "SUCCESS") {
                            if (summary == "wer hat angerufen") {
                                setStateDelayed(echoID+".Commands.speak", "Das geht dich überhaupt nix an!", 1000, true);
                            }
                        }
                        else if (summary == "wer hat angerufen")
                    });
                    
                    G 1 Reply Last reply Reply Quote 0
                    • G
                      G.Hawk @Gaspode last edited by

                      @Alexi
                      OK
                      Die Frage ist folgende:
                      Lege ich einen Datenpunkt an, der z.B heißt: Garagentor öffnen. Diesen wurde ich dann in iot einbinden und diesen als Trigger für ein Skript nehmen?

                      Ich habe drei Systemvariablen in der CCU die stimmen müssen bevor Alexa das Garagentor öffnen darf.

                      Ich schreibe also ein Blockly: Wenn die Bedingungen stimmen, dann Garagentor.state auf wahr.

                      Ich will es nur nicht so kompliziert machen, deswegen die Frage, ob ich dieses Skript einfach so in iot starten kann, also über eine Routine oder ob ich einen Datenpunkt anlege der als Trigger für das Skript dient.

                      Gaspode 1 Reply Last reply Reply Quote 0
                      • Gaspode
                        Gaspode @G.Hawk last edited by Gaspode

                        @Martin-0
                        Wenn ich dich richtig verstehe, willst du doch einen Echo etwas fragen bzw. etwas zu ihm sagen und dann eine von einem Script generierte Antwort bekommen, oder?

                        Wenn ja, kopiere doch mal zum Verständnis folgenden Code in ein JScript:

                        on('alexa2.0.History.json'/*json*/, function (json) {
                            let jsonObj = JSON.parse(json.state.val); 
                            let summary = jsonObj.summary;
                            let echoID = 'alexa2.0.Echo-Devices.' + jsonObj.serialNumber;
                            log (echoID+": "+summary);
                        });
                        

                        Wenn du jetzt zu irgendeinem Echo etwas sagst, wirst du eine entsprechende Ausgabe bekommen. Die kannst du verarbeiten und einen Echos sagen lassen, was du willst (s. Beispiel oben).

                        Das Problem: Da die Echos mit dem Text nix anfabngen können, kommen Meldungen wie "Kenn ich nicht", "weiß ich nicht", etc. Um das abzustellen, musst du für jeden Text, den du sagen willst eine "leere" Routine in der Alexa App anlegen.

                        1 Reply Last reply Reply Quote 0
                        • M
                          Michi68 @G.Hawk last edited by

                          @Martin-0
                          Auf das Beispiel von mir oben bezogen ist der Auslöser

                          trigger.png

                          In iot wählst du das Script selbst aus

                          iot_auswahl.png

                          Sieh dir mal die Screenshots oben genauer an dann verstehst du das schon, ist ganz einfach

                          G dslraser 2 Replies Last reply Reply Quote 0
                          • G
                            G.Hawk @Michi68 last edited by

                            @Michi68
                            Also ich gebe mir wirklich Mühe, aber was macht den der Trigger rescan?
                            Ich will ja nicht bei jeder Aktualisierung alle Skripte laufen lassen.

                            Ich hatte jetzt gedacht ich mach mir einfach einen Datenpunkt als Schalter, binde diesen in den iot ein und benutze ihn bei einer Routine, der dann einfach ein skript ausführt.
                            Oder bin ich total auf dem Holzweg?

                            dslraser 2 Replies Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @Michi68 last edited by dslraser

                              @Michi68 sagte in Alexa Routinen zum Schalten von Geräten:

                              In iot wählst du das Script selbst aus

                              Du schaltest scriptEnabled ? (das ist keine gute Idee)
                              Beim Neustart des JS Adapter oder ioBroker selbst werden dann diese Scripte alle ausgeführt.
                              Das wird auch ausdrücklich nicht empfohlen.

                              M 1 Reply Last reply Reply Quote 0
                              • dslraser
                                dslraser Forum Testing Most Active @G.Hawk last edited by dslraser

                                @Martin-0 sagte in Alexa Routinen zum Schalten von Geräten:

                                Ich hatte jetzt gedacht ich mach mir einfach einen Datenpunkt als Schalter, binde diesen in den iot ein und benutze ihn bei einer Routine, der dann einfach ein skript ausführt.
                                Oder bin ich total auf dem Holzweg?

                                so ist es richtig.
                                (ich nehme immer Button und triggere auf wurde aktualisiert. Im iot Adapter Switch einstellen.)

                                1 Reply Last reply Reply Quote 0
                                • dslraser
                                  dslraser Forum Testing Most Active @G.Hawk last edited by

                                  @Martin-0 sagte in Alexa Routinen zum Schalten von Geräten:

                                  aber was macht den der Trigger rescan?

                                  wenn Du im Alexa2 Adapter Push Verbindung aktiviert hast, dann brauchst Du das eigentlich nicht.

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    Michi68 @dslraser last edited by

                                    @dslraser sagte in Alexa Routinen zum Schalten von Geräten:

                                    @Michi68 sagte in Alexa Routinen zum Schalten von Geräten:

                                    In iot wählst du das Script selbst aus

                                    Du schaltest scriptEnabled ? (das ist keine gute Idee)
                                    Beim Neustart des JS Adapter oder ioBroker selbst werden dann diese Scripte alle ausgeführt.
                                    Das wird auch ausdrücklich nicht empfohlen.

                                    Ja stimmt macht er ab und zu, aber nicht immer ich hatte es aber bis jetzt noch nicht so richtig geschnallt warum. 🤦‍♂️ Danke für den Hinweis, man lernt nie aus.

                                    Ich muss doch noch eine ganze menge umstellen, und es wird immer mehr.

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    806
                                    Online

                                    31.9k
                                    Users

                                    80.2k
                                    Topics

                                    1.3m
                                    Posts

                                    blockly
                                    5
                                    22
                                    1415
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo