Jump to content
C4 Forums | Control4

Rexabyte

c4Forums Member
  • Posts

    236
  • Joined

  • Last visited

  • Days Won

    8

Reputation Activity

  1. Upvote
    Rexabyte reacted to zaphod in Snap VS JoshAI   
    This is exactly why I still prefer the older SR remotes to the Neeo.  I need to be able to use the transport controls without looking for when I watch sports as I ride the FF and SkipFwd buttons constantly when watching sports, which is 90% of my TV watching.
  2. Like
    Rexabyte got a reaction from South Africa C4 user in Mini Driver Creator   
    Send me the resulting .c4z file and I'll see what's up with it. If there's a bug somewhere I'll release a hotfix.
  3. Like
    Rexabyte got a reaction from South Africa C4 user in How do I put the contents of a number variable into a string variable? (Text to Speech)   
    Proxy ID is the ID of an actual proxy (television, security_panel, light_v2 etc.) attached to a driver, there can be several. If you wanted a variable in relation to a light for example you would need to target the Proxy ID.

    Device ID is the ID of encompassing device (driver). Some devices do not have a proxy, these should be flagged with a combo element in the XML portion of the driver meaning they are both a proxy & device driver and share an ID (Device ID). If I create a variable in code from a driver the resulting variable gets placed on the device (use Device ID to reference).

    In the composer tree it's typical that the first proxy device is merged into the encompassing device visually and it doesn't make its own branch. A good example are lights with keypads. The light_v2 proxy gets displayed on the device and the keypad gets branched to a new node.

    @South Africa C4 user
    Hope this helps!
  4. Like
    Rexabyte got a reaction from cnicholson in How do I put the contents of a number variable into a string variable? (Text to Speech)   
    Proxy ID is the ID of an actual proxy (television, security_panel, light_v2 etc.) attached to a driver, there can be several. If you wanted a variable in relation to a light for example you would need to target the Proxy ID.

    Device ID is the ID of encompassing device (driver). Some devices do not have a proxy, these should be flagged with a combo element in the XML portion of the driver meaning they are both a proxy & device driver and share an ID (Device ID). If I create a variable in code from a driver the resulting variable gets placed on the device (use Device ID to reference).

    In the composer tree it's typical that the first proxy device is merged into the encompassing device visually and it doesn't make its own branch. A good example are lights with keypads. The light_v2 proxy gets displayed on the device and the keypad gets branched to a new node.

    @South Africa C4 user
    Hope this helps!
  5. Like
    Rexabyte got a reaction from msgreenf in What's the latest Text to Voice?   
    https://www.control4.com/help/bin/moip/900-ig/Content/Ryff to MoIP.htm
    Any of the drivers mentioned above would experience the same issue.
  6. Like
    Rexabyte got a reaction from Dueport in Annex4 Hydrawise Driver   
    Not gone. Not sure who told you that. Bunch of changes coming September/October including some new drivers.

    All of our drivers at the moment are technically just served over Amazon S3 and we're not currently generating presigned URLs for download. Technically anyone with access can give you the link. I don't want to post them in a public forum but I'll PM them to you shortly.
  7. Upvote
    Rexabyte reacted to Andrew H in How to create a new driver from scratch   
    There's a few discussions on this forum on the topic. See here to get started.
     
    Control4's Github page has a lot of good information about driver development and is going to be your best resource by far. I'd recommend getting your feet wet with DriverEditor, which you can download from the Control4 dealer portal. It's not a great tool for long term use, but it has everything laid out in a way that is specific to C4 drivers. The post I copied here has some good information about getting started with better tools once you have a basic understanding of a C4 drivers anatomy.
     
    If you find that anything isn't clear or is missing from that post (and the post linked within that post), I'd be happy to help with a more specific question. For now you should start with the things I listed and just play around.
  8. Upvote
    Rexabyte got a reaction from Matt Lowe in Driver Development   
    I'm in the process of updating my VSCode extension I started long ago. I actually just added support for updating Lua script today after Ryan's comment.

    The formatting of the driver is quite different and there's no modifications inside of XML anymore. Most sections are broken out into JSON files for their specific purposes (properties, commands, events, connections, etc) and provide a webview for modification, you can still edit the underlying JSON file as well (backed by JSON schemas)

    I've also been able to include some improvements for things that bothered me, for example you can now specify the amount of HDMI connections you want to generate rather than copy pasting a bunch of XML blocks:


    Properties & Webview example:


    Auto completion of functions:


    Signature helpers:


    All that being said I still haven't pushed a release as there are some issues to work out around the UI capability section.

    Repository here: https://github.com/annex4-inc/vscode-control4-ext
  9. Like
    Rexabyte got a reaction from Andrew H in Driver Development   
    I'm in the process of updating my VSCode extension I started long ago. I actually just added support for updating Lua script today after Ryan's comment.

    The formatting of the driver is quite different and there's no modifications inside of XML anymore. Most sections are broken out into JSON files for their specific purposes (properties, commands, events, connections, etc) and provide a webview for modification, you can still edit the underlying JSON file as well (backed by JSON schemas)

    I've also been able to include some improvements for things that bothered me, for example you can now specify the amount of HDMI connections you want to generate rather than copy pasting a bunch of XML blocks:


    Properties & Webview example:


    Auto completion of functions:


    Signature helpers:


    All that being said I still haven't pushed a release as there are some issues to work out around the UI capability section.

    Repository here: https://github.com/annex4-inc/vscode-control4-ext
  10. Like
    Rexabyte got a reaction from RyanE in Driver Development   
    I'm in the process of updating my VSCode extension I started long ago. I actually just added support for updating Lua script today after Ryan's comment.

    The formatting of the driver is quite different and there's no modifications inside of XML anymore. Most sections are broken out into JSON files for their specific purposes (properties, commands, events, connections, etc) and provide a webview for modification, you can still edit the underlying JSON file as well (backed by JSON schemas)

    I've also been able to include some improvements for things that bothered me, for example you can now specify the amount of HDMI connections you want to generate rather than copy pasting a bunch of XML blocks:


    Properties & Webview example:


    Auto completion of functions:


    Signature helpers:


    All that being said I still haven't pushed a release as there are some issues to work out around the UI capability section.

    Repository here: https://github.com/annex4-inc/vscode-control4-ext
  11. Like
    Rexabyte got a reaction from Neo1738 in Trouble with LG OLED TV and Annex4 driver - will not turn off   
    If you set the 'Debug Mode' property to 'Debug' in the driver and replicate the issue I can take a look, just PM me the Lua output or open a ticket on our site and provide it there. Should tell me if its the driver causing it (by sending WOL packets) or something external (like CEC mentioned above.)

    The last time someone reported something similar they had setup programming to send a WOL command to power on the TV when they detected the TCP port disconnect (which happens on TV off.)
  12. Like
    Rexabyte got a reaction from South Africa C4 user in Trouble with LG OLED TV and Annex4 driver - will not turn off   
    If you set the 'Debug Mode' property to 'Debug' in the driver and replicate the issue I can take a look, just PM me the Lua output or open a ticket on our site and provide it there. Should tell me if its the driver causing it (by sending WOL packets) or something external (like CEC mentioned above.)

    The last time someone reported something similar they had setup programming to send a WOL command to power on the TV when they detected the TCP port disconnect (which happens on TV off.)
  13. Upvote
    Rexabyte got a reaction from Andrew H in Control4 customer site down?   
    https://status.aws.amazon.com/
  14. Upvote
    Rexabyte reacted to therockhr in When implementing a system, do I need an EA-1 at each TV?   
    Is that a qualifier in determining if someone can ask for help in here? I'm not being facetious I am genuinely asking because I see these threads pop up quite a bit where people start questioning whether a user has legitimate access. If it is, then I think that something needs added to the site FAQ or something that says users who do not have legitimate access to Composer Pro are not allowed to ask questions about it.
    OR (and this is what I would suggest) it is assumed that everyone who asks a Composer Pro related question (not access mind you, technical questions) has legitimate access. If someone feels the user may be lying and/or can't be helped because they don't understand basic concepts then they should refrain from helping.
  15. Upvote
    Rexabyte reacted to RyanE in Sample driver question (thermostat v2)   
    Rex,
    You have that a bit backwards, but almost the right idea...  In your example, those are all *from* the protocol *to* the proxy, and there's no '_HAS' in them...
    EXTRAS_SETUP_CHANGED is how you would dynamically change the set of extras from the driver side of things, and EXTRAS_STATE_CHANGED is how you'd change the current value of the extra(s).
    I prefer that to declaring them in the .XML part of the driver.
    If you want your extras to tell the driver when things change, you need to add a command and add a value to the extra object.
    Here's an example of setting up extras with a single 'Away Status' selection:
    MySendToProxy(PROXY_BINDING, "EXTRAS_SETUP_CHANGED", { XML = [[ <extras_setup> <extra>       <object type="list" id="away" label="Away Status" value="home" command="SET_AWAY">         <list maxselections="1">           <item text="Away" value="away"/>           <item text="Home" value="home"/>         </list>       </object> </extra> </extras_setup> ]] } ) Then, when it's changed via the Navigator UI, it will come in through ReceivedFromProxy.  In this case, in a command called 'SET_AWAY', with a param called 'value', that either has 'away' or 'home' in it.
    The appropriate EXTRAS_STATE_CHANGED would look like this:
    MySendToProxy(PROXY_BINDING, "EXTRAS_STATE_CHANGED", {XML = '<extras_state><extra><object id="away" value="away"/></extra></extras_state>'} ) RyanE
  16. Like
    Rexabyte got a reaction from CameronE in Sample driver question (thermostat v2)   
    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")  
  17. Like
    Rexabyte got a reaction from l3anks in Annex LG WebOS   
    https://mdc.rjboucher.com/
  18. Like
    Rexabyte got a reaction from c44me in Oppo BDP-103 IP driver   
    I'll build something manually with the port change. PM me your email and I'll forward it to you.
  19. Like
    Rexabyte got a reaction from c44me in Oppo BDP-103 IP driver   
    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.
  20. Like
    Rexabyte got a reaction from msgreenf in Oppo BDP-103 IP driver   
    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.
  21. Like
    Rexabyte got a reaction from cpereira in Annex LG WebOS   
    https://mdc.rjboucher.com/
  22. Like
    Rexabyte got a reaction from South Africa C4 user in Public IP address   
    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.
  23. Like
    Rexabyte got a reaction from Dan Perkins in Need help!!!! New to C4 and creating drivers.   
    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.
  24. Like
    Rexabyte got a reaction from msgreenf in Need help!!!! New to C4 and creating drivers.   
    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.
  25. Upvote
    Rexabyte reacted to msgreenf in Can't connect to C4 anymore   
    sounds like a bad driver if it works for a minute then stops
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.