NEWS
Beamer per Sprache ein/aus
-
Hallo, ich klinke mich da mal kurz ein:
-
Mit scriptEnabled zu arbeiten ist der komplet falsche Ansatz. Mach das in einen Trigger rein der auf den Datenpunkt von der Alexa hört.
-
LG_Beamer_Schlafzimmer ist ein Button. Heißt der Wert wird sich nie ändern. Meines wissens nach schickt Broadlink keine Rückmeldung wenn man etwas auf der Fernbediehnung drückt und wenn, dann gehört es in einen seperaten Datenpuntk als Type State.
Um den Button per Alexa zu schalten musst du nur ein einfaches "steuere"-Element für den Button machen. Mehr brauchst du da nicht.
-
-
@thewhobox sagte in Beamer per Sprache ein/aus:
Um den Button per Alexa zu schalten musst du nur ein einfaches "steuere"-Element für den Button machen. Mehr brauchst du da nicht.
Auch für mich zum "hinter die Löffel schreiben"
Einen Button drücke ich in Blockly dann ausschließlich mit "steuere", ohne weitere Angabe.
Falls...
mache : steuere ObjektIDRichtig?
Dann wäre ja mein obiges Beispiel, nur ohne den Teil zweimal "wahr" zu senden richtig, um jeweils getriggert durch den Datenpunkt für Alexa, den Beamer UND das Licht ein und auszuschalten, oder? -
@mehrwiedu Das reicht vollkommen:
Test = Datenpunkt von Alexa
Pause = Button im Broadlink-AdapterDu brauchst kein Falls, da du nur eine option zum Steuern hast.
Sonst so wie du es erklärt hast ja. -
@thewhobox sagte in Beamer per Sprache ein/aus:
@mehrwiedu Das reicht vollkommen:
Test = Datenpunkt von Alexa
Pause = Button im Broadlink-AdapterDu brauchst kein Falls, da du nur eine option zum Steuern hast.
Sonst so wie du es erklärt hast ja.Ah, ok. Ich habe aus dem obigen Beispiel die Soundbar unerklärlicher Weise für Licht gehalten.
Bedeutet hier kommt für den TE nur noch ein zweiter steuer Befehl rein für die Soundbar, wenn die auch wie der Beamer über einen Knopf ein und ausgeschaltet wird.Falls ich aber tatsächlich Licht noch schalten möchte, müsste ich den Alexa Datenpunkt mit Falls noch abfragen. Richtig?
-
@mehrwiedu Wenn du abhängig davon ob du Alexa an/aus sagst was schalten willst, dann musst du noch ein IF rein machen.
Aber! nicht mit "Wert von Objekt" sondern eine Variable mit value anlegen und diese verwenden. Darin ist der neue Wert gespeichert. -
das sind die Werte des DP
-
@mehrwiedu sagte in Beamer per Sprache ein/aus:
Und was ist der Datenpunkt LGBeamer oben aus Deinem Skript, den Du mit wahr und falsch abfragst?
das ist die IP Adresse!
-
@thewhobox sagte in Beamer per Sprache ein/aus:
@mehrwiedu Wenn du abhängig davon ob du Alexa an/aus sagst was schalten willst, dann musst du noch ein IF rein machen.
Aber! nicht mit "Wert von Objekt" sondern eine Variable mit value anlegen und diese verwenden. Darin ist der neue Wert gespeichert.Wow. Jetzt wird es zu einer Lehrstunde und ich möchte Dich bitten, mir das zu verdeutlichen. Solche Abhängigkeiten habe ich nämlich eine ganze Menge bei mir und ich habe das alles auf true or false im Alexadatenpunkt abgefragt und entsprechend der Einstellung dann geschaltet.
Das ist glaube ich so etwas, was ich in der Diskussion mit AlCalzone meinte, dass es immer eleganter geht, als man es selbst "irgendwie" umgesetzt bekommt. -
nein dann hat er false
-
@mehrwiedu Ja da gebe ich dir recht, dass es oft eleganter geht. Einige meiner Skripte muss ich auch noch dahingehend umbauen^^
Das problem dabei kann nur sein, dass du mit "Wert von ObjektID" noch den alten wert bekommst und nicht den neuen.
Ich meinte ja auch nur, dass es in diesem Beispiel nicht viel Sinn macht, wenn er nur den Beamer an/aus schalten möchte.
Man könnte die Variable "value" dann auch einfach weitergeben (wenn alles im IF bei aus auch ausgeschaltet werden soll, oder man negiert es)
-
@thewhobox sagte in Beamer per Sprache ein/aus:
@mehrwiedu Ja da gebe ich dir recht, dass es oft eleganter geht. Einige meiner Skripte muss ich auch noch dahingehend umbauen^^
Das problem dabei kann nur sein, dass du mit "Wert von ObjektID" noch den alten wert bekommst und nicht den neuen.
Ich meinte ja auch nur, dass es in diesem Beispiel nicht viel Sinn macht, wenn er nur den Beamer an/aus schalten möchte.
Man könnte die Variable "value" dann auch einfach weitergeben (wenn alles im IF bei aus auch ausgeschaltet werden soll, oder man negiert es)
Ahhhhh...jetzt habe ich das verstanden. Das ist wirklich elegant.
Und eine wirklich lehrreiche Unterhaltung, weil mir die Syntax gar nicht bekannt war.
value als Variable nimmt hier also den Wert von Objekt Test an und gibt ihn dann an Pause und Switch state weiter.
Genial. Danke für diese Erhellung.Damit spart man sich ja doch einiges an Objekten in dem Blockly. Das kann ich bei mir mehrfach anwenden.
Ich habe bei mir immer auf den Alexadatenpunkt getriggert und jeweils noch abgefragt, ob true oder false und entsprechend dann gesteuert.
Und logisch...mit dem Alexadatenpunkt, wenn ich ihn per Phrase AN und AUS schalte, gebe ich den gewünschten State ja bereits vor, sofern damit auch nur ein- und ausgeschaltet werden soll. Sind Lampen im Spiel, die auch nur an und ausgemacht werden sollen, werden die einfach negiert (getoggled).Bei anderen Schaltzuständen (Color.Temperature) oder differenten Werten zu true und false muss aber dann wieder eine IF Abfrage rein, oder ich definiere sie als eigene Variable und gebe sie dann weiter.
@MyzerAT
Das ist dann exakt die Lösung für Dein Vorhaben.
Pause musst Du mit dem Button des Beamers austauschen und Switch state mit dem Button der Soundbar.
Den Datenpunkt Test (mit Deinem Wunschnamen) musst Du Dir dann natürlich noch anlegen und den als Gerät in Alexa integrieren. -
Im Script muß Beamer immer true sein , bei false sendet der BL nicht.
Es ist -> wahr <- er möchte den Beamer ausschalten. -
Sag ich doch
Man könnte auch im Broadlinkadapter einen "state" anlegen, den man mit dem smart home Gerät verbindet und man für "aus" und "an" jeweils den selben Befehl hinterlegt.
Für mehr Geräte, alternativ eine Szene.
-
und wie mach ich es jetzt richtig ^^ bitte mal ein Beispiel
-
Weniger und einfacher ist manch einmal mehr.
Erst Wege testen.
Lege dir einen Datenpunkt als level an ( Beispiel ist hier Beamer ) der aus Alexa heraus per Sprachbefehl true / false schaltet.
Der weitere Weg siehe Bild.
Verbessern kannst du später immer noch.
Das sollte erst einmal laufen.Damit hast du drei Debug Punkte zur Fehlersuche.
ALEXA schaltet den Datenpunkt Beamer per Sprachbefehl true / false.
Im BL den Beamer per Button schalten.
Datenpunkt per Hand true / false schalten.Die Value aus der Objekt ID übernehmen geht aus meiner Sicht nicht.
-
super echt nett von dir, kämpfe aber gerade an der Zigbee Front, schau es mir aber sicher an und meld mich wieder, THX ^^
-
@Ralla66
So habe ich das auch bisher gemacht.
Alternativ, einen State im Broadlink adapter anlegen, dann braucht man zu einfachem Schalten gar kein Skript mehr.
Der Adapter erzeugt einen 3. Datenpunkt unter "states". -
@Ralla66 sagte in Beamer per Sprache ein/aus:
Die Value aus der Objekt ID übernehmen geht aus meiner Sicht nicht.
Funktioniert perfekt. Ich habe gerade alle meine Skripte darauf umgestellt.
Value nimmt den State des Triggers an und reicht ihn an das Objekt weiter. -
was wird hier geändert ?
und was ich auch noch nicht verstehe, ich hab in meinem Script den Datenpunkt auf der IP des Beamers so weiss das Script ob er läuft oder nicht, das fehlt bei dir komplett ?!
-
@MyzerAT scriptEnabled sollte von niemandem in einem Script verwendet werden. Das sind Datenpunkte die nur für die Benutzeroberfläche da sind!
Erstelle einen Datenpunkt unter JavaScript.0.schalteBeamer, den du dann im iot Adapter per Alexa schalten kannst.
Den Trigger stellst dann auf eben den Datenpunkt und benutzt dann die variable "value" (Alexa befehl an oder aus) den du dann weiterverarbeiten kannst.Was du mit "Datenpunkt auf der IP des Beamers" meinst habe ich bis heute nicht verstanden... Welcher Datenpunkt? Welcher Adapter hat den Datenpunkt erstellt? Was hat die IP damit zu tun?