NEWS
Lautstärke verringern mit Blockly
-
@BBTown
Ich will die Lautstärke von meinen Heos Boxen Steuern.
Die habe ich in den Objekten hinterlegen können und kann die auch mit dem ändern der Zahlen steuern.Ich möchte nun über IQontrol wenn ich die Taste lauter drücke das mir die lautstärke um 2 erhöht wird.
Wenn ich die Taste leiser drücke soll die Lautstärke um zwei reduziert werden.Ich dachte ich kann dies über ein Blockly lösen und dies dann an den Tasten hinterlegen wie ich es auch schon mit den Befehlen Play und Stop gemacht habe.
Leider musste ich auch eben feststellen das, dass Blockly das ich geschrieben habe auch nicht ganz hinhaut.
Denn er erhöht mir immer den letzten wert um den er die Lautstärke erhöht hat.Kurze Erklärung dazu:
wenn ich die Lautstärke auf 2 habe erhöht er mir bei jedem Tastendruck die Lautstärke um 2 also 4, 6, 8, 10, 12 und so weiter.Wenn ich nun in den Objekten die Lautstärke zurücksetze auf zum Beispiel 2, und ich dann den lauter Knopf drücke springt er mir auf 14 also auf den letzten wert den er durch den Tastendruck bekam.
Also stehe ich nun wieder am Anfang
Noch kurz ein Bild wie das aussieht bei mir
und noch das JaVaScript mit dem ich den Tastendruck ausführe
createState("Eigene_Datenpunkte.LauterBüro", { name: 'Pro7', "role": "button", "type": "boolean", "read": true, "write": true, "smartName": { "de": "o. r. f. ", "smartType": "SWITCH" } });
-
@smarty15
schau doch mal ob das so herum klappt, wenn Du dir erst die aktuelle Lautstärke holst.
Ich bin nur nicht sicher ob das mit der Reihenfolge klappt, einen Versuch wäre es Wert.
-
@BBTown
Klappt leider nicht
wenn ich bei Steure das javascript angebe kommen nur noch Warnings in der Box unter dem Blockly
wenn ich dann die Aktuelle Lautstärke als ID hinterlege schaltet er mir beim Lauter drücken die Lautstärke auf 2. Beim Leiser passiert nichtBlockly habe ich identisch gelassen bis auf das Vorzeichen
also -2Die Idee das er erst die aktuelle Lautstärke sich holt find ich gut und eigentlich auch logisch
nur leider gehts nicht
-
@smarty15
Ich habe den anderen Bereich unangetastet gelassen, weil ich dachte dieser funktioniert bei dir.
Ich kenne auch deinen Triggerpunkt nicht und muss davon ausgehen, dass dieser funtioniert sonst musst Du dir mal testweise einen "Button" anlegenSo sähe die Logik aus
-
IControl weiß ich nicht .....
im normalen Editor gibt es dafür Addition Widgets
dieses hier ist aus dem Adapter Material Design Widget
man übergibt z.B. eine 2 oder eine -2
-
@smarty15
Ich habe es gerad ausprobiert, das funktioniert bei mir wunderbar:
javascript.0 2020-05-02 18:45:18.106 error (1333) script.js.Test._LEER_: Neue Lautstärke ist 13 javascript.0 2020-05-02 18:45:18.105 error (1333) script.js.Test._LEER_: Aktuelle Lautstärke ist 15
-
@BBTown
Habe es nochmals versucht.
Nun springt er mir beim lauter drücken von 2 auf Null dann auf 4 beim erneuten drücken auf Null dann auf 8 und beim nächsten mal wieder auf Null und auf 2 Zurück.
Wenn ich leiser drücke passiert leider nichts.Ich dachte das es beim lauter stellen funktioniert, so wich ich das Blockly eingangs geschrieben habe.
Aber so ging es leider auch nicht, lauter ja aber immer lauter und nicht anhand des aktuellen Wertes und leiser ging es nie -
@BBTown sagte in Lautstärke verringern mit Blockly:
@smarty15
Ich habe es gerad ausprobiert, das funktioniert bei mir wunderbar:
javascript.0 2020-05-02 18:45:18.106 error (1333) script.js.Test._LEER_: Neue Lautstärke ist 13 javascript.0 2020-05-02 18:45:18.105 error (1333) script.js.Test._LEER_: Aktuelle Lautstärke ist 15
Jetzt musst du mir schnell helfen, ich bin noch blutiger Anfänger
Die Grünen Boxen und der Debug output den nutzt um es zu testen oder verstehe ich das falsch? -
@smarty15 sagte in Lautstärke verringern mit Blockly:
Die Grünen Boxen und der Debug output den nutzt um es zu testen oder verstehe ich das falsch?
korrekt, ich provoziere eine "Fehlermeldung" (Typ: Error), damit die Meldung(en) mir schön ins Auge springen und es egal ist welchen LOG-Level ich beim javascript Adapter eingestellt habe
-
@smarty15
lege dir mal einen "Button" Datenpunkt unter0_userdata.0.Test.Triggerpunkt
an
Dann mußt Du beim Testen (Trigger auslösen) immer nur auf das Button-Symbol klicken.
Das kannst Du später immer wieder zum Testen gebrauchen!!
(auch die debug Informationen solltest Du dir angewöhnen bis ein Script sauber läuft) -
@BBTown
ah ok so langsam verstehe ich man testet dann erst so und wenn es klappt macht man es definitiv
eigentlich ganz schlau.Jetzt muss ich nur noch rausfinden wo und wie ich den Triggerpunkt mache.
Logischerweise sollte es dann wenn es so funktioniert auch im scharfen Modus funktionieren?
-
@smarty15
Bei mir funktioniert es zumindest wie erwartet.Wenn die Lautstärke aber niemals negativ sein kann - also "0" der kleinste Wert ist - dann musst Du nur beim Testen auch darauf achten dass in "Volume" ein korrekter Wert steht.
Dann kannst Du nicht "-2" testen, wenn sowieso bereits "0" erreicht ist.Noch einfacher wäre es vielleicht, wenn Du direkt einen Wert angibst.
Also weshalb 3 x um 2 erhöhen, wenn Du auch gleich "6" oder "20" übergeben könntest?
Das kommt darauf an ob Du das über eine App, eine Visualisierug oder z.B. über Alexa steuerst. -
@BBTown
Ok verstehe
werde das mal versuchen, denke so lernt man es am besten wenn man es einfach versucht.Nur eines bekomme ich nicht hin beim Datenpunkt, bei mir zeigt es keinen Button Symbol an
da steht no(false) drin
Ich sehe gerade nicht wo ich das umstellen kannwie gesagt blutiger Anfänger
-
@smarty15
kopiere mal den "RAW" des Datenpunktes hier in code-tags rein
-
Ist das so richtig?
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1588439036385, "common": { "name": "Triggerpunkt", "role": "", "type": "boolean", "desc": "Manually created", "states": "false:no;true:yes", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Triggerpunkt", "type": "state" }
-
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1588439036385, "common": { "name": "Triggerpunkt", "role": "button", "type": "boolean", "desc": "Triggerpunkt zum Testen", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Test.Triggerpunkt", "type": "state" }
Der liegt dann anschließend aber nicht direkt unter
0_userdata.0
sondern unter0_userdata.0.Test
-
@BBTown
Ah jetzt habe ich es bemerkt wo er liegtOK ich werde das mal so versuchen, hoffe es klappt dann.
würd mich sonst noch mal melden wenn das ok ist? -
@smarty15
sicher, es können ja auch andere beiseite springen, das hängt ja nicht von mir ab -
@BBTown
Ok vielen dank -
@BBTown
So nun klappts, na ja mit einem kleinen Schönheitsfehler.
Wenn ich sage erhöhe um 2 erhöht er um 4 die bei lauter und leiser.ich musste noch eine Konvertierung nach Zahl hinzufügen, jetzt funktioniert es.
Teste da mal, hoffe es bleibt soVielen dank für deine Hilfe und die Tipps mit dem Triggerpunkt Debug und Testskrip erstellen