Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


Search the Community

Showing results for tags 'sonos'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • FIBARO Community
    • FIBARO Portal and Forum policy
    • FIBARO
    • Say hello!
    • Off-topics
  • FIBARO Update
    • FIBARO System Update
    • FIBARO Mobile Update
  • FIBARO Community Support
    • Scenes and Interface
    • FIBARO Products
    • FIBARO Mobile
    • FIBARO HomeKit
    • FIBARO Assistant Integrations
    • Other Devices / Third-party devices
    • Tutorials and Guides
    • Home Automation
    • Suggestions
  • FIBARO Społeczność
    • FIBARO
    • Przywitaj się!
    • Off-topic
  • FIBARO Aktualizacja
    • FIBARO System Aktualizacja
    • FIBARO Mobile Aktualizacja
  • FIBARO Wsparcie Społeczności
    • Sceny i Interfejs
    • FIBARO Urządzenia
    • FIBARO Mobilnie
    • FIBARO HomeKit
    • Integracja z Amazon Alexa i Google Home
    • Urządzenia Firm Trzecich
    • Poradniki
    • Automatyka Domowa
    • Sugestie

Categories

  • Scenes
  • Virtual Devices
  • Quick Apps
  • Icons

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Facebook


Google+


Skype


Website URL


WhatsApp


Country


Gateway/s


