Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Trigge event, men bare hvis spesifikk sang ikke spilles på Sonos.


Hillmar

Anbefalte innlegg

Jeg lurer på om jeg har kjørt meg fast i et problem som egentlig har en enkel løsning...

 

Jeg prøver å lage en event som skal trigges av et knappetrykk, MEN bare hvis en spesifikk sang ikke spilles på Sonosen i stuen.

Jeg setter derfor opp en event som trigger på knappetrykket, også prøver jeg å finne en fornuftig condition. Jeg prøver å benytte Easy Trigger "This device's string changes and matches this regular expression..." for å kontrollere at Sonos Devicen "Player" IKKE inneholder "Playing" OG "[navn på sang]", men er ikke stødig nok i regex.

 

Det holder ikke å kontrollere at Sonos Devicen "Track" ikke inneholder [navn på sang] da denne blir stående når sangen er ferdigspilt...

 

Er det noen som kan hjelpe meg med regex-uttrykket, eller har forslag til bedre løsning?

Lenke til kommentar
Del på andre sider

9 timer siden, Hillmar skrev:

Er det noen som kan hjelpe meg med regex-uttrykket, eller har forslag til bedre løsning?

 

Hva med å bruke to conditons? En sjekker «playing» og en sjekker «navn på sang»? :) 

Lenke til kommentar
Del på andre sider

12 hours ago, ZoRaC said:

 

Hva med å bruke to conditons? En sjekker «playing» og en sjekker «navn på sang»? :) 

 

Jeg er ganske rusten i boolske uttrykk, men jeg tror jeg må lage en event som trigger når følgende uttrykt er sant:

ButtonPressed && (State != Playing && Track != [Tittel])

Eventet skal altså ikke trigge hvis State = Playing OG Track = [Tittle]

 

Med ditt forslag om 2 conditions så ender jeg vel med følgende uttrykk?

ButtonPressed && State != Playing && Track != [Tittel]

Dette eventet vil ikke trigges hvis State = Playing OG/ELLER Track = [Tittle]

 

Enig?

 

10 hours ago, HSv said:

 

Noe sånt som dette bør fungere:

Sonos test.PNG

 

Jeg har prøvd dette, men det ser ikke ut som om HS håndterer at samme trigger benyttes i både IF og OR IF. Ser ut som om kun den første IF/AND IF blir vurdert. Med tilsvarende Event som du skisserer så kjøres eventet KUN når Kitchen = NotPlaying. Om Kitchen = Playing trigges ikke Eventet selv om Track != Blackbird - Remastered 2009.

Kan noen bekrefte/avkrefte at årsaken til dette er at HS ikke håndterer samme trigger i både IF og OR IF?

 

Edit: For ordens skyld; for enkelthets skyld så har jeg beskrevet her at triggeren = ButtonPress (Device is set), men i eventet mitt så benytter jeg Easy Trigger "This device had its value set and expression is true...", om dette skal ha noe å si.

Endret av Hillmar
Lenke til kommentar
Del på andre sider

Såvidt jeg kan se så er  @ZoRaC sitt forslag det samme som mitt -  jeg har bare leget en event av hans ide.

 

Du kan godt bruke samme trigger som jeg har gjort her - jeg bruker det på masse eventer.
Jeg har også testet den eventen igjen. Den fungerer for meg fremdeles.

Når jeg ikke spiller noe som helst så går lyset på.
Når jeg spiller Beatles-sangen så går det ikke på.
Og når jeg spiller Clapton, så går det på.

Jeg ville sjekket at Track var identisk med det som står i eventen. Copy/Paste fra Device/Track når du spiller sangen du vil bruke.
Så kan du teste hver av de to conditions hver for seg så finner du kanskje ut hvor feilen ligger

 

Note:

Det er "Easy Trigger: This devices string is not..." jeg bruker for å teste på sangtittelen.

Endret av HSv
Note
Lenke til kommentar
Del på andre sider

Merkelig!

Jeg prøvde nå å bytte om på IF- og OR IF-uttrykkene, slik at IF-uttrykket inkluderte AND IF "string is not" og OR IF-uttrykket inkluderte AND IF "NotPlaying".

Da trigger eventet så lenge Track != [definert sang], uavhengig av om State = Playing eller ikke. MEN så lenge Track = [definert sang] så trigges ikke eventet UAVHENGIG av State...

 

Her er eventet slik jeg prøvde det nå:

466065614_Screenshot2019-03-2321_45_33.thumb.png.0ea2001fa2bdb3e3142c61f98b2a16be.png

(Og ja, det er småbarn i hus som gjerne skal ha mulighet til å spille det siste av landeplager på egen hånd! ?)

Lenke til kommentar
Del på andre sider

Er du helt sikker på at Sonos-plugin'en din fungerer som den skal?

Det kan jo se ut som det er "IsNotPlaying" condition'en din som ikke fungerer som den skal. For å teste videre kan du jo bytte ut den testen med om f.eks. stuelyset er av eller på...

Jeg har testet min event mange ganger nå, og den fungerer hos meg

Lenke til kommentar
Del på andre sider

25 minutter siden, Moskus skrev:

Jeg forstår muligens ikke helt problemstillingen... men hvorfor skal det ikke se slik ut?

 

Fordi hvis han allerede spiller f.eks Kaizers, så skal den skifte sang. (Om da jeg har forstått spørsmålet riktig)

Lenke til kommentar
Del på andre sider

6 timer siden, Moskus skrev:

Jeg forstår muligens ikke helt problemstillingen... men hvorfor skal det ikke se slik ut?

 

image.png

 

Fordi den første «and if» der bare slår til hvis noe ikke spilles. Hvis Sonosen står og spiller «Rosa helikopter», så skal eventen trigge, men ikke hvis den spiller «Blackbird - Rematered 2009». 

 

@Hillmar: Hvordan ser stringen ut når eventet skal trigge? Kanskje enklere å komme opp med et forslag om man ser akkurat hva du ønsker å trigge på. :) 

 

EDIT:

Kan du ikke gjøre som i @Moskus sitt eksempel, men endre fra «IsNotPlaying» til «IsPlaying»?

Endret av ZoRaC
Lenke til kommentar
Del på andre sider

@HSv har forstått rett, men jeg ser at forklaringen kunne vært bedre.

On 23/03/2019 at 22:43, HSv said:

Er du helt sikker på at Sonos-plugin'en din fungerer som den skal?

Det kan jo se ut som det er "IsNotPlaying" condition'en din som ikke fungerer som den skal. For å teste videre kan du jo bytte ut den testen med om f.eks. stuelyset er av eller på...

Jeg har testet min event mange ganger nå, og den fungerer hos meg

Jeg har prøvd å bytte ut "IsNotPlaying" condition med "Device string is not"=Playing uten hell.

 

Og som nevnt lengre oppe så har jeg prøvd med "IsNotPlaying" som condition i første IF-uttrykk også. Da trigger eventet når Sonosen ikke spiller, men trigger aldri når Sonosen spiller (selv om det spilles noe annet enn den spesifiserte sangen.).

Lenke til kommentar
Del på andre sider

14 minutes ago, ZoRaC said:

 

Fordi den første «and if» der bare slår til hvis noe ikke spilles. Hvis Sonosen står og spiller «Rosa helikopter», så skal eventen trigge, men ikke hvis den spiller «Blackbird - Rematered 2009». 

 

@Hillmar: Hvordan ser stringen ut når eventet skal trigge? Kanskje enklere å komme opp med et forslag om man ser akkurat hva du ønsker å trigge på. :) 

 

EDIT:

Kan du ikke gjøre som i @Moskus sitt eksempel, men endre fra «IsNotPlaying» til «IsPlaying»?

Tanken i første posten var å kontrollere om følgende device inneholder "Playing" OG "Baby Shark":

167927317_Screenshot2019-03-2423_12_34.thumb.png.c0470d88c1677d20dc188c188fb2b13d.png

Alternativt kan jeg benytte meg av disse 2 devicene:

1981622742_Screenshot2019-03-2423_12_57.thumb.png.82053a7997da83b3887e76b72d0a86ec.png

347507493_Screenshot2019-03-2423_12_47.thumb.png.c35b04f5d689f1b6b74b712daf0e4b30.png

 

Siste forslaget ditt, endre fra IsNotPlaying til IsPlaying, fører vel til at eventet kun trigger når den spesifikke sangen spilles? Jeg ønsker at eventet skal trigge så lenge den spesifikke sangen IKKE spilles.

1 minute ago, HSv said:

Kan du ekspandere alle conditions du har og legge ut en ny screendump, så kan vi se detaljert hvordan de er?

779321940_Screenshot2019-03-2423_27_12.thumb.png.fef31939e689b0ce799bdcc48d17452a.png

Lenke til kommentar
Del på andre sider

15 minutes ago, ZoRaC said:

Hvorfor ikke bare «string is not Playing Rosa Helikopter»? Hvis player-devicen har «playing» når den spiller noe, men når den stopper viser bare tittelen på hva den spilte sist?

Som du ser av posten over så er State og Track delt i 2 forskjellige Devicer.

Lenke til kommentar
Del på andre sider

hmmm... Kan det være at verdien av $NEWVALUE endrer seg når du tester på den? Høres litt søkt ut men...

Kan du bytte den med en annen trigger - lage en virtuel device, eller bare bruke en lysbryter eller noe.

Bortsett fra triggeren du har så ser eventen identisk ut med min fungerende event.

Lenke til kommentar
Del på andre sider

7 timer siden, Hillmar skrev:

Tanken i første posten var å kontrollere om følgende device inneholder "Playing" OG "Baby Shark":

167927317_Screenshot2019-03-2423_12_34.thumb.png.c0470d88c1677d20dc188c188fb2b13d.png

Alternativt kan jeg benytte meg av disse 2 devicene:

1981622742_Screenshot2019-03-2423_12_57.thumb.png.82053a7997da83b3887e76b72d0a86ec.png

347507493_Screenshot2019-03-2423_12_47.thumb.png.c35b04f5d689f1b6b74b712daf0e4b30.png

 

Siste forslaget ditt, endre fra IsNotPlaying til IsPlaying, fører vel til at eventet kun trigger når den spesifikke sangen spilles? Jeg ønsker at eventet skal trigge så lenge den spesifikke sangen IKKE spilles.

779321940_Screenshot2019-03-2423_27_12.thumb.png.fef31939e689b0ce799bdcc48d17452a.png

 

I den første delen der, legge til sjekk på IsPlaying i tillegg. Da vil vel eventet trigge om ingenting spilles eller om noe annet enn Baby Shark spilles?

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.