@msiekkinen This is great!!! So what did the final install look like? Has it held up?
-
How exactly does Flic Universal's "Alternative keymap" work? Has anything about it changed with newer versions of iOS 18?
We program our Flic button for Flic Universal, configured to send the Enter key when clicked. We enable the "Alternative keymap" feature so iOS still shows the on-screen keyboard. It's used with a web application to trigger web page buttons. At some point between iOS 16 and iOS 18.3.2, this stopped working: the web page no longer responds to the Flic button. If we pair a regular Bluetooth keyboard along with the Flic button, then the Flic button works as expected. If we disable Flic's "Alternative keymap" feature, then the Flic button works as expected (but we lose the on-screen keyboard). This leads me to believe that something recently changed in iOS regarding how it handles Flic's "Alternative keymap" feature.
-
We are today announcing a Beta release of some new features in the Hub SDK that can be used together with Flic Twist.
In order to seamlessly continue to work with the rest of your smart home devices that you might have assigned to other triggers on the Flic Twist, we introduce the concept of Virtual Devices. A Virtual Device is handled by the Flic Hub firmware just like any other supported real device, but its functionality is implemented by the user in the Hub SDK, typically by writing some kind of bridge software that sends commands and receives update events over the LAN to/from the real device. If for example the brightness of a (real) light is changed by some external means, it is possible to tell the Flic Hub firmware from javascript about the new brightness level, which the hub then forwards to the Flic Twist, so that the LED status can update accordingly. That way when you twist it, it will start from the correct position.
We are also adding a "message" action that can be used to send arbitrary strings to your scripts whenever the action is triggered. The intended use case is to be able to trigger custom code also for Push/Double Push in the Selector feature or perform some action when a specific point is reached in Advanced Dimming or Scene Blender.
The virtual devices can be created in the Flic App and be set to be controlled by a Flic Twist as follows:
IMG_9799.png
IMG_9797.png
Using this piece of code, updates are received in your javascript code after configuring a virtual device to be triggered in the Flic App for a specific Flic Twist:
const flicapp = require("flicapp"); flicapp.on("virtualDeviceUpdate", (metaData, values) => { // The values object can contain hue, saturation, brightness, colorTemperature, volume, position (for blinds) console.log(`Twist ${metaData.buttonId} updated virtual device ${metaData.virtualDeviceId} of type ${metaData.dimmableType} with these values: ${JSON.stringify(values)}`); });When a device is modified externally, we use this function to inform the system of the change:
flicapp.virtualDeviceUpdateState(dimmableType, virtualDeviceId, values);The dimmableType can be either "Light", "Speaker" or "Blind". The values is an object containing at least one of the fields mentioned above that is appropriate for the corresponding dimmableType. For example:
flicapp.virtualDeviceUpdateState("Light", "my_ceiling_light", {hue: 0.6, saturation: 0.7, brightness: 0.8});The values themselves are always floating point numbers between 0 and 1.
Configure an action message to be triggered by assigning the following action in the Flic app:
IMG_9798.png
The action messages are easy to receive, just register a listener as follows:
flicapp.on("actionMessage", message => console.log(`Got a message: ${message}`));We'd love to hear your feedback!
-
20200911_112056.jpg
Got the faceplate for $9. I didn't even realize it came with the circular sized faceplace that is surprisingly perfect for the flic and the rubber gommet. I picked up the gommet separately at lowes.
20200911_112129.jpg
Flic in gommet in faceplate like they were made for each other.
20200911_112802.jpg
How the front looks snapped together. I used a utility knife to carefully trim down a top half of the gommet for a snug fit.
20200911_194000.jpg
Backside view. Basic standard weather insulation and plate, from lowes for a couple bucks. Again this insulation came pre perferated for what is apparently a standard sized flic button. What was removed was placed inside the cavity behind the flic. I intentionally didn't back it flush with the back of the gommet to extrude out just a bit (preference really). And then to help make sure it doesn't fall back inward after pressing it a bunch.
I combined the front and rear plates together as the complete unit. Since they're both intended to be mounted on a gang box none of the holes are threaded so I needed a couple bolts to just hold it all together.
To be determined how well it holds up. It'll be covered on my patio from direct rain, really the main concern now is just seeing how long it can keep up in the Texas heat š
-
So I understand that in order to play a playlist on Sonos it needs to specifically be a "Sonos Playlist". And I understand and can confirm that the current Sonos mobile app doesn't allow for the creation of a Sonos Playlist but the Mac client app does. That's all clear (even with the Sonos debacle).
My question is specifically about Sonos Favorites. Within the Flic app I only see an option to select Sonos Playlists. I'm suggesting Flic adds the feature to select Sonos Favorites. I understand capabilities are limited to what Sonos exposes. I currently see that within IFTTT I can create an applet that allows me to choose a Sonos Favorite (it even groups the favorites by Sonos household), so it seems that Sonos does make their Favorites available.
And if I've somehow missed how to have Flic show my available Sonos Favorites, please point me in the right direction. Thanks.
(And you might ask, if I can do it within IFTTT then why not just use that integration instead of using Sonos directly via Flic. Well, 3 reasons - 1 fewer hops is better, 2 - IFTTT response time to play the Favorite has a delay, 3 - IFTTT doesn't have a Play Toggle option for the action. This is the most important reason. Within Flic, I can have a single Push function for both Play and Stop. If I use IFTTT I would need to have a single Push for Play and a double Push for Stop. So I lose one of the valuable functions of the Flic button.)