Interests

  1. Current version: 1.4.0 Date: 15/03/2021 FUNCTIONS The functions of this Quick App are: Allowing to control Sonos Player from Home Center 3. It does support basic and advanced functions: Basic Transport Control Initiate playback Toogle, Pause or Stop playback Skip to the previous or Next track Basic Rendering Control Get player volume and mute state Set player volume to a specific level and unmute the player if muted Increase or decrease player volume Get or Set or Toggle player mute state (Mute or unmute the player) Get or Set or Toggle player loudness state Device Properties Get or Set group LED state Restart the QA Device Enable Debug Mode See Changelog / Manual for basic and advanced available actions Examples: Set player volume to a specific level and unmute the player if muted. fibaro.call(ID_QUICKAPP, "setVolume", 10, "Master") Increase or decrease player volume. fibaro.call(ID_QUICKAPP, "setRelativeVolume", -5, "Master") Initiate playback. fibaro.call(ID_QUICKAPP, "play") Play a file at volume 10 with snapshot/revert process to restore previous state fibaro.call(ID_QUICKAPP, "playFile", "35HTGV34R7S/CD/Album/song.flac", true, 10) Play a stream at volume 20 & 8s duration with snapshot/revert process to restore previous state fibaro.call(ID_QUICKAPP, "playStream", "https://s3.amazonaws.com/smartapp-media/sonos/bell1.mp3", true, 20, 8000) Version 1.4.0 Tested with Sonos Sonos OS: S2 - Version 13 (number 62186220) Tested with HC3 & HC3Lite v5.050.13 -> v5.063.30 Fix for Sonos firmware version 13 Fix for Sonos ARC getPositionInfo and malformed xmlsoap (hope full supoport soon) Add playNextRadio command to navigate the radios Add play mode control from QA button (loop in NORMAL,REPEAT_ALL,REPEAT_ONE,SHUFFLE_NOREPEAT,SHUFFLE,SHUFFLE_REPEAT_ONE) Fix Radio metadata strange behaviors in some situations Version 1.3.8 Tested with Sonos Sonos OS: S2 - Version 12.2.2 (number 61183220) Improved support for albumArt, now work with Sonos Radio, Amazon Music, Spotify, TuneIn, Music library Add option 'protect' to playFile and playStream for disallow to restart a playing Add Crossfade mode support with getCrossfadeMode, setCrossfadeMode and toggleCrossfadeMode commands Add sleepTimer command Add setPlayMode command, support: NORMAL,REPEAT_ALL,REPEAT_ONE,SHUFFLE_NOREPEAT,SHUFFLE,SHUFFLE_REPEAT_ONE Add selectLineIn command Add in variables panel, "notification" variable to enable or disable the "Device notification error", if disabled QA trace the message in QA console only Various improvement Version 1.3.1 RC Tested with Sonos Software Version: 56.0-76060 / Sonos OS: S2 - Version 12.0.5 & 12.1 Add support to use in block scenes (Play, Pause, Stop, Next, Prev, Set Volume, Set mute) Support for album covers when available (cf. music library) Performance improvement when initiating a playback Improved radio playback and track information Increase the number of supported radio stations (with auto configuration up to 9) Support for Sonos playlists (with auto configuration up to 6 saved queues) Add playFile command Add playStream command Add playSavedQueue command Add startQueue command Add clearQueue command Add seek command Add snapshot command Add revert command Add getListSavedQueues command Add addURIToQueue command Add checkForUpdate command Add getTreble and setTreble commands Add getBass and setBass commands Various Bug fixes (Polling when not configured, parsing ...) Version 1.1.1 Support for TuneIn "My radio stations" (with auto configuration up to 6 radios) Deletion of the variable variable "isConfigured" used by internal FTI Configuration Minor bug fixes (No route to host cause wrong configuration status) Tested with Sonos Software Version:55.1-74250 and 56.0-76060 Performance improvement Version 1.0.3 Fix a problem with internal zoneGroups and ZoneGroupMembers parsing (Thanks to jgab, Alan Klepacz and robw) Version 1.0.2 Minor bug fixes (Thanks to Macschimmi, Bodyart, minsad79) Version 1.0.0 Based on my HC2 virtual Device and completely rewriten for HC3 v5.030.45 or highter Very low latency and more robust device (commands execution, processing) Easy installation with auto configuration assist Support standard capabilities (AVTransport, RenderingControl) Displaying information on the currently playing or media loaded Fully controllable from the LUA scenarios (see available command list) You can download it from the Fibaro market: https://marketplace.fibaro.com/items/sonos-zone-controller hope you will be pleased with it ROADMAP Support for multi-devices in group used for triggering in scene and prepare for group-ungroup Support for TV source (if supporteed by device) Support for Group Support for TTS
  2. Version 1.0

    50 downloads

    Sonos API Player VD v1.0 standalone INTRODUCTION Sonos is the ultimate wireless home sound system that brings brilliant sound to all parts of house, room by room. Sonos API Player VD enables Fibaro Home Center 2 to control Sonos Wi-Fi multi-room speakers and show their status using node-sonos-http-api as mediator between Sonos and Fibaro. PREREQUISITES Fibaro Home Center 2 with firmware 4.620 or greater Node.js capable device such as Raspberry PI with installed jishi node-sonos-http-api One or more Sonos Wi-Fi multi-room speaker Sankotronic Lab. Emoji VD v1.1 or greater FEATURES Support for My Sonos stations and playlists. User can easily get list of My Sonos stations and playlist to VD and start playing from VD or other VD and scene code Support for grouping actions join and leave Support for Spotify, Apple Music and Amazon music Support for text to speech TTS for Google, VoiceRSS and AWS Poly Support for playing clips for e.g. doorbell or alarm functions Supports all standard audio commands PLAY, PAUSE, STOP, PREVIOUS, NEXT, MUTE/UNMUTE, SHUFFLE, REPEAT and CROSSFADE Support for all other functions available by jishi node-sonos-http-api Debug mode with different levels Multi language support with 27 languages included (see APPENDIX 1 for the list). VD can use HC2 selected language or user can select any other available language. VD will be automatically translated to the selected language Easy setup for VD icons. User can download HC2 Icon Preview VD to easily find icon ID number Global variables are automatically added, monitored and repaired and does not require user intervention INSTALLATION Please check provided User Manual PACKAGE CONTENT Sonos API Player VD v1.0 User manual EN v1.0 TERMS AND CONDITIONS Permission to use, copy, modify and distribute this software and its documentation for educational, research, personal use and non-profit purposes, without fee and without a signed licensing agreement is hereby granted, provided that the copyright notice, with "Terms and conditions" and "Disclaimer" appear in all copies, modifications and distributions. It is strictly forbidden to sell, rent, lease and/or lend this software for profit without prior consent from the Author. DISCLAIMER This software is provided by copyright owner "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author and distributor be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Fibar Group S.A. and their employees are not responsible for support of this VD. Please contact the author Sankotronic, on the Fibaro Forum, for any questions or support required. VERSION HISTORY 1.0 - First public release LOOK AND FEEL Peek in spoiler: Enjoy coding and your new Sonos API Player VD! Sankotronic
  3. Version 1.1.0

    78 downloads

    Sonos API Player standalone INTRODUCTION Sonos is the ultimate wireless home sound system that brings brilliant sound to all parts of house, room by room. Sonos API Player QA enables Fibaro Home Center 3 to control Sonos Wi-Fi multi-room speakers and show their status using node-sonos-http-api as mediator between Sonos and Fibaro. PREREQUISITES Fibaro Home Center 3, HC3L or Yubii Home with firmware 5.070 or greater Node.js capable device such as Raspberry PI with installed jishi node-sonos-http-api One or more Sonos Wi-Fi multi-room speaker FEATURES Support for My Sonos stations and playlists. User can easily get list of My Sonos stations and playlist to QA and start playing from QA or other QA and scene code Support for grouping actions join and leave Support for Spotify, Apple Music and Amazon music Support for text to speech TTS for Google, VoiceRSS and AWS Poly Support for playing clips for e.g. doorbell or alarm functions Supports all standard audio commands PLAY, PAUSE, STOP, PREVIOUS, NEXT, MUTE/UNMUTE, SHUFFLE, REPEAT and CROSSFADE Support for all other functions available by jishi node-sonos-http-api User can restart QA device Debug mode with different levels Multi language support with 25 languages included (see APPENDIX 1 for the list). QA can use HC3 selected language or user can select any other available language. QA will be automatically translated to the selected language User can also setup icons to show current status of the player or leave HC3 default icon INSTALLATION Please check provided User Manual UPGRADE To upgrade from version 1.0 to 1.1 please download this file: Sonos API Player QA v1.1 update.zip Unzip it and copy/paste code for each file as named main, common and app After saving QA please change settings of QA variables TTSlanguage and/or TTSvoice as necessary. AVAILABLE DOWNLOAD Sonos API Player QA v1.1 User manual EN v1.1 TERMS AND CONDITIONS Permission to use, copy, modify and distribute this software and its documentation for educational, research, personal use and non-profit purposes, without fee and without a signed licensing agreement is hereby granted, provided that the copyright notice, with "Terms and conditions" and "Disclaimer" appear in all copies, modifications and distributions. It is strictly forbidden to sell, rent, lease and/or lend this software for profit without prior consent from the Author. DISCLAIMER This software is provided by copyright owner "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author and distributor be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Fibar Group S.A. and their employees are not responsible for support of the ABC VD. Please contact the author Sankotronic, on the Fibaro Forum, for any questions or support required. VERSION HISTORY 1.1.0 - corrected say and sayall commands language handling error, added Korean language for QA and changed TTS language handling to enable usage of all available languages by selected TTS service. 1.0.0 - First public release Look and feel: Enjoy coding and your new Sonos API Player QA! Sankotronic
  4. Version 1.0.0

    158 downloads

    Sharing all Sonos icons I have made until now. Also providing them separately from new Sonos API Player QA Icon packs contain also PLAY, STOP, PAUSE, MUTE, TRANSITION and ERROR icons Enjoy!
  5. Hello, Is there someone who can help to make a VD in Fibaro HC2, that makes it possible to hear Spotify on SONOS. So that when I return home, automatically my favorite playlist in Spotify on my SONOS system can be heard? Who dares? Greetz John
  6. Hi there! I'm just returning to Fibaro now, with the HC3 up and running for a few days. I used HC2 from 2012 to 2018 when it died. Using Homey since that. Now, I'm curious about HC3 and the new possibilities with QuickApps. No doubt, Fibaro HC is the best for controlling my 60+ mostly Fibaro z-wave devices. But in the past, integration with SONOS, HUE, Alarm systems, Door locks, Video door bells etc was poor. That integration is better elsewhere. Now, with QuickApps, can we expect to see better "plugins" for these kind of IP/API devices? I.e. better than the rudimentary version 1.0 plugins of the past, that's never maintained? I'd love to hear that smart speakers, be it Sonos or Google Home or Alexa, could fully intregrate audio output from my smart home system. Both TTS announcements and sound output from scenes. In a simple and usable way. (I know this has somewhat been possible for years through special VDs with much hassle, but I was never able to make it work properly.) Same goes for Hue, sensors and actors. Or IKEA smart products like blinds. And connecting Alarm systems with 2-way communication for sensor status etc. And a QuickApp for my ventilation system. What do you think? Am I too optimistic?? Regards, Ole Kenneth
  7. Version 3.6.2

    122 downloads

    Advanced Alarm Clock First release on the French board in March 2019. INTRODUCTION This VD+Scene Bundle will help you to wake up in better shape by simulating a smooth dawn with any device in your HC2 : Roller Shutters, lights devices and VD. After the ignition at the value that you have set up in the VD, the scene can fade one or more speakers. The curves for light and audio fade in can be choosen separately. The scene manages itself if it's day or not. So, for each light you will set up in the scene, you can decide if it has to be active everytime, or only when it's day or only when it's night. For example, you can set up a Roller Shutter which is active only if it's day! This Bundle can be used as much as you want, just by adding it again and creating a new Global Variable for each new bundle set. THE SCENE IS ABLE TO MANAGE Roller Shutters (FGR22, FGR223...) Dimmers (FGD211, FGD212...) Switchs (FGS211, FGS212, FGS213...) RGBW Devices (FGRGBW, RGBW Controller 1, RGB Controller 2) RGBW Programs (Any Fibaro's programs) Home Center Scenes Any Light VD (Philips Hue, Ikea TRÅDFRI...) Any VD clickable Any Audio VD (Sonos, Yamaha Multicast or any else...) INSTALLATION Most of explainations are in the scripts. Create a Global Variable which starts with REVEIL_ (what means alarm clock in French ?) and import the Virtual Device you want (12h or 24h). VD CONFIG -- Manageable Alarm Clock Scene Id local SceneID = 193; -- Which room will this VD Manage ? Must be the same than the Scene local ROOM = "ROOM"; -- Days Off local DaysOff = {"Saturday","Sunday"}; -- By defaut, this scene will be launched to have full light at the time set up in the VD : Actual Hour - Dawn Time -- Change this var to anything else if you want to trigg the scene at the hour H. local StartScene = "DEFAULT"; -- Icon's ids local icon_ok = 1156 local icon_wait = 1158 local icon_off = 1160 SceneID : ID of the scene Advanced Alarm Clock ROOM : Value corresponding to the Global Variable you created DaysOff : List here all your days off within quotes marks, separated by commas. Take care of the uppercase at the beggining of the days names! StartScene : Start the scene to have the full ignition at the time set in VD (DEFAULT), or start to begin the dawn's simulation at the time set in the VD (anything else) icon_ok : ID of the icon which will be displayed when the scene is triggered and active icon_wait : ID of the icon ID which will be displayed when an alarm is set and waiting to trigg the scene icon_off : ID of the icon which will be displayed when the alarm is disabled Note: In this Virtual Device, you have to change 3 times the variable's value of ROOM, corresponding to the Global Variable you have created before : REVEIL_ROOM. VD USE Press on : will display 12:00 (or 07:30am in the 12h version). This can be changed by anything else with the variable ClickHour in the corresponding button Sound Volume is in percentage (Act on sliders) Audio fade-in is in seconds Light's Power is in percentage* Dawn's duration is in minutes Once button sets the alarm for the next avalaible scheduele, regardless of the day (DayOff or not). The alarm will automatically be disabled after the dawn's ignition Week of job sets the alarm for everyday, without the days set in the variable table DaysOff. Scene will automatically be launch until it's manually deactivated Recall will recall every parameters set before last VD deactivation Alarm OFF will save every actual parameters and disable the alarm * Rollers Shutters will open at the same time than others lights devices, but will not been affected by Light's Power parameter I thought it was better to be able to choose the power of lights, without having a half opened roller shutter. SCENE local ROOM = "ROOM"; -- Room code corresponding to the Global Var created local StartVolume = 15; -- Which Speakers volume value the fadein will start at (percentage) local CurveLight = "linear"; -- Which function will be used to fadein light keys local CurveAudio = "linear"; -- Which function will be used to fadein speakers keys BASIC SETTINGS ROOM The famous variable wich has to be the same in the Scene+VD StartVolume could be useful if you don't want to start audio fadein from 1. CurveLight & CurveAudio Curves that will be used to fade lights and audio. See the following image to have a better understanding Note1: If you comment a Curve Variable, the curve will be randomly choosen Note2: The curves are possible thanks to the great work that Robert Penners made in 2001. POSSIBLE CURVES : Linear + Robert Penner's Easing Equations -- Debug Vars local debug = 1; -- 1 Enable / 0 Disable local lang = "en"; -- Debug lang local DisplayNamesorID = "ID"; -- Display DeviceName + RoomName (Names) or Type + ID (ID) on each Debug line local DisplayNamesAtStartup = 1; -- Display Rooms & Names at scene startup (1) or not (0) local DisplayRGBWValues = 1; -- Display RGBW Values increasement when fading in (1) instead of only multiplier (0) local DayLightDelay = 60; -- After sunrise/sunset, it's still daylight for .. mn local VolDiffMin = 5; -- Minimum difference between Start Volume and Volume set in VD (in case of Start Volume > Volume set) local LimitDebugLines = 1; -- Limit number of Debug Lines to 4 max per device and to 20 max per roller shutter -- Changing next var values may seriously impact the scene local CheckAlarmMode = 1; -- Check if the alarm is set and not just memorized before starting sthis scene local DisplayScenesNames = 0; -- Display Scenes Names in debug (1) or not (0)! Active this function may delay the script local tempo = 1; -- Pause between two actions in LightsAction and SpeakersAction functions (s) - It' not recommended to change this value DEBUGS SETTINGS debug lang DisplayNamesorID DisplayNamesAtStartup DisplayRGBWValues DaylighDelay VolDiffMin LimitDebugLines CheckAlarmMode If this var value is set on 0, this scene will be able to be launched manually with stored values, even though the VD displays None DisplayScenesNames tempo Note: everything explained in the script! ADDING YOUR DEVICES Add a Roller Shutter (FGR) Parameter "steps" is needed to set how many steps this roller shutter will do to open (to protect motors of 100 steps) table.insert(LightsList, {typ="Shutter", id=279, steps=6}); Add a Dimmer (FGD) table.insert(LightsList, {typ="Dimmer", id=10}); Add a RGBW device (FG-RGB) : To fade a choosen color with RGBW parameters (Set this color at full range, scene will fade this value from 0 to the value set in VD) table.insert(LightsList, {typ="RGBW", id=20, r=150, g=100, b=0, w=255}); Add a RGBW Program : To set a RGBW program, just use "program" parameter Add "start" parameter to manage when this program will be started during the light fadein (in percentage) If no "start" parameter is set, program will be started at the beginning of the scene table.insert(LightsList, {typ="Program", id=20, program=3, start=50}); Add a switch (FGS) Add "start" parameter to manage when this turnon action will be done during the light fadein (in percentage) If no "start" parameter is set, action will be done at the beginning of the scene table.insert(LightsList, {typ="Switch", id=49,start=100}); To add a VD If it's a light VD : Parameter "slider" needed to manage brightness table.insert(LightsList, {typ="VD", id=298, slider=10}); "btn" paramater can be added to set a color preset before the fadein (Be sure that the VD brightness for this button is set et 1%) table.insert(LightsList, {typ="VD", id=298, slider=10, btn=6}); If it's not a light VD (with brightness slider) : Just indicate "btn" parameter table.insert(LightsList, {typ="VD", id=298, btn=6}); Add "start" parameter if you want to manage when this button will be pressed during the dawn fade in (in percentage) table.insert(LightsList, {typ="VD", id=298, btn=6, start=50}); Scene : To start a scene Add "start" parameter to manage when the action will be done during the light fadein (in percentage) If no "start" parameter is set, action will be done at the beginning of the scene table.insert(LightsList, {typ="Scene", id=254, start=50}); To add Speakers VD : One action per key Example for an action on the slider 15 of the VD 245 table.insert(SpeakerAction, {id=245, slider=15}); Example for an action on the button 6 of the VD 245 table.insert(SpeakerAction, {id=245, btn=6}); Note: This is an extract of the scene. So you will find it in the scene to help you if needed One line = One device LightsList typ = Shutter id Roller Shutter ID steps Number of steps which will be done by the roller shutter (to preserve shutter's motor). 2 mini / 20 maxi typ = Dimmer id Device ID typ = VD id VD ID slider Slider number to manage light power btn* Button to push start* When the button have to be pushed during dawn"s ignition (if not set, the button will be pressed just before acting on slider) typ = RGBW id Device ID r Red Value(0-255) g Green Value (0-255) b Blue Value (0-255) w White Value (0-255) Note: Please write the parameters for a full power. The scene will calculate the values needed from them typ = Scene id Device ID start* At which percentage of the dawn's ignition this scene will be started. 1 will be use by default if nothing is set. typ = Switch id Device ID start* At which percentage of the dawn's ignition this switch will be turned on. 1 will be use by default if nothing is set. typ = Program id Device ID program ID of the program to launch start* At which percentage of the dawn's ignition this program will be started. 1 will be use by default if nothing is set. SpeakerAction id VD ID 2nd parameter = Button Type (One or the other) with this button number slider Number of the volume's slider btn Number of the button to push Note: This actions will be done in the order you declare them in the script Note: items with * are not mandatory MODE PARAMETER This parameter is not mandatory. If not set, all your keys will be used to fade the dawn. You can mix modes and no modes keys! For each light key, if you want to see it lighting only when it's day, just add mode="day", or mode="night" if you want to see a key lighting only if it's night. To use a key everytime : no mode or mode="both". WHERE CHANGE GLOBAL VARIABLE "ROOM" VALUE At the beginning of the scene In the "Once" Button of the VD In the "Week of Work" Button of the VD In the "Alarm OFF" Button of the VD At the beginning of the Main Loop of the VD Note: Please take care of this changement of value. If the value is not the same everywhere, the scene could not be launched! DEBUG EXAMPLE SUPPORT In case on any issue, please try again with defaults debug's values and post all your DEBUG lines to help me to understand what happens in your configuration. CONTENT Advanced Alarm Clock Scene v3.6 Multilingual Advanced Alarm Clock Trigger 12h v2.2 for people that have 12-hour clocks (am-pm) Advanced Alarm Clock Trigger 24h v2.2 3 Icons for the VD 1 icon for the Scene info.txt file TRANSLATION All Debugs texts are available in english and french. They could be easily translated in any other language without any LUA knowledge, by creating a new language condition and translating every DebugMsg vars. Don't hesitate to contact me with the support thread if you want to translate them in another language. Only 37 sentences in the scene v.3.6! Your translations could be added in this official bundle.
  8. Hei, Quick App - Sonos Zone Controller works great inside the controller bur how can i use it with scenes ? In scenes is is not possible to choose the quick app Thanks for your answer.
  9. Version 1.0.0

    416 downloads

    Here are some icons for Sonos multi-room speakers and TTS
  10. Hi, I would like to have my Sonos-player start playing music when I open my garage door. As far as I can see, I only have one option as I have a HCL, and that is to use IFTTT. How can i set this up? Ive tried making variables that change bases on the doors state (controlled by Aeotec garage door controller) and scenes that activate based upon the state of the variable, but i cant make it work.. The main problem seems to be that both the scene for "Play music" and the scene for "Pause music" starts at the same time every time the state of the door changes.. Also tried "interlocking" the inpud by adding an opposite state, but still triggers them both at the same time. Examples Play music scene: Pause music scene: Scene triggering is the only option I can see for making this work, as the Aeotec controller dont show up in the other triggers.. I have no problem making the IFTTT applets work, that seems to go OK, but its the input im struggelig with..
  11. Hello Team I have a sonos player 5 and I just want to use the TTS functionnality. What should I do ? Thanks in advance for your feedback
  12. Hello friends, I would like to control my sonos devices via scenes. It seems not possible to do that with common ways. So maybe someone in this forum already did that via http methods, rest apis etc. Would be great help if someone has any idea about that. Thanks in advance.
  13. Implement Sonos VD using node-http-API running on raspberry PI The following should help if you want to implement an sonos VD that leverages the node sonos http api by jishi The post consists in two parts Setting up the API on a raspberry pi Creating the VD and summary of other uses of the API and some sample code I use **I'll structure this in a better format in the coming weeks but for now it should be sufficient** I have tested this with Play1, 3, 5 (older version) ZP100, ZP80, ZP90. I don’t have a sonos soundbar or sub but from reading other forums it should work fine for those I intend to use this more in ‘Press Button’ mode rather than directly as a remote control but it should be good either way. You can also select what appears in HC2 UI by clicking the ‘main’ checkbox on the appropriate VD button ( I think you can have one button, one label and one slider) Credit & Reuse: This work draws on the work of many many people from both this forum as well as other forums. Without these people and the work they have done as well as what they have helped me learn over the last 12 months this wouldn't have been created. Like all VD’s please feel free to constructively criticise or modify it to meet your needs STEP1: Setup api on node.js device: This VD requires jishi’s node-sonos-http-api to be installed on a node.js capable device. This can be a RPi, a NAS or something similar. Details on where to get the code and install can be found on Git - https://github.com/jishi/node-sonos-http-api You will also find an excellent blog/issue tracker at the link above for any issues you encounter I have mine installed on a Rpi Added Feb 5th The fastest way I found to get up and running on a PI if you're unsure and just want to try it (takes about 15 minutes) Use the sonos-api precompiled rpi image at http://jishi.github.io/node-sonos-http-api/ (apply to blank sd card) when you login over SSH (with something like putty) the password is root Map a network drive or Start Run to \\<IP of Pi>\flash click apps folder and you'll see the sonos-http-api folder Get an API from VoiceRSS and create a settings.json file (details in the post) and drop it into the sonos-http-api folder reboot and that's it - test through browser with something like http://<ip-of-Pi:5005/<playername>/Say/Hello If you want to upgrade to the latest api release Download the latest zip from https://github.com/jishi/node-sonos-http-api (green button on right) In the flash folder rename the sonos-http-api to -old Rename what you downloaded to to sonos-http-api Drop in your settings.json file SSH into the Pi - login = root cd /flash/apps cd sonos-http-api npm install --production when finished reboot DOCKER from @riemers (thanks ) You could also use docker Some nas systems include docker too (synology) from the gui. Using docker is easy and simple to give to someone else too, work on Pi3 too. For node-sonos-api there is a docker image https://github.com/chrisns/docker-node-sonos-http-api saves you the hassle of installing all dependency's, assuming you have some knowledge with linux. # Edit - additional observation - I like the Synology NAS option but mine doesn't reboot in the event of a power outage. The Rpi does reboot. If you use a NAS it might be good to use a UPS or find a way to reboot after an outage Once you have this setup you are ready to move on to Step 2 STEP 2 : Import the VD, you will need one VD per sonos zone node-sonos-api VD.vfib Name - The zone name needs to be the same as what it is in native Sonos (try and avoid chars such as /,etc) Spaces are okay IP Address: This is the IP of the device where the api is installed (This is NOT the IP address of the sonos zone) Port: Leave at 5005 (can be changed it needed, see git above) STEP 3 : Configure Play, Stop, Repeat, Shuffle, etc – this should work as is The parts you may want to modify are as follows => Volume I opted for the vol + / vol – as opposed to the slider as I find the sliders difficult to use on a tablet Vol + / - operates in increments of 2%. This is easy to change in the url string. The Vol 10% button is also easy to change => Favourites You will need to modify this to your favourites and how they are named in your sonos setup I would advise simplifying these names in the native Sonos setup as much as you can. Spaces are okay, you just need to use %20 where you have a space in a name If you need more of less favourites, please add/delete buttons as required => Playlists I don’t really use them but these are easily enough added in a similar way to the favourites above. => Line-in selection You can create one button for each line in option on your setup for any connect/connect amp or Zp unit.. (I have 4 on my setup) You will need to get the UUID for the zone that has the line in physically connected to it. You can get the UUID of that zone by viewing the topology of the zone with the topology url. (drop it into chrome/ff) http://[IP of any of your zone]:1400/status/topology The format of the url http://192.168.1.89:5005/kitchen/setavtransporturi/x-rincon-stream:RINCON_000E5832B85401400 and you will need to change the last numerical string for your own UUID. => Grouping Zones I have included two examples of grouping and ungrouping The url format is simple and easy to read. below are two examples that were setup on the kitchen zone where I wanted to group the Playroom zone two it and play what was playing on the kitchen zone Group - [playroom joining kitchen and playing kitchen music] http://192.168.1.89:5005/playroom/join/kitchen Ungroup - [playroom leaving kitchen zone] http://192.168.1.89:5005/playroom/ungroup/kitchen You could also include a group all and an ungroup all by stacking the commands from each zone under one button. There are also options to control volume of grouped zones if you like but I haven't explored that yet Beyond this… The api is very extensive and still undergoing development. There are other functions in the api that could be used and might be worth a glance depending on your system and patterns of use I'll update the post this evening with the actual VD as I can't seem to export it remotely. The node.js api will need to be installed first before the VD will be of any use. Hopefully it will be of use to some people Thanks -Frank Update: Adding VD file Adding some extra information The api is very extensive and seems to keep growing I use it for mainly behind the scenes control rather than me clicking the vd/scenes buttons manually If you look at http://zone_ip:5005/room_name/state for any of your players you’ll see all the state json info and what’s possible to control/trigger from Pretifying the json will show it's structure better { "currentTrack": { "title": "x-sonosapi-stream:s2846?sid=254&flags=32", "albumArtUri": "\/getaa?s=1&u=x-sonosapi-stream%3as2846%3fsid%3d254%26flags%3d32", "duration": 0, "uri": "x-sonosapi-stream:s2846?sid=254&flags=32", "type": "radio", "absoluteAlbumArtUri": "http:\/\/192.168.1.63:1400\/getaa?s=1&u=x-sonosapi-stream%3as2846%3fsid%3d254%26flags%3d32" }, "nextTrack": { "artist": "", "title": "", "album": "", "albumArtUri": "", "duration": 0, "uri": "" }, "volume": 10, "mute": false, "trackNo": 1, "elapsedTime": 651, "elapsedTimeFormatted": "00:10:51", "playbackState": "PLAYING", "playMode": { "repeat": "none", "shuffle": false, "crossfade": false } } I have a VD that shows me the status of all my players (attached) main scene code (just add labels local device = fibaro:getSelfId(); local zonename = fibaro:getName(device); local ipaddress = fibaro:getValue(device, "IPAddress"); local port = fibaro:getValue(device, "TCPPort"); sonos = Net.FHttp(ipaddress, port); local jS = json.decode(fibaro:getGlobalValue("StateTable")) -- zero the counter for each loop local zoneCount = 0 -- LANDING response = sonos:GET("/Landing/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.Landing_Stairs.isPlaying = 1 else jS.Landing_Stairs.isPlaying = 0 end jS.Landing_Stairs.volPlaying = jsonTable.volume jS.Landing_Stairs.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblLanding.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- TWINS BEDROOM response = sonos:GET("/Bed_LE/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.lau_eth_bedroom.isPlaying = 1 else jS.lau_eth_bedroom.isPlaying = 0 end jS.lau_eth_bedroom.volPlaying = jsonTable.volume jS.lau_eth_bedroom.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblBedLE.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- FRANK BEDROOM response = sonos:GET("/Bed_Frank/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.frank_bedroom.isPlaying = 1 else jS.frank_bedroom.isPlaying = 0 end jS.frank_bedroom.volPlaying = jsonTable.volume jS.frank_bedroom.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblBedFrank.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- GUEST BEDROOM response = sonos:GET("/Bed_Guests/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.guest_bedroom.isPlaying = 1 else jS.guest_bedroom.isPlaying = 0 end jS.guest_bedroom.volPlaying = jsonTable.volume jS.guest_bedroom.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblGuests.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- OFFICE response = sonos:GET("/Bed5_Office/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.office.isPlaying = 1 else jS.office.isPlaying = 0 end jS.office.volPlaying = jsonTable.volume jS.office.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblOffice.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- MASTER BED response = sonos:GET("/Bed_MasterL/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.master_bedroom.isPlaying = 1 else jS.master_bedroom.isPlaying = 0 end jS.master_bedroom.volPlaying = jsonTable.volume jS.master_bedroom.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblMaster.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- HALL response = sonos:GET("/Hallway/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.hall.isPlaying = 1 else jS.hall.isPlaying = 0 end jS.hall.volPlaying = jsonTable.volume jS.hall.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblhallway.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- KITCHEN response = sonos:GET("/Kitchen/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.kitchen.isPlaying = 1 else jS.kitchen.isPlaying = 0 end jS.kitchen.volPlaying = jsonTable.volume jS.kitchen.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblkitchen.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- PLAYROOM response = sonos:GET("/playroom/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.playroom.isPlaying = 1 else jS.playroom.isPlaying = 0 end jS.playroom.volPlaying = jsonTable.volume jS.playroom.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblplayroom.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- GARAGE response = sonos:GET("/Garage/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.garage.isPlaying = 1 else jS.garage.isPlaying = 0 end jS.garage.volPlaying = jsonTable.volume jS.garage.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblgarage.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- PIZZA BBQ response = sonos:GET("/PizzaBBQ_Area/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.pizza_bbq_area.isPlaying = 1 else jS.pizza_bbq_area.isPlaying = 0 end jS.pizza_bbq_area.volPlaying = jsonTable.volume jS.pizza_bbq_area.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblpizza.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- LIVING response = sonos:GET("/Living_Room/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.living_room.isPlaying = 1 else jS.living_room.isPlaying = 0 end jS.living_room.volPlaying = jsonTable.volume jS.living_room.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lblliving.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); -- GARAGE response = sonos:GET("/DiningRoom/state") jsonTable = json.decode(response); if jsonTable.playbackState == "PLAYING" then zoneCount = zoneCount + 1 jS.dining_room.isPlaying = 1 else jS.dining_room.isPlaying = 0 end jS.dining_room.volPlaying = jsonTable.volume jS.dining_room.nowPlaying = jsonTable.currentTrack.artist jStateTable = json.encode(jS) fibaro:setGlobal("StateTable", jStateTable) fibaro:call(device,"setProperty","ui.lbldining.value",""..jsonTable.playbackState.." | "..jsonTable.volume..""); fibaro:setGlobal("ActiveMusicZones", zoneCount); fibaro:call(device,"setProperty","ui.activeZones.value",zoneCount); Three of my zones use power amps (the are sonos connects) and I use the ‘playstate’ to turn the amp on / off when required. That’s the code at the bottom of the vd At one stage I was even displaying the image (radio station, music album) on an openremote UI using the uri part of the state json. I use the VoiceRSS TTS on teh http api but there are others. That all that was there when I found it and it worked well I have TTS to tell me “welcome home”, “good night”, "gate opening/closing", "garage door opening/closing" and all the usual stuff but I vary the volume it at night so it doesn’t wake everybody up. I intend this expand this feedback out so If we come home and the alarm went off it would tell me or that the washing machine has finished, the humidity is still too high in the bathroom and I should open the window (or that a fan was turned on) or some HC2 system info like the available memory went beyond certain thresholds, temp in a room rose or dropped, My siemens alarm is connected to my HC2 and I keep track of all the status of the alarm zones and when we press the “Leaving Home” button it checks the alarm zones and if one or many are open, it will TTS the open alarm zones in the hall sonos so we know where to go and close. Same thing when we go to bed at night. I found that each of my zones have different volume levels that work at night and during the day. I’ll be using my HomeTable (different topic) to store this info for each zones but it can written directly into the scene/vd. (This is what the the following code is for) I also plan on using a central TTS engine (simple a scene that take a zone/message and vol) so I can TTS more easily to any player. For now I have specific TTS code on a per player basis. I leverage the global variables that @Sankotronic Weather Basic VD populates and a scene that allows me to send the current weather (temp, humidity, wind speed direction, etc) as a TTS to our bedroom in the morning as well as the temp of the house as part of our wake up routine The API has a presets concept. This allows the user to pre-define a set of grouped players, source and volume. This is a file on the rpi and is referenced by a single command rather than starting one zone and grouping other zones. An example of its structure is as follows ... { "players": [ { "roomName": "Landing", "volume": 0 }, { "roomName": "Bed_MasterL", "volume": 0 }, { "roomName": "Bed_LE", "volume": 0 }, { "roomName": "Bed_Frank", "volume": 0 } ], "pauseOthers": false, "favorite": "96FM" } You may notice that the volume is set as 0 because I use another scene to slowly raise the volume so we are not woken to the sharp shock to a loud song. This simple vd button code is what I use to slowly raise the volume slowly local device = fibaro:getSelfId(); local zonename = fibaro:getName(device); local ipaddress = fibaro:getValue(device, "IPAddress"); local port = fibaro:getValue(device, "TCPPort"); sonos = Net.FHttp(ipaddress, port); for v = 1, 10 do response = sonos:GET("/Bed_Frank/volume/"..v.."") fibaro:debug("vol= "..v.."") fibaro:sleep(1000) end I use this for morning music upstairs and downstairs as well as when the kids go to bed. (changing the presets on the rpi requires a restart of the api - i normally just reboot the pi ) Watch out for radio favorites and playlists - try and not have spaces in the names on sonos and you should have no issue calling them ADDED - Jan 21st Creating a single button on a VD to cycle through favorites or playlist instead of using 1 per favorite. Every time you click the button it selects the next favorite. I have it limited to 5 favorites but this is easily adjusted. I store the favorite in my HomeTable but it could also be a global variable. I use an array to decode the numerical value stored globally into the actual favorite so I can append to the sonos api call. This will need to be adjusted to suit your system VD button code .... local device = fibaro:getSelfId(); local ipaddress = fibaro:getValue(device, "IPAddress"); local port = fibaro:getValue(device, "TCPPort"); local jT = json.decode(fibaro:getGlobalValue("HomeTable")) -- Get the current favorite number stored, increment by 1 and if > 5 set back to 1 local f = tonumber(jT.Landing_Stairs.RadFav) + 1 if f > 5 then f = 1 end -- Store the new favorite jT.Landing_Stairs.RadFav = f fibaro:setGlobal("HomeTable", json.encode(jT)) -- Array for the favorites fav = {[1] = "4FM", [2] = "96FM", [3] = "Calm", [4] = "Heart", [5] = "Red_FM"} -- Execute the sonos conmmand sonos = Net.FHttp(ipaddress, port); response = sonos:GET("/Landing/favorite/"..fav[f]..""); I also reflect this on a status label on the VD. -- Get favorite stored globally local f = tonumber(jT.Landing_Stairs.RadFav) -- Translate into favorite name to be displayed fav = {[1] = "96FM", [2] = "4FM", [3] = "Calm", [4] = "Heart", [5] = "Red_FM"} -- fav[f] represents the name. I apppend to otehr date and display in one label local status = " "..fav[f].." | "..jTS.playbackState.." | Volume "..jTS.volume.."%" fibaro:call(device,"setProperty","ui.status.value", status); This display at the top of the VD doesn't account is somebody changes the favorite from the native sonos app. I'll add code later to keep alignment between what is selected and what is stored in the global variable, This is what it looks like on my setup that is still a work in progress x Please see post 163 on this topic on how to get the VD icons dynamic for radio station or line in
  14. I have VD sonos remote installed but is not working Version 1.0.0 does notting Version 1.0.1 gifs the playing number and gives volume level. Butons are not working. Is there a new version? Is there a other solution. I want to use de VD to control the sonos in scenes (not the interface like the sonos plugin) - select number or playlist to play (example : Alarm sounds) - play number -stop playing Anny sugestions?
  15. Hello everyone, I'm new to Fibaro and I have a problem. I created the VD Sonos Romote v.1.0.1 and I want him to play an mp3 sound and stop it. I succeeded to play audio mp3 thanks to the spatpeker but I can not stop it. --PLAY --[[ %% properties %% events %% globals --]] -- 72 is the Virtual Device ID (sonos) -- 73 is the Process button ID (this vd button) local sid, bid = 72, 28 -- Create STREAM params object local params = { -- stream: the file / uri stream = "//192.168.1.5/share/IntruderAlarm.mp3", -- source: "local" or "http", "local" is setted by default source = "local", -- duration: play duration in seconds (option) or "auto" duration = "auto", -- volume: the volume for playing the stream volume = 5 } local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { stream = params }) _f:call(sid, "pressButton", bid) -- STOP DON'T WORK --[[ %% properties %% events %% globals --]] -- 72 is the Virtual Device ID (sonos) -- 73 is the Process button ID (this vd button) local sid, bid = 72, 28 local cmd, log = "PAUSE", "Stop command was sent" local _f = fibaro local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end} -- Make a request to the remote to process params object instantly _x:set(tostring(sid), { action = tostring(cmd .." ")}) _f:log(log); _f:call(sid, "setProperty", "ui.lblDebug.value", log); _f:call(sid, "pressButton", bid)
  16. hello all. i have just bought some Sonos speakers and wanted to integrate with home center 2. first part is to control then second part text-to-speech workaround whilst i was going through the forums i found the info i needed scattered around different threads and the original thread was very long, so i have thought i might make it easier by creating a small quick guide: First thing is all credit to the virtual device goes to krikroff for the VD, original thread here - http://forum.fibaro.com/index.php?showtopic=12344 I have created a video demo instead as it was easier to show rather than write. video link is as above. enjoy... download link here: http://www.yorkshireautomation.co.uk/downloads/sonos.zip
  17. Hi, Here is a project to create a dedicated sonos room remote using a minimote remote control. One of my kids asked if they could have a simple remote for the sonos player in their bedroom and this is what I created I use the sonos-http-api but I'm sure it could be adapted for the other methods to control sonos with the HC2 This is what we are creating ... 4 single press functions pre-programed Vol-, Vol+ are self explanatory PlayPause - this cycles between play and pause. If no music is selected (like just after a player powers up) then this button will select one of the radio favourites and start playing Favorites - allows you to cycle through your radio favorites with each button press.(more on this later) 4 long press functions can be programed These can be anything from starting a scene to selecting line in In the remote I created, the ling press functions are Sat Line In, ungroup zone, start Bedtime scene and one empty. Lets get started..... The solution has two parts A scene to interpret the button press and direct them to a VD Both scene and the VD are included at he bottom of the post. I use the one scene to interpret two minimote remote controls so adjust as you see fit You only need one scene even if you use multiple remotes/rooms and but you will need one VD per room If you don't use a HomeTable, please comment out this line wherever you see it local jT = json.decode(fibaro:getGlobalValue("HomeTable")) SCENE CONFIGURATION At the start of the scene amend with the ID of your minimote device id's to trigger the scene --[[ %% properties 851 sceneActivation 856 sceneActivation %% events %% globals --]] Adjust the references to the target Sonos RC VD(s) sonosVD1 = jT.vd.OfficeSonosRC sonosVD2 = jT.vd.GuestSonosRC Adjust the reference (851 below) to the remote at the start of each remote block of code if startSource["type"] == "property" and devID == 851 then And that's it for the scene..... VD CONFIGURATION This VD has the 4 single press functions programmed and the place to program the 4 long button presses as well Import the VD and add the IP address and port (probably 5005) of your sonos-htti-api and name and select room accordingly In the code for Button 1 to 4 amend the sonos player name to suit your player local zone = "Office" Button 4 contains a table with your favorites Amend the name in quotes in the table to match your sonos setup fav = {[1] = "4FM", [2] = "96FM", [3] = "Calm", [4] = "Heart", [5] = "Red_FM"} The code cycles through 5 favorites but can easily be adjusted to cycle through less or more You also need a place to store the current favorite and I use my Hometable for this by adding a entry to the respective room Add the highlighted entry to each room you have a remote for. Adjust the Button 4 code to match this reference local f = tonumber(jT.office.RadFav) + 1 if f > 5 then f = 1 end jT.office.RadFav = f fibaro:setGlobal("HomeTable", json.encode(jT)) s = Net.FHttp(ipaddress, port) r = s:GET("/"..zone.."/favorite/"..fav[f].."") If you don't use a HomeTable contact me and I'll help you create a global to do the same thing The final part is then to add functions to Buttons 5 to 8 that represent long presses of buttons 1-4 You don't need to if you don't want to I created these icons - There not great and if somebody has another one I'll gladly swap out for VD for Scene That's it Hopefully this will be of use to a couple of forum users, _af Minimote Sonoc RC.lua Office_Sonos_RC.vfib
  18. Hi, If you are using the sonos-api then you may find this very easy to use VD helpful It will display the status and volume of each player as well as a house summary of how many are active The VD below is setup for two zones and is very easy to expand. Three Step setup 1) Import the VD, amend the IP address for your sonos-api device (port should be fine) and save 2) Add extra players to the table at line 10 (keep name the same as your sonos player/zone name) players = {"Kitchen", "LivingRoom"} 3) Add extra labels for each extra player/zone and save. (keep default label format which is Label3, Label4, etc) Enjoy !! -f FILES Sonos Players Status {v1.0} -----------------------------> Sonos_Players_Status.vfib
  19. Hi Re-coded my Sonos status VD into a more generic table based VD This VD monitorsd and displays status of Sonos devices (OFFLINE, STATE (PLAYING, STOPPED, ETC & VOLUME) Notification options for when a player goes offline and back online and is configurable (Smart Message Hub or HC2 email) One Alert will be received when player goes offline and another when it comes back online Online/Offline status is captured in global table (SonosTable) that can be used by other scenes and VD's ** YOU NEED TO BE USING THE SONOS-HTTP-API FOR THIS VD ** ** YOU NEED TO BE USING THE WWWAPI MONITOR FOR THIS VD ** ==INSTALLATION STEPS == - Import the Sonos Monitor 1.0 virtual device, add IP and Port of sonos API on VD General Tab - Status heading and one sonos player label (Label1) has been created as part of the VD - it will created a global variabnle called SonosTable - Add one label per extra sonos payers you have using the default label naming (Lable2, Lable3, Label4, etc) - Populate the sonos table with Player (what player is called in sonos) and Room (room name in HC2) - Run VD with updateData = "true" to populate the device table. Open debug window and you shold see - "Sonos Table successfully Updated" followed by which sonos players are online - Run VD with updateData = "false" to operate in normal mode - Enable Debug = true to see status in debug window VD attached below Suggested icon Sonos_Monitor_1.0.vfib
  20. Hi Forum, The native skill for sonos is now available from Sonos There are also updates for the system and for all the controller platforms (android, desktop, iOS) To enable the skill you will need a Sonos account which you should have created with the last Sonos update. Log into your Alexa account and find the and enable the Sonos Skill This will redirect you to you Sonos account to get your permission to link to your sonos system You will then be redirected back to the alexa account to discover your sonos devices after discovery you will see the list of players List of voice commands (thanks @speedy) SiriusXM You can initiate playback from any service using the Sonos app, and basic playback commands, such as play/pause, volume and skip, will continue to work. Spotify users: The ability to ask Alexa to play Spotify music on your Sonos speakers is not yet available, but is coming soon. General playback commands Alexa, pause/stop/resume in the (room name) Alexa, pause/stop/resume the music in the (room name) Alexa, skip/next in the (room name) Alexa, play the next/previous song/track in the (room name) Alexa, pause Alexa, resume on (room name) Alexa, next song/track Alexa, previous song/track Alexa, stop Alexa, skip Alexa, skip song/track Alexa, what's playing in (room name)? Note: Skip and previous cannot be used with TuneIn radio, and previous will not work on Pandora and iHeartRadio. General volume commands Alexa, turn it up/down in the (room name) Alexa, louder/quieter in the (room name) Alexa, set the volume to 3 (30%) in the (room name) [0-10 volume levels] Alexa, softer in the (room name) Alexa, mute the (room name) Alexa, unmute the (room name) Note: Volume commands will only affect the player the command is directed to. If the player is grouped, the group volume will not be adjusted. To start Amazon Music playback Alexa, play music in the (room name) (Alexa will select music) Alexa, play (artist) in the (room name) Alexa, play (song name) by (artist) in the (room name) Alexa, play (artist) on Pandora in the (room name) Alexa, play the album (album name) by (artist) in the (room name) Alexa, play (activity) music in the (room name) To start TuneIn playback Alexa, play (TuneIn station/radio call sign) in the (room name) Alexa, put on (TuneIn station/radio call sign) in the (room name) Alexa, start playing (TuneIn station/radio call sign) in the (room name) To start Pandora playback Alexa, put on (station of your choice) on/from Pandora in the (room name) Alexa, play (station of your choice) on/from Pandora in the (room name) If Pandora is setup as your default service in the Alexa app: Alexa, play (station of your choice) in the (room name) To start iHeartRadio playback Alexa, play (station of your choice) on/from iHeartRadio in the (room name) Alexa, put on (station of your choice) on/from iHeartRadio in the (room name) If iHeartRadio is setup as your default service in the Alexa app: Alexa, play (station of your choice) in the (room name) To start SiriusXM playback Alexa, put on (station of your choice) on/from SiriusXM in the (room name) Alexa, play (station of your choice) on/from SiriusXM in the (room name) The new Sonos One has the Alexa skill built in. Details can be found here http://www.sonos.com/en-us/shop/one.html?utm_source=prospects&utm_medium=email&utm_content=hero-US&utm_campaign=sonosone
  21. Hi guys, I have used the Sonos VD before with the SONOS play:1 speakers and the Fibaro HC2, however I am planning to buy a Sonos One (with built-in Alexa), has anyone tried using the VD with this? Thanks, Prankit
  22. Witam. mam plugin Sonos wykrywa głosnik ale nie mogę uruchomić muzyki zarówno przez www jaki gsm... chodzi o uruchomienie odtwarzania radia z tunein...
  23. Cannon_82

    Sonos Play:1

    Version 1.0.0

    1,347 downloads

    Some of the icons i use for my Sonos Play:1 VDs if somebody need other colors or some more states (e.g., skip or special radio stations) you can contact me and i try to realized that.
  24. Hi, I have the feeling that this is going to be a stupid question but I honestly have no clue how to do it... I have a virtual device controlled by a scene that plays songs. The URLs of those songs are stored in a predefined variable. Everything works perfectly but just because I have the songs saved in my PC. I'd like to store the songs in my Google Play Music account so the songs are always available (not only when my PC is on). On my Sonos app I already added the Google Play Music service and uploaded my songs. However, I don't see how to retrieve the URL of the songs from the Sonos app. Could anyone give me a hand? Many thanks! Raul.
  25. Hi, I need to create scene to work same as pushing physical Play/Stop button on Sonos speaker. According to a hint, the sonos eevice has 4 actions: turnOn, turnOff, setMute and setVolume. Trying this scene, but no reaction: --[[ %% killotherinstances --]] local devid = 153 local state = fibaro:getValue(devid,"state") fibaro:debug(string.format("state %s", state)) if(state=="PLAYING") then fibaro:call(devid,"turnOff") else fibaro:call(devid,"turnOn") end
×
×
  • Create New...