Jump to content
c4forums | The Control4 Community


c4Forums Member
  • Posts

  • Joined

  • Last visited

  • Days Won


Rexabyte last won the day on January 30

Rexabyte had the most liked content!

1 Follower

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

4,147 profile views

Rexabyte's Achievements

  1. Works on my Polly driver, just use the 'Synthesize SSML' command. Example Text: <speak>This is a <break time="3s"/> test.</speak> No need to escape or otherwise worry about the XML formatting.
  2. SSML supports a break tag which from what I can tell should work with both Amazon Polly and Google Text To Speech. <break time="3s"/>. https://cloud.google.com/text-to-speech/docs/ssml https://docs.aws.amazon.com/polly/latest/dg/supportedtags.html#break-tag
  3. I believe it's a command ("GET_EXTRAS_SETUP") from the proxy to the protocol portion of the driver. You need to return the XML you specified above. You need to also handle the extras state ("GET_EXTRAS_STATE") to specify the values in each object. You can send the notifications to update the extras as well (5001 being the thermostat proxy ID): C4:SendToProxy(5001, "EXTRAS_SETUP_CHANGED", {XML = "XmlAsString"}, "NOTIFY") C4:SendToProxy(5001, "EXTRAS_STATE_CHANGED", {XML = "XmlAsString"}, "NOTIFY") Full example: local data = [[<extras_setup> <extra> <section label="Vane Swing"> <object type="list" id="1" label="Vane direction"> <list maxselections="1"> <item text="Auto" value="Auto"/> <item text="Swing" value="Swing"/> <item text="Ceiling" value="Ceiling"/> <item text="High" value="High"/> <item text="Middle" value="Middle"/> <item text="Low" value="Low"/> <item text="Floor" value="Floor"/> </list> </object> </section> </extra> </extras_setup>]] C4:SendToProxy(5001, "EXTRAS_SETUP_CHANGED", {XML = data}, "NOTIFY")
  4. There should be a terminal property in the primary driver. Take one of the shades being listed in the properties (example below is 'DEF') that isn't communicating and enter the following in the terminal: !DEFr?; If it comes back with !DEFEpl; the shade is unable to report or notify of intermediate positions which means the driver can't sync realtime. If you're getting !DEFr###b### it could be an issue with the driver in which case PM me and I'll take a further look. One other question, are you using a DC power panel?
  5. The only difference between the Gen.1 and Gen.2 options are the port, so if it's communicating over port 80 you can leave it with that. The Shade ID's likely don't match up to the previous ones if they were all replaced. The binding logic works based on the shade ID that comes back from the JSON object, if the IDs are all different then it won't be able to find the appropriate binding, hence the following lines: PowerviewAdapter.pollPositions: Unable to get binding for shade: I would clear the shades (Clear Shades action in the driver) and retrieve them again, it will clear the mapping to the old ID's and create new ones. If you're still having issues after the above suggestion, PM me and I'll take a further look.
  6. I'll build something manually with the port change. PM me your email and I'll forward it to you.
  7. The protocol was the same across TCP and Serial for the 203. It was also just an extension on existing APIs. If the TCP port is open and supported on the bdp the driver should work with TCP commands as well.
  8. The IDs are quite consistent across regions and models, you generally shouldn't have any issues.
  9. If they update the application ID you would need to update the mini driver as well. It's been v4 since I created the WebOS driver a few years ago though. For both the base youtube mini driver as well as the kids one. I've been thinking about changing the functionality to work against app names as a fall back as the TV Guide application ID actually changed in WebOS 4.X.
  10. When I have a minute I'll add support for it.
  11. You can find the application ID by launching the application on the TV and looking at the Application ID property in the driver. It will always display the foreground application ID. You can also print out a list of all installed apps and their IDs by hitting the "Display Applications" action and looking at the Lua output window. I would recommend leaving Debug Mode set to Off.
  12. The C4:urlGet command would be sufficient. It also has a callback function containing the body of the response. Should be extremely easy to parse, if there's a need to parse at all. Throw it in a repeating timer and you're basically done.
  13. Good to know. Looking at the library it looks a little bit like how you would poll for a device_code grant with Control4 bridging the OAuth2 gap for you. Has anyone implemented anything with it yet?
  14. Documentation can be found online here: https://github.com/control4/docs-driverworks I would skip DriverEditor entirely and just use something like VS Code. As long as you format the files and build the manifest file for the project to spec you can just build it with the command line using DriverPackager.exe (comes with DriverEditor). Information about the manifest file can be found here: https://control4.github.io/docs-driverworks-fundamentals/#what-is-a-c4zproj-file Most of the C4:urlXXX commands should do what you need if the protocol for the API is HTTP. As for things like OAuth Control4 has a library and example here: https://github.com/control4/docs-driverworks/tree/master/sample_drivers/oauth_example although it does appear you need to contact them for an API Key to use it. AUTHORIZATION = 'C4 API Key for OAuth ', -- provided by C4 on per-application basis If you need specific help with anything you can PM me directly.
  • Create New...