NEWS
Alexa frage stellen lassen
-
Hi,
ich würde gerne mit dem Alexa2 Adapter meine Alexa triggern das diese mir eine Frage stellt. Also ohne aktiv etwas zu sagen. Im Github zum Alexa2 habe ich etwas von bespoken gelesen dies finde ich aber nicht in den Einstellungen?
Alternativ würde ich auch einen Alexa Skill erstellen aber wie ich diesen starten kann habe ich auch nicht gefunden.
Gibt es hier eine Möglichkeit das zu realisieren?
Danke und Grüße
-
Okay nach etwas rumprobieren habe ich es hinbekommen.
Falls noch jemand anders die Frage hat:
Im TextCommand der Alexa "Starte Skill xxx" eintragen dann wird der entsprechende Skill gestartet. Ich habe mir mal auf die schnelle über voiceflow einen erstellt der mir dann mittels Simple API einen Wert zurückschreibt.
Klappte sogar auf Anhieb -
@ronny-gerndt Vielleicht ist es für andere auch interessant. Wenn du dann bitte das, was du gemacht hast, etwas ausführlicher beschreiben kannst. Danke.
-
@ronny-gerndt
Glaube, bei der Skill Erstellung wird es bei vielen (wie auch mir) scheitern. -
Vielleicht könntest du es etwas ausführlich erklären, ich fänd es auch sehr interessant
-
Dann versuche ich das mal etwas genauer zu erklären Bin nur nicht so der Erklärbär
In meinem ersten Testfall wollte ich wenn ich meinen LED Streifen im Wohnzimmer anmache und das Licht noch an ist Alexa fragen lassen ob das Licht ausgeschaltet werden soll.
In meinem Skript das an der LED einen Farbwechsel erzeugt habe ich beim starten folgendes Eingebaut:
if(getState('alexa2.0.Smart-Home-Devices.xxxxx.powerState'/*powerState*/).val) { setState('alexa2.0.Echo-Devices.xxxxx.Commands.textCommand'/*textCommand*/, "Starte Skill RonnyFarbwechsel"); }
Dies startet meinen Skill RonnyFarbwechsel. Diesen Skill habe ich wie bereits geschrieben in voiceflow (voiceflow.com) erstellt. Man kann natürlich auch einen eigenen Coden
Das ganze sieht dann so aus:
Wenn der Skill startet kommt die Frage "Möchtest du Lampe ausschalten?" Bei Ja wird eine Get Request an die Simple API geschickt.
In dem Get Request sieht der Link dann so aus: http://eureDDNSAdresse:8087/set/Ronny.0.LampeAus?user=xxx&pass=xxx&value=true
Dazu muss allerdings die SimpleAPI von Außen erreichbar sein, also man braucht ne feste IP/DDNS Adresse unter der man erreichbar ist und Port 8087 von der SimpleAPI muss offen sein.(Dazu kann ich folgendes Video empfehlen: https://www.youtube.com/watch?v=A5PpgocM3Tc ist zwar recht lange und der beste Erklärbär ist er auch nicht aber hat mir geholfen)Wichtig ist hier noch das voiceFlow mit dem selben Amazon Account verknüpft wird wie die Alexas zuhause. Dann kann man direkt auf den Skill zugreifen ohne das man diesen Veröffentlichen muss.
In ioBroker kann ich dann wieder auf ne Änderung am Wert Ronny.0.LampeAus warten.
on({id: 'Ronny.0.LampeAus'/*LampeAus*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (value) { setState('alexa2.0.Smart-Home-Devices.xxxxx.powerState'/*powerState*/, false); setState('Ronny.0.LampeAus'/*LampeAus*/, false); } });
Ich hoffe das hilft.
Grüße
Ronny
-
@padrino da gibts auf youtube ne Serie von Videos, wie man einen Skill erstellt, war mir allerdings zu kompliziert
-
@ronny-gerndt eine Info: die ioBroker pro Cloud hat inzwischen auch simple api mit drin. Damit kann man einfache Dinge darüber machen ohne ein eigenes simple-api zu exposen. Vllt ne bessere Option?!
-
@apollon77 said in Alexa frage stellen lassen:
eine Info: die ioBroker pro Cloud hat inzwischen auch simple api mit drin. Damit kann man einfache Dinge darüber machen ohne ein eigenes simple-api zu exposen. Vllt ne bessere Option?!
gibts dafür genauere Details?
-
@homecineplexx Habe mal gegoogelt.
You can use following commands (only pro): • [GET]https://iobroker.pro/service/simpleApi/<user-app-key>/get/stateID - to read state value => {"val":103.516,"ack":true,"ts":1604132484682,"q":0,"from":"system.adapter.admin.0","lc":1604132469672,"result":"OK"} • [GET]https://iobroker.pro/service/simpleApi/<user-app-key>/getPlainValue/stateID - to read state value => 103.641 • [GET]https://iobroker.pro/service/simpleApi/<user-app-key>/set/stateID?value=1 - to set state value => {"result":"OK"} Don't forget to add simpleApi to allowed services in the configuration.
Hat das jemand schon mal benutzt? Stimmt die Syntax noch so?
-
@apollon77
Sorry, wenn ich das nicht blicke.
Wird Cloud nicht eigentlich von IOT ersetzt?
Und IOT kann das nicht? -
@ahnungsbefreit Wo hast Du das denn gefunden? Wenn dann muss es noch ins readme vom iot Adapter
-
@padrino neee das IST iot!!
-
@apollon77 Siehe oben verlinkte Seite: https://www.npmjs.com/package/iobroker.cloud
-
@ahnungsbefreit Danke ... Hm .. habe geschaut ... und ja es ist in cliud drin aber noch nicht in iot ... checke
-
@apollon77 sagte in Alexa frage stellen lassen:
@padrino neee das IST iot!!
Oh.
Geht aber nur mit Fernzugriff Lizenz? -
@padrino In dem Fall dann ja ... kläre gerade ob das auf iot soll oder nicht
-
@apollon77 Wäre schon gut, wenn das funktioniert.
-
@apollon77 Ich stelle mich auch sofort als Tester zur Verfügung
-
Also doch besser bei der eigenen Freigabe bleiben?
Sonst muss ich mir das Cloud/iot anschauen. Bin noch Recht neu auf dem Gebiet