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.
-
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 ...... -
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?
-
@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)
-
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 :-(
-
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

-
@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
-
@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

-

Habe mal die Variable in einen Datenpunkt geschrieben:
alexa2.0.Echo-Devices.G091Exxxx52709G6.Player.volumeHmmmm.... irgendwie scheint der Replace nicht so ganz zu klappen... und es steht nur ein Device drin.
-

Habe mal die Variable in einen Datenpunkt geschrieben:
alexa2.0.Echo-Devices.G091Exxxx52709G6.Player.volumeHmmmm.... 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

-
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.volumeHabe an 3 Echos das Volume verändert, inklusive an dem was currentState auf true steht.
Alle 3 waren im LOG aufgeführt. -
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.volumeHabe 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
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login





