NEWS
Script zum Ausschalten, wie sag ich es bloß Alexa
-
Wenn du im on- bzw. subscribe-Trigger auf 'change: "any"' statt 'change: "ne"' (not equal) abfragst, kannst du das jeweilige Script immer triggern, egal was der alte Zustand war, d.h. auch wenn sich der Trigger-Status nicht ändert aber von Alexa aktualisiert wird.
-
Ich habe das mit blockly-script und scene realisiert.
Das Script sieht so aus (für einen vuplus Receiver):
Das blaue (falls -> mache) braucht mit der folgenden Scene gar nicht gemacht werden, kann also weggelassen werden (dient nur als Hosenträger zum Gürtel).Die Scene sieht so aus:
Die Scene wiederum ist im cloud Adapter unter smart Geräte und hört auf "Fernsehgerät".Jetzt führt der Befehl "Alexa, schalte Fernsehgerät an" und "Alexa, schalte Fernsehgerät aus" jeweils zum selben Ergebnis, nämlich:
Script wird gestartet und zwei Sekunden später wieder beendet. Dadurch ändert sich der Zustand des Fernsehgeräts (in Wirklichkeit nur der vuplus Receiver): AN wird AUS oder AUS wird AN.
Warum schalte ich das Script wieder aus? Weil sonst der Script-Adapter sich aufhängt, wenn der vuplus nicht erreichbar ist. Deswegen hatte ich zuerst noch die blaue falls-Abfrage eingebaut. Aber Ausschalten des Scripts nach zwei Sekunden ist noch besser (glaube ich).
-
Kurze Zwischenfrage: Kennt deine Dreambox unterschiedliche Commands für Aus und Ein oder toggled "command=116" den Aus/Ein-Status?
-
Btw., schönes Beispiel von Bluefox: http://forum.iobroker.net/viewtopic.php … 764#p50778
Sollte bei dir urlOn und urlOff identisch sein, kannst du dir die if-Abfrage natürlich sparen und einfach den request schicken.
-
Kurze Zwischenfrage: Kennt deine Dreambox unterschiedliche Commands für Aus und Ein oder toggled "command=116" den Aus/Ein-Status? `
toggled zwischen Aus/Ein -
Btw., schönes Beispiel von Bluefox: http://forum.iobroker.net/viewtopic.php … 764#p50778
Sollte bei dir urlOn und urlOff identisch sein, kannst du dir die if-Abfrage natürlich sparen und einfach den request schicken. `
Danke für die Anregung. Hab das schon mal gelesen den Abschnitt. Muss ich mal testen. -
toggled zwischen Aus/Ein `
Wenn er nur toggled und du auch den aktuellen Status deiner Dreambox nicht abfragen kannst, bleibt dir eh nur die Möglichkeit, dass du immer togglen lässt, unabhängig wie der aktuelle Dreambox-Status ist und unabhängig, ob du Alexa den Befehl zum Ein- oder Ausschalten gibst:var request = require('request'); var url = 'http://192.168.178.9/remotecontrol?command=116'; createState('javascript.0.myStates.alexa.dreambox', { smartName: 'Fernsehgerät', role: 'switch', write: true, read: true, type: 'boolean' }, function () { on({ id: 'javascript.0.myStates.alexa.dreambox', change: 'any', ack: false }, function (obj) { request(url); log('Alexa: Toggle "Fernsehgerät"'); }); });
-
Hallo, danke für die Tips, das Script von Bluefox kannte ich schon.
Und ja, die Dream kennt definierte httprequests für aus und ein. Bei der VU sollte es das gleiche sein, ist ja auch Enigma2
Aus = http://192.168.0.106/web/powerstate?newstate=5 Ein = http://192.168.0.106/web/powerstate?newstate=4 Status =http://192.168.0.106/web/powerstate (gibt false oder true zurück) Toggeln = http://192.168.0.106/remotecontrol?command=116
Da ich ja eigentlich nur ein Script nutzen wollte und das auch in Szenen bin ich mit Toggle nicht so einverstanden.
Bei der Szene Sendeschluss soll er mir alles ausschalten, Heizung, Licht, elektronische Geräte und verzögert Alarmanlage scharf.
Wenn ich da Toggeln würde kann es passieren das die Dream wieder eingeschalten wird.
Deswegen wär mir am liebsten ich hätte eine Variable in die ich den Powerstate reinschreibe.
Die Variable kann ich ja dann in den Szenen explizit setzen.
Hier noch das Enigma2 Wiki
https://dream.reichholf.net/wiki/Enigma … cellaneous
Gruß Andreas
-
Hallo, danke für die Tips, das Script von Bluefox kannte ich schon.
Und ja, die Dream kennt definierte httprequests für aus und ein. Bei der VU sollte es das gleiche sein, ist ja auch Enigma2
Aus = http://192.168.0.106/web/powerstate?newstate=5 Ein = http://192.168.0.106/web/powerstate?newstate=4 Status =http://192.168.0.106/web/powerstate (gibt false oder true zurück) Toggeln = http://192.168.0.106/remotecontrol?command=116
Da ich ja eigentlich nur ein Script nutzen wollte und das auch in Szenen bin ich mit Toggle nicht so einverstanden.
Bei der Szene Sendeschluss soll er mir alles ausschalten, Heizung, Licht, elektronische Geräte und verzögert Alarmanlage scharf.
Wenn ich da Toggeln würde kann es passieren das die Dream wieder eingeschalten wird.
Deswegen wär mir am liebsten ich hätte eine Variable in die ich den Powerstate reinschreibe.
Die Variable kann ich ja dann in den Szenen explizit setzen.
Hier noch das Enigma2 Wiki
https://dream.reichholf.net/wiki/Enigma … cellaneous
Gruß Andreas `
Funktioniert auch an der vuplus. Danke für den Hinweis! -
Hallo allerseits!
Zunächst mal auch von meiner Seite ein fettes Danke an alle, die hier eine Klasse Arbeit leisten - allen voran natürlich Bluefox
Meine Programmierkenntnisse sind leider sehr begrenzt, aber dank dem Forum kann man ja zum Glück auch so allerhand auf die Beine stellen.
Da ich selber etwas gebraucht habe das Ein- und Ausschalten von meiner VU+ zu realisieren hier mal eine Anleitung für alle, die es noch nicht hinbekommen haben:
-
Zunächst muss man unter "Objekte" ein neues Objekt vom Typ Gerät und in diesem Gerät ein neues Objekt vom Typ Datenpunkt anlegen. Achtung: Nur einen Datenpunkt anlegen funktionierte bei mir nicht (daran bin ich zunächst verzweifelt). Mein Datenpunkt habe ich "Fernsehen" genannt
-
Den Datenpunkt habe ich dann wie üblich in Alexa geladen
-
Dann habe ich mit dem Skripteadapter folgendes Blockly-Skript erstellt
Wenn ich nun über Alexa den Datenpunkt aktualisiere, wird das Skript ausgeführt. Je nachdem ob ich den Datenpunkt auf "wahr" schalte (über den "An" Befehl) oder eben auf "fasch" (über den "Aus" Befehl) wird die VU+ an- oder ausgeschaltet. Klappt super und funktioniert grundsätzlich mit allen Geräten die eigene Befehle für "An" und "Aus" haben und nicht nur den Toggle Befehl. Schalte z.B. auch meine Musik über meinen Denon AV-Receiver im Wohnzimmer oder in der Küche an und aus
Eine extra Szene braucht man also gar nicht, geht alles über ein einziges Skript!
Kleiner Tipp am Rande: Da die VU+ HDMI CEC unterstützt stellt sie mir automatisch auch meinen AV-Receiver und meinen Samsung TV mit an. Den Samsung TV kann man ja leider über einen Netzwerkbefehl nicht aus dem Standby holen, über HDMI CEC funktioniert das aber astrein. Habe auch Befehle für die einzelnen Sender hinterlegt und somit wird die Fernbedienung nicht mehr benötigt
So, hoffe ich konnte damit auch mal jemandem helfen.
Grüße
-
-
Moin allerseits,
Dburner, ist Toll dein Blockly, genau so habe ich es mir vorgestellt.
Allerdings würde ich die Variable Fernsehen gerne durch den powerstate der Box vorher füllen lassen,
der gibt ja True oder False zurück.
Es geht alles gut bis zu dem Moment wo dann doch einmal jemand die Box mit der Fernbedienung
ein oder aus schaltet. Denn dann stimmt ja deine Variable nicht mehr. Dann musst du explizit noch
einmal mit der FB schalten das es wieder stimmt.
Gruß Andreas
-
Moin Andreas,
das ist so nicht richtig, es funktioniert auch, wenn du zwischendurch die Fernbedienung zur Hand nimmst! Je nachdem ob du Alexa "Schalte an" oder "Schalte aus" sagst, wird entsprechend meines Skripts ja "an" oder "aus" geschaltet. D.h. unabhängig davon ob die VU+ an oder aus ist. Gibt also folgende Szenarien:
-
VU+ ist aus –> Befehl "an" wird gesendet --> Vu+ geht an
-
VU+ ist aus --> Befehl "aus" wird gesendet --> nichts passiert, da bereits aus ist
-
VU+ ist an --> Befehl "aus" wird gesendet --> Vu+ geht aus
-
VU+ ist an --> Befehl "an" wird gesendet --> nichts passiert, da bereits an ist
Habe es schon am Laufen und es funktioniert. Ein Abfragen des powerstate ist nicht nötig. Das brauchst du nur, wenn dein Gerät nur über ein Kommando für "an" und "aus" verfügt (also eine Power-Toggle Taste).
Gruß Christian
-
-
:mrgreen: :mrgreen: :mrgreen:
hast recht Dburner. Dadurch das er die Variable beschreibt, auch wenn es der gleiche Wert ist der da rein kommt, ist doch
eine Änderung des Datenpunktes gegeben.
Also es geht bestens, Besten Dank 8-)
Gruß Andreas
-
Hallo
Bei mir funktioniert es nicht richtig , muss man in der Box noch etwas einstellen?
Das Script schaltet
Gesendet von iPad mit Tapatalk Pro
-
Moin Cucky,
hast du es erst einmal im Browser probiert?
Habe Newnigma2 auf meiner und da haben die bei einem Update die
Sicherheitsrichtlinien für Browser hoch geschraubt. Das musste ich erst
einmal einige Einstellungen wieder zurück setzen. Dann ging es wieder.
Also mal im Browser probieren was er sagt bzw. tut.
Gruß Andreas
-
Moin Cucky,
hast du das Vu+ Webinterface installiert? Glaube ohne geht es nicht…
Gruß
-
Guten morgen
Webinterface ist installiert , im Browser geht es auch
Nur Alexa schaltet auch das Objekt
Vielleicht habe ich einen Script Fehler ?
~~<link_text text="https://uploads.tapatalk-cdn.com/201703 ... 9fcea3.png">https://uploads.tapatalk-cdn.com/20170302/526793f80fd6e6019e8e5ff1a59fcea3.png</link_text>" />
Gesendet von iPad mit Tapatalk Pro~~
-
Vielleicht ohne den Port 81? Der ist bestimmt nicht bei allen Receivern gleich.
-
Auch möglich. Was ich in solchen Fällen erstmal mache: Erstelle mal ein einzelnes Skript nur mit dem Block "Request URL" und teste manuell (Skript ausführen), ob es funktioniert.
Geht das nicht, weiß du sicher, dass es am HTTP Befehl selber liegt.
Geht es schon, weißt du, dass es am "drumherum" (Datenpunkt o.Ä.) liegen muss.
-
Danke für den Tipp
HTTP selber geht , irgendwie muss der Fehler am Objekt liegen .
Habe jetzt alles neu auf einen Raspberry laufen , leider das selbe Problem. Komisch das Objekt ( Fernseher ) wird von Alexa geschaltet
Gesendet von iPad mit Tapatalk Pro