Volume Sonos instellen via afstandsbediening

Ik heb op dit forum al gezocht en kwam alleen een flow tegen welke het volume in/oud fade, dit is niet echt iets wat ik zoek.

Ik heb een klikaanklikuit afstandsbediening en ik wil graag een knop toewijden aan +10 volume (tot 100 max) en een knop aan -10 volume (tot 0 minimum).
Ik heb dit al gemaakt middels een BetterLogic value welke minimaal 0 en maximaal 100 was en met elke druk op de knop werd de waarde 10 meer of minder. Echter pikt de Sonos de ingestelde waarde 0 - 100 niet. Het lijkt erop dat de ingestelde waarde in procenten aangeboden moet worden, alleen heb ik geen idee hoe ik dat aanvlieg.

Daarnaast heb ik nog een klein probleempje en dat is dat mijn Sonos One geen soundboard geluidjes afspeelt. De flow test geeft wel een groen vinkje maar de sonos speelt het geluid niet af. Moet ik hiervoor nog iets activeren?

De Sonos werkt met 0.0 tot 1.0. En misschien bekijk je die waarde eens als je hem veranderd hebt. De waarde moet dus precies 0.1 zijn, niet 0.13985889999.
In de mobiele app kan je bij apps/better logic/configure app de waardes bekijken.

ik heb het nu een heel eind werken, maar nu komt er inderdaad steeds een waarde met een heleboel cijfers achter de komma, waar komen die vandaan dan? In mijn berekening staat alleen + 0.1 en - 0.1.

Dat zou je dan even af moeten ronden in je BL variable. Met de Round functie.

Ik heb even zitten zoeken, maar waar vind ik die Round functie in better logic dan?

Die heet Execute mathjs expression.
En daar vul je zoiets in als :
round(value+0.1,1)
En daar onder de naam van je variable

Deze flow heb ik extra gemaakt, maar elke wijziging blijft hij afronden naar 0.1.
Ik heb me even verdiept in Math JS maar daar kom ik alleen voorbeelden tegen boven 1, daar kom ik geen voorbeelden tegen waar getallen onder 1 afgerond worden op 1 decimaal achter de komma.

Maar je moet de huidige waarde optellen bij de waarde van de verhoging van de knop.
Dus huidige waarde + 0.1
Dan krijg je dus :
round(Huidigewaarde+0.1,1)
Als je dan met de knop +0.1 doet dan krijg je :
round(0.1+0.1,1)
En daar komt dan 0.2 uit ipv 0.23409889999

Nou dat heb ik werkend, de waarde is nu consistent 0.0 t/m 1, enkel heb ik nu nog het probleem dat de sonos tot 0.4 meegaat in volume maar daarna niet meer, hij lijkt dus niet harder te gaan als 0.4… :roll_eyes:

Dat is vast een instelling in je Sonos app. Maar eens kijken bij instellingen/instellingen kamer. Kan je een max volume instellen en die zal dan wel op 40% staan. Sonos app dus niet in Homey.

De volumelimiet staat uit / op 100%. In de sonos app en de windows app kan ik hem ook gewoon harder dan 40% zetten, daarom vind ik het zo vreemd.

Hmmm. Dan maar eens kijken wat je variabele zegt als je hem harder wilt zetten.

de waarde hoogt netjes op van 0.1 naar 0.2 t/m 1.0 dus dat is het vreemde van het verhaal.

JKijk even in deze thread:

Ik heb daar een volumeknop voor chromecast beschreven.
Had in het begin hetzelfde probleem. Als je in logic optelt onstaan er soms waarden met vele cijfers achter de comma waar chromecast (en blijkbaar Sonos ook) niet mee om kan gaan.

De hierboven voorgestelde oplossing met round functie heb ik daar beschreven…

Die flows heb ik (ik mis in dat topic de ‘begrenzer’ op 0 en 1 zodat je niet onder 0 en boven 1 kan) maar het probleem dat de Sonos niet boven 40% gaat is nog steeds aanwezig terwijl de waarde in BL keurig van 0 naar 1 gaat in 10 stapjes.

Misschien heb je hier wat aan. Zelf heb ik een Sonos beam. De afstandsbediening van je tv kan je koppelen aan je Sonos. Nu kan je de sonos harder en zachter zetten met de AB van je tv.
Deze IR signalen kan je kopiëren naar Homey. Het is wel een vereiste dat de Sonos in het zicht staat van Homey.

Nog even voor wat het waard is @Mark_Homey, als je de volume limiet instelt in je Sonos app dan werkt dat ook gewoon. Stel, je zet de volume limiet op 50% in de app, dan zal je nov steeds van 0.1 tot 1 kunnen verhogen alleen staat het volume dan op 1=50%

Ik heb dit ook werkend, in het voorbeeld staan stappen van 0.1, ik zou graag stapjes maken van 0.01 aangezien het bereik van SONOS 0 tot 1 is en ik graag met stapjes van 1 de SONOS wil verstellen in plaats stappen van 10.

Als ik dan de formule verander van round((Set volume-0.1),1) naar round((Set volume-0.01),1) werkt het niet meer. Ik zie de BetterLogic variabele niet verstellen.

Wat gaat hier fout?

Je rond af op 1 cijfer achter de comma.
round((Set volume-0.01),2) zou moeten werken

1 Like

Zo simpel kan het zijn, nu werkt het!
Bedankt!