NEWS
Blockly Script für Harmony
-
Hallo, ich bin gerade etwas am verzweifeln. Ich möchte ein einfaches Script erstellen um den Beamer zu Schalten.
Ich benutze folgende Konfiguration:Die Media-Technik befindet sich in einem separaten Raum und wird von einem Harmony Hub gesteuert. Da der Beamer
im Wohnzimmer hängt, habe ich einen zweiten Hub dort stehen. Dieser soll ausschließlich den Beamer und Fernseher Ein/Aus - Schalten. Folgendes einfaches Script sollte dies bewirken, ich habe es ebenfalls mit UND Verknüpfungen probiert mit dem gleichen Ergebnis:Als Trigger dient die Änderung der Activitys im Hub Technikraum. Die abgefragten Datenpunkte sind die einzelnen Activities die einen eingeschalteten Beamer voraussetzen.
Der Beamer schaltet sich beim Umschalten zum Beispiel von Kino Fire-TV auf Kino-Sky immer aus obwohl die entsprechende Aktivität ungleich "0" ist.
Dies ist das andere Script mit dem selben Ergebnis:
Der Timeout wurde eingefügt um dem Hub die Zeit zum Umschalten zu geben und danach erst abzufragen.
Wo liegt mein Denkfehler?
-
@Matten
Warum sich das ausschaltet kann ich auch nicht nach voll ziehen, wobei Dein Timeout kritisch ist. Da fehlt ein "stop timeout" zu Beginn und ein sonst, mit "stop timeout". In Deinem Fall werden sehr viel timeouts gestartet.
Schalte die UND Blöcke mal auf externe Eingänge um, weil so das ganze auch in einer annehmen Größe zu sehen ist. -
@Jan1: Was meinst du mit den UND Blöcken auf externe Eingänge?
-
@Matten
rechte Maustaste auf UND, dann siehst schon was ich meine -
@Jan1 so sieht es jetzt aus:
-
@Matten
Wenn das nicht funktioniert, hast irgendwo ein Fehler bei den Harmony Szenen. -
@Jan1 Eigentlich ist egal, was die Szenen machen, die Werte bestimmen den Zustand der Aktivität und wenn eben nicht alles 0 ist sollte auch nichts passieren. Im Wohnzimmer Hub schalte ich dann den Beamer direkt ohne die Aktivitäten dort.
-
@Matten
Der Beamer ist doch der DP JVC_Projektor_PowerOFF und der geht doch aus, weil eben beim Umschalten wohl eine Deiner activitys wechselt und dann eben nicht mehr "0" ist, somit macht das Blockly genau das was Du da drin hast.
Ich würde das eh alles direkt im IOBroker machen, denn so ist es sehr wahrscheinlich, dass es nicht hin haut und keiner weiß warum. -
@Jan1 ...er soll ja nur ausschalten, wenn alles 0 ist, und dem ist beim Umschalten einer Aktivität nicht so. Ich habe es mit ein Szene in ioBroker probiert mit dem gleichen Ergebnis.
-
@Matten
Wie geschrieben, da ist zu viel unbekannt, was im Hintergrund abläuft. Kannst aber mal die DPs mit dem History Adapter beobachten, dann siehst wann da einer unvorhergesehen mal was macht, was er nicht soll. -
@Matten
ich verstehe das Problem nicht so ganz.
Dein Trigger ist currentStatus. Wenn der 0 ist, dann ist alles aus. Warum fragst Du noch alle anderen auf 0 ab ?
(aber vielleicht habe ich auch was falsch verstanden)
Ich bin ausserdem der Meinung das Dein stop Timeout an der falschen Stelle ist, der muss über das Timout. -
@dslraser
da müsste egal sein, Hauptsache es ist einer drin. Beim Trigger wird dessen Inhalt abgearbeitet und die Reihenfolge sollte da egal sein, so hab ich das zumindest mal in Erinnerung. -
@dslraser Ich ändere das Timeout mal. Da ich im Kino Modus zwischen verschiedenen Aktivitäten umschalte (Sky, Fire-TV, TV), darf/soll sich der Beamer beim Umschalten nicht ausschalten, erst wenn alle Kinoaktivitäten beendet sind. Deshalb muss ich alle abfragen, ob diese auf 0 stehen.
-
@Matten
Du kannst über debug Blöcke eigentlich immer zusehen was passiert. Hier mal mit 10 Sekunden timeout. Es passiert genau das was im "Test Blockly" steht.Logausgabe der Debug Blöcke (die 10 Sekunden passen auch)
So müßtest Du eigentlich rausfinden was Du suchst.EDIT: Beispiel2 mit HUE geändert.
-
@dslraser Super, ist ja eine ähnliche Problemstellung. Danke, ich werde es ausprobieren. Heute mache ich aber erstmal Schluss, hab den ganzen Tag vor dem PC gehangen.
Danke!
-
Also ich bin nicht richtig weiter gekommen. Im Debug Modus zeigt er an, dass der Beamer zwischendurch immer mit ausgeschaltet wird, ich weiß nicht warum und habe irgendwie jetzt ein Brett vorm Kopf.
Dies sind meine Blöcke für das Ein- und Ausschalten des Beamers. Dies soll nur dann passieren wenn beim Wechseln der Activities keine Kino Aktivität mehr eingeschaltet es, ansonsten soll der Beamer nicht geschaltet werden. Einschalten soll nur erfolgen, wenn eine Kino Aktivität eingeschaltet wird, läuft bereits eine, soll nichts passieren. Dafür habe ich für beide Blöcke den Datenpunkt KinoAnAus eingerichtet, welcher dementsprechend beschrieben wird mit false oder true. Beim Debuggen sehe ich, dass dieser innerhalb einer Kino Aktivität trotzdem den Wert ändert. Die Timeouts dienen dazu, dem Harmony Hub Zeit zu geben, die entsprechenden Schaltvorgänge abzuschließen.
Kann mir jemand auf die Sprünge helfen?
Vielen Dank!
Hat sich erstmal erledigt, Danke!
-
@Matten sagte in Blockly Script für Harmony:
dass der Beamer zwischendurch immer mit ausgeschaltet wird
Hattest du mal diverse debug Blöcke an den entscheidenden Stellen eingesetzt um zu sehen was da passiert?
- z.B. Werte x, y,z doch auf 0?
-
@Homoran Hallo Homoran, ich habe die Aktionen in den beiden Harmony Hubs beobachtet, dort sieht auf den ersten Blick alles gut aus, hat aber dann gestern Abend doch wieder nicht funktioniert. Dann werde ich die Debug Blöcke doch mal einbauen müssen. Danke!