NEWS
Scenes Adapter - Anfänger Frage Schaltzustand überprüfen
-
Hallo
Ich habe folgende Scene um meinen Fernseher einzuschalten Erstellt:
1. Homematic Funk-Schaltaktor schaltet ein
2. nach 40000 ms (Startzeit vom Harmony hub) wird die Harmony Activitie Fernsehen ausgelöst.
Das klappt schon mal ganz gut.
Aber wie kann ich das realisieren, bedingt das Schritt eins, also der Funk-Schaltaktor bereits eingeschaltet ist ( ein Zustand soll überprüft werden), das Schritt 2 dann sofort ausgelöst wird?
Und gibt es auch die möglichkeit in dieser Scene das ausschaltet zu realisieren?
Meine Suche in dieser richtung war bis jetzt erfolglos.
In vorraus schon mal Danke!
gruß
Gingo79
-
Poste mal dein Script was du bislang hast.
Das sollte kein Problem sein denke ich. Ich habe schon mehrere Scripte in die Richtung gesehen.
Du musst halt noch zwischen 1 und 2 einbauen das er den Zustand der Geräte checkt und dann entsprechend weiter macht.
-
Hi,
die Einstellungen laufen allein über den Scenes Adapter.
Mit Scripte habe ich bislang keine Erfahrungen und wüsste nicht wo ich ansetzten müsste.
Läst sich das nur über ein Script realisieren?
Gruß
Gingo79
-
Der scenen Adapter kann wie der Name schon sagt szenen schalten. (mehrere Geräte, mit und ohne Verzögerung, mit und ohne Übergabe von Parametern, usw..)
Was du willst ist aber eine Bedingte Ausführung.
WENN Strom an, DANN sofort,
SONST erst 40 Sekunden später.
Ich glaube nicht, dass dies allein mit dem Szenenadapter klappen kann.
Gruß
Rainer
-
Ja, das klingt logisch.
Habe schon nach einer Script Anleitung für Anfänger gesucht, aber nichts gefunden, was mich ansatzweise an mein Ziel heranführt.
Kann mir jemand bitte Unter die Arme greifen, wie das zu realisieren ist?
Oder gibt es vielleicht schon ein ähnliches Script, welches ich versuchen könnte für meine Bedürfnisse anzupassen?
Danke und Gruß
Gingo79
-
Suche hier im Forum mal nach Blockly.
Damit kannst Du scripten ohne scripten zu können.
Grüße
-
Vorschlag:
var idAktor = 'hm-rpc.0.XEQ1234567:1.STATE'; var idTVEin = 'javascript.0.TV-Ein'; // TV soll eingeschaltet werden var Harmony = getState(idAktor).val; // Harmony ist bereit function TVEin() { Hier TV einschalten } on(idAktor, function(dp) { if(dp.state.val) { setTimeout(function() { // Aktor schaltet ein Harmony = true; }, 40000); } else Harmony = false; // Aktor schaltet aus }); on({id: idTVEin, val: true}, function() { if(Harmony) TVEin(); // Harmony ist schon bereit else { setState(idAktor, true); // Aktor Ein setTimeout(TVEin, 40000); // TV verzögert ein } setState(idTVEin, false); });
-
Ich Danke euch für die Ansätze!
Ich werde damit mal nächste Woche experimentieren, da ich zur Zeit über Ostern nicht zu Hause bin.
Aber als erstes muss ich den JavaScript Adapter installieren und dort das Script einfügen?
Gruß
Gingo79
-
Aber als erstes muss ich den JavaScript Adapter installieren und dort das Script einfügen? `
Ja. Außerdem die Datenpunkt-IDs (oberste 2 Zeilen) anpassen ! -
Hi,
so, ich kam endlich mal zum Testen.
Irgendwie, scheitere ich daran, das Script vom VIS aus zu steuern.
Habe zwar schon ein paar Beiträge gelesen in der Richtung, aber für einen Anfänger, habe ich nichts passendes gefunden.
Wäre nett wenn mir da jemand noch helfen könnte.
Im Cloud Adapter habe ich das Script (hoffe das ich alles richtig gemacht habe) , unter Smart Geräte nun zugefügt.
Wenn ich dieses nun mit Alexa ausführe, passiert nichts und im Log vom Script Adapter kommt folgende Fehler Meldung:
javascript.0 script.js.common.TV_einschalten compile failed: SyntaxError: Unexpected identifier
Die Datenpunkt Id's habe ich angepasst.
var idAktor = 'hm-rpc.0.NEQ1729755.1.STATE'; var idTVEin = 'harmony.0.Harmony_Hub.activities.Fernsehen'; // TV soll eingeschaltet werden var Harmony = getState(idAktor).val; // Harmony ist bereit function TVEin() { Hier TV einschalten } on(idAktor, function(dp) { if(dp.state.val) { setTimeout(function() { // Aktor schaltet ein Harmony = true; }, 40000); } else Harmony = false; // Aktor schaltet aus }); on({id: idTVEin, val: true}, function() { if(Harmony) TVEin(); // Harmony ist schon bereit else { setState(idAktor, true); // Aktor Ein setTimeout(TVEin, 40000); // TV verzögert ein } setState(idTVEin, false); });
Wo liegt der Fehler?
Gruß
Gingo79
-
Den Fehler habe ich glaube ich gefunden, bei "Hier TV einschalten" fehlten wohl nur die //
Aber ich komme einfach nicht weiter, wie man das Script via VIS ansteuert.
Ich habe den Datenpunkt auch via Cloud an Alexa eingebunden, aber dadurch aktiviere und deaktiviere den Script, aber schalte das Script nicht.
Wäre nett, wenn mir bitte jemand helfen könnte.