NEWS
Per Alexa vis views steuern
-
Hallo zusammen
Habe gerade gelesen,das man Views auch mit Alexa umschalten kann.Nur leider bin ich noch Newbie und habe die Vorgehensweise noch nicht ganz verstanden. Das erste Problem was ich habe ,in meinen Views finde ich keine Namen obwohl sie Status und Info heißen. Alexa Anbindung läuft bei mir über Node.red. Funktioniert auch mit Licht usw. prima.
Aber wie kann ich da ein View einbinden um die beiden Views zu wechseln.
StandartView ist Info. Von dort würde ich gern auf View Status über Alexa umschalten und natürlich auch wideer zurück.
Wie bekomme ich das hin?
Volker
1400_vis.jpg -
hier ein beispiel script - funktioniert bei mir
on({id: "controll-own.0.HANDY.FlurAnwesenheit"/*HANDYKLINGELT*/, val:true}, function (obj) { var value = obj.state.val; /*if (getState("controll-own.0.WHATSAPP").val === true */ setTimeout(function () { setState("vis.0.control.instance", "f799e7b9"); setTimeout(function () { setState("vis.0.control.data", "3galaxy"); }, 1000); setTimeout(function () { setState("vis.0.control.command", 'changeView'); }, 2000); }, 15000);
die control.instance-id habe ich aus der vis app auf dem handy ausgelesen
hoffe das hilft weiter
achja: die 15000 sind eine zeitverzögerung bis die vis-app auf dem handy geladen ist
-
Hallo
Danke für die schnelle Antwort.
Leider verstehe ich da nur Bahnhof. Ich bin noch Newbie.
Das ist mir echt zu hoch. Wie hast du die ID aus der Vis-APP ausgelesen. Ich nutze die App auch, allerdings auf einem Tablet.
Wie hast du die Anbindung zu Alexa gemacht?? Fragen über Fragen?
Volker
-
das auslesen ist einfach
öffne vis-app (vom googleplay store installiert)
drücke auf die 3 punkte oben links
jetzt bist du in der configuration - darin kann man die view (das project )auswählen und etwas weiter unten steht die instanz. diese instanz musst du in das script einfügen. wenn die app ersteinmal geöffnet ist und du die das zu öffnende project geladen hast(also die view, die du anzeigen willst), kannst du die instanz auch unter objecte.vis.0 … instanz auslesen (im iobroker admin).
das script kopierst du und legst im javascript-adapter ein neues script an und benennst es. dann kopierst du meinen code hinein und änderst die instanz (bei mir ist die "f799e7b9").
jetzt must du noch bestimmen, wann du die view eigentlich ändern willst. bei mir ist das in der ersten zeile des scripts definiert.
on({id: "controll-own.0.HANDY.FlurAnwesenheit"/*HANDYKLINGELT*/, val:true}, function (obj) {
wenn also HANDY.FlurAnwesenheit auf true geschaltet wird - wird das script gestartet und die die view nach 15 secunden auf dem tablet (mit der instanz "f799e7b9") geändert.
das object HANDY.FlurAnwesenheit wird bei mir durch tasker geschaltet (eine app zum programmieren für android) tasker erkennt, das ich im flur bin und schickt HANDY.FlurAnwesenheit = true. wie du dies schaltest liegt natürlich an deiner anwendung und situation. ich bin auch ein javascript anfänger - habe mir das alles aus den forum zusammen kopiert. du könntest auch das oben beschriebene object abfragen - also wenn die instanz unter objecte. vis.0 … sich aktualisiert (anmeldet) und eine bestimmte instanz hat :schalte die view um.
öffne mal die vis-app und logge dich in ein project ein - beobachte dabei die objekte unter vis.0. dann siehst du was passiert
fast vergessen. für alexa einfach einen neuen schaltpunkt definieren - wie für alle anderen lampen usw. auch. "Alexa, schalte ansicht ein" wäre dann z.b. der sprachbefehl. jetzt kannst du in der ersten zeile des script diesen punkt eingeben. geht der auf true wird view geändert. Alexa, schalte ansicht aus - kannst du erstmal leer lassen oder einfach das script kopieren und mit false steuern und eine andere view wählen)
-
Hallo
Danke für die ausführliche Erklärung. Die ID habe ich gefunden,das war kein Problem.
Dein Script habe ich auch übenommen,allerdings kommt da eine Fehlermeldung in meinem Adapter.Ich habe auch schon meine ID und die Viewname eingetragen.
Ich hoffe es ist richtig.
Nur den Rest mit der Alexa-anbindung habe ich noch nicht verstanden.
Ich muß doch erstmal irgenwo ein Gerät anlegen , welches ich dann mit Alexa local verknüpfen kann. Aber wo lege ich das Gerät an??
Volker
1400_script.jpg -
controll.own.HANDY…. existiert bei dir nicht
lege mal einen neuen Datenpunkt an - diesen kannst du dann erstmal von hand schalten, damit du siehst, was passiert.
man kann dann den datenpunkt auf false oder true setzen (im admin von iobroker).
im webbrowser (iobroker) öffne Objekte - am besten schau mal in youtube ein paar videos an - als beispiel https://www.youtube.com/watch?v=TOxKS3MdrgU - ZEIT bei 3:12 ich habe auch viel über youtube gelernt
es gibt einige anfänger videos.
anschliessend kannst du den neuen Datenpunkt in das script eintragen - das ist ein wenig zuviel um alles schriftlich zu erklären.
auch zu empfehlen: https://www.youtube.com/watch?v=BkJRS9Z … qKmupMxWKx
eine ganze reihe zum einstieg
-
hallo
Erstaml vielen Dank für deine Mühe.Mit den videos war eine gute Idee.
Leider habe ich es nicht hingekommen. Den Datenpunkt, bzw ich habe zwei Geräte erstellt . Das hat funktioniert.
Wenn ich dieses Gerät jetzt mit Node-Red verknüpfen will ,finde ich es nicht. Ich habe Iobroker schon neu gestartet aber die beiden Geräte tauchen nicht auf.
Was habe ich falsch gemacht???
Volker
1400_auswahl.jpg
1400_objekte.jpg -
hi volker,
ich dachte du benutzt den cloudadapter für die alexa anbindung - node-red steht zwar bei mir auf der "lern-liste" habe ich aber noch nichts damit gemacht. habe nur irgendwo gelesen, dass manche alexa mit node-red verbinden. als anfänger habe ich den cloudadapter gewählt - da gibt es auch videos mit der einrichtung.
mir persönlich reicht das iobroker system mit allen adaptern und javascript vollkommen aus um mich an meine wissensgrenze zu bringen.
vielleicht hier: http://forum.iobroker.net/viewtopic.php?t=11302
-
Hallo
naja ich hatte mit dem Cloudadapter immer wieder Probleme,seit ich die Anbindung über Node-Red gemacht habe, sind die Probleme weg.
Ich habe Dir mal ein Bild mit angehängt. Auf der linken Seite steht das Gerät was unter Alexa zu finden ist,rechts dann das Gerät aus Iobroker was gesteuert werden soll.
Und genau da finde ich das neu erstellte Objekt nicht.
Dies Objekt würde ich dann auch in Dein Script eintragen. Nur wie??
Meine Idee war folgende.Ich erstelle unter den Objekten ein neues "Viruelles" Gerät,was ich schalten kann. Geschaltet wird es über Alexa.
Den Zustand true oder False überwache ich mit einem Script.
function seitenwechsel(){ setState('vis.0.control.instance', 'FFFFFFFF'); setState('vis.0.control.data', 'Info'); // view2 steht für den Namen der View die du anzeigen willst wenn was passiert setState('vis.0.control.command', 'changeView'); } // Abfragen des gewünschen Sensors bspw. Fensterkontakt // wenn der Status auf true wechselt wird die view2 angezeigt on("hm-rpc.0.NEQ0530536.2.STATE", function(dp) { if(dp.state.val) seitenwechsel();});
und statt dem Fensterkontakt wollte ich das Virtuelle Gerät eintragen. Funktioniert das so überhaupt oder bin ich da auf dem Holzweg???
Volker
1400_node-red.jpg -
bin mir nicht sicher aber füge mal switch als role in deine objecte ein - du kannst das im admin direct anklicken (siehe mein bild - an der stelle an der switch steht mit der maus drauf klicken und auswählen)
4447_image_3.png -
echt cool - habe es ausprobiert - hatte nodered schon installiert - das funktioniert - wieder was gelernt
seit die an den servern gearbeitet haben läuft auch die cloud bei mir ohne aussetzer (seit einer woche oder so)
-
Ist ja auch hier http://forum.iobroker.net/viewtopic.php?f=37&t=11302 gut beschrieben.
So habe jetzt Switch eingefügt, aber ich finde das Gerät nicht.
Was habe ich falsch gemacht.??
Volker
1400_switch.jpg -
eigentlich benötigten wir einen profi ! ich erkenne keinen fehler. der unterschied zwischen unseren bildern ist, dass bei dir alexa.0 ein switch ist. ich habe die "ordner" als device angelegt und die erst die datenpunkte selbst als datenpunkt mit der role switch . ich habe nie überprüft, ob das so sein soll, wie ich es gemacht habe - aber es funktioniert.
-
Na dann hoffe ich mal, das sich ein Profi das mal ansieht.
Ich danke Dir trotzdem für Deine Mühe
Volker
-
wahrscheinlich liest einer der profis mit und schütelt die ganze zeit den kopf über unsere versuche
-
Das glaube ich auch
Ich habe jetzt den Ordner nochmal als Device angelegt, aber ich finde es im Node-Red immer noch nicht.
Volker
1400_device.jpg -
starte mal den adapter (node red) neu - ich kenne das vom vis adapter -manchmal dauert es eine weile bis die datenpunkte sichtbar werden
du kannst in node red auch einfach den pfad eingeben - ohne auswählen - probier das mal
Alexa.0.Alexa_Status
ps: ich benutze keine leerzeichen beim anlegen von datenpunkten (ist nur ein gefühl keine bestätigte regel!)
-
He
Genau das war es ,jetzt habe ich meine Datenpunkte. Komisch ein Neustart von Iobroker hat nichts gebracht, aber nein Neustart von Nod-red Adapter …
Jetzt funktioniert es auch mit meinem Script.
function seitenwechsel(){ setState('vis.0.control.instance', 'FFFFFFFF'); setState('vis.0.control.data', 'Status'); // view2 steht für den Namen der View die du anzeigen willst wenn was passiert setState('vis.0.control.command', 'changeView'); } // Abfragen des gewünschen Sensors bspw. Fensterkontakt // wenn der Status auf true wechselt wird die view2 angezeigt on("Alexa.0.Alexa_Status", function(dp) { if(dp.state.val) seitenwechsel();});
Das Script verwende ich eigentlich ,um das View zu wechseln wenn Post in den Briefkasten geworfen wird.
Funktioniert aber auch mit Alexa.
Vielen Dank für Deine Hilfe
Volker
-
yuhuu
was hast du im briefkasten für einen sensor?
-
Ich habe 2 Mikroschalter über einen HM-SCI-3-FM geschaltet. Wirft jemand Post über die Klappe oben ein wird Schalter 1 geöffnet.
Nehme ich die Post raus Klappe vorn ,wird Schalter 2 geöffnet. Der Rest ist nur eine SV. Kann Dir auch gern Bilder schicken.
Volker