NEWS
(gelöst)Geräte in Aufzählung nur bei bestimmtem Zustand
-
Guten Morgen.
Ziel ist es zu bestimmten Uhrzeiten die Lautstärke meiner Echos zu überprüfen und wenn diese vom vorgegebenen Wert abweichen, anzupassen.
ABER es soll nur auf den Devices wo KEINE Musik zu dem Zeitpunkt gespielt wird angeglichen werden:In meinem Blockly gelingt das zwar ansatzweise aber den Datenpunkt "Musik läuft" würde ich wie beschrieben gerne ersetzen.
Quasi: "Ändere das Volume nur auf den Devices mit currentState=false"Hoffe mir kann geholfen werden.
-
nachdem du weißt, wie der dp des volumes ist, musst du den dazu passenden dp für "currentState" finden
volume: alexa2.0.Echo-Devices.Gxxxxxxxx20600W5.Player.volume
currentState: alexa2.0.Echo-Devices.Gxxxxxxxx20600W5.Player.currentStatedu musst also nur den letzten teil "volume" mit currentState ersetzen
das ginge z.b. mit einer kleinen eigenen function
dann hast du die id für den currentState, die du abfrägst. du erstellst dir mit der function einen neue variable, die du dann nutzt
das ganze musst du in dein blockly einbauen - in der schleife ein if, wenn der wert der neuen currentStateID ungleich true ...... -
@liv-in-sky
Erstmal vielen Dank für Deine Unterstützung.Habe jetzt mein Blockly mal angepasst:
Ich bekomme dann beim Start folgendes:
Wo ist mein Fehler ? Vll ist der oberste Block falsch gesetzt?
-
du musst das erzeugen der variablen currentStateID in die schleife rein machen - das wird ja erst richtig gemacht, wenn pv erzeugt ist - gleich als erstes in der schleife - und vor dem if
an der momentanen stelle gibt es kein pv beim start des scriptes
EDIT - die schleife ist das grüne blockly (für jeden wert aus der liste)
-
-
-
oh mann, bin heut echt zerstreut - das muss so sein
return myID.replace("volume","currentState");
currentState statt CurrentState
ich glaub, ich sollte heute keine scripte mehr machen
-
@liv-in-sky said in Geräte in Aufzählung nur bei bestimmtem "Zustand" steuern:
currentState statt CurrentState
Das hatte ich schon geändert.
Aber ich denke ich muss das ganze komplett umbauen denn jetzt funktioniert das ganze zwar aber es wird nur der Echo mit currentState true lautstärketechnisch verändert.@liv-in-sky said in Geräte in Aufzählung nur bei bestimmtem "Zustand" steuern:
ich glaub, ich sollte heute keine scripte mehr machen
Ja, so gehts mir grad auch
-
du musst doch nur deine erste if bedingung wieder einfügen und die nei mit und dazufügen
wenn currentState ist falsch und wert von volume ist ungleich 30
dann soll was gemacht werden
oder verstehe ich was falsch
-
-
Habe mal die Variable in einen Datenpunkt geschrieben:
alexa2.0.Echo-Devices.G091Exxxx52709G6.Player.volume
Hmmmm.... irgendwie scheint der Replace nicht so ganz zu klappen... und es steht nur ein Device drin.
-
du musst den debug anstatt steueredp nehmen - dann siehst du im log, welche dp er findet - bei steuere einen dp wird das immer wieder überschrieben (wegen der schleife) und am ende steht ein wert drin
wobei natürlich der output ein alexa2.0.Echo-Devicesyyyyyyyyyy.Player.currentState sein sollte
machmal ein debug pv auch noch rein und poste das log - ich vermute, du frägst nicht den dp mit volume am ende ab
-
2022-05-02 15:39:00.105 error script.js.common.Amazon.Echos.Lautstärke_nach_Zeit: alexa2.0.Echo-Devices.G090L91182xxxxxN.Player.volume javascript.0 2022-05-02 15:39:00.104 error script.js.common.Amazon.Echos.Lautstärke_nach_Zeit: alexa2.0.Echo-Devices.G090L91182xxxxxN.Player.volume
Habe an 3 Echos das Volume verändert, inklusive an dem was currentState auf true steht.
Alle 3 waren im LOG aufgeführt. -
-
@liv-in-sky
Sodele,
ich habe das ganze jetzt andersrum gemacht, was ja auch mehr Sinn ergibt.
Ich frage per Zeitplan alle "currentState" ab.
Gleichzeitig wird die Variable "volume" gesetzt und zwar mit dem Wert von "currentState", allerdings wird dort dann "currentState" durch "volume" ersetzt. Somit haben wir auch alle Datenpunkte von "volume" abgefragt.Auf allen Devices, welche nichts aktiv abspielen ("currentState") und dort die Lautstärke NICHT meinem Wert entsprechen, wird dann dort das "volume" auf meinen Wert gesetzt.
Schwere Geburt aber der Erfolg gibt einem Recht.Vielen Dank @liv-in-sky