bnet Posted May 11, 2020 Share Posted May 11, 2020 Rename your Control4 devices without Composer… or programming! Use bRename’s internal web server to view your devices, rename them and refresh your navigators. Accessible from a standard browser or a touchscreen navigator. Installers - perfect for clients who have changed the spelling of their children's names 3 times. It was a "Bathroom", a "Vanity", a "Toilet" and now it’s a "Powder Room"? Homeowners - change that "Bedroom" to an "Exercise Room”, then change it again and again and the next one again and again – all without involving your dealer. It is your system, make it perfect. https://bnet4solutions.com/brename/ Was $50, is $50, will be $50 mujtaba.khokhar 1 Quote Link to comment Share on other sites More sharing options...
msgreenf Posted May 11, 2020 Share Posted May 11, 2020 nice job! Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 Curious. Did this get approval from Control4? Seems like something they may take issue with. Quote Link to comment Share on other sites More sharing options...
bnet Posted May 11, 2020 Author Share Posted May 11, 2020 by my read, does not violate the licensing agreement Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 39 minutes ago, bnet said: by my read, does not violate the licensing agreement That does not give me confidence in trying it as a solution nor something I would recommend to others. To me that reads as 'I hacked shit, but did not get explicit approval'. Quote Link to comment Share on other sites More sharing options...
LollerAgent Posted May 11, 2020 Share Posted May 11, 2020 1 hour ago, Dunamivora said: Curious. Did this get approval from Control4? Seems like something they may take issue with. This isn't the first "rename" driver. Nobody said you had to recommend it to anyone. tdougray 1 Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 1 minute ago, LollerAgent said: This isn't the first "rename" driver. Nobody said you had to recommend it to anyone. Link to another one? Seems odd to me to approve something only in Composer Pro. Quote Link to comment Share on other sites More sharing options...
LollerAgent Posted May 11, 2020 Share Posted May 11, 2020 Just now, Dunamivora said: Link to another one? Seems odd to me to approve something only in Composer Pro. https://www.blackwiredesigns.com/store/c4-device-renamer/ Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 Ah, main difference being HE is still required. I could see that being approved and a solution I'd look at. It just means the possibility and functions are there. I would still be very surprised about Control4 approving of this alternative. Quote Link to comment Share on other sites More sharing options...
msgreenf Posted May 11, 2020 Share Posted May 11, 2020 This is using the same APIs just with a web front end. It's a cool idea! South Africa C4 user 1 Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 I don't know that it is. The doc shows it hosts a web server on the controller. Maybe I missed something, but that doesn't seem like something a driver should be doing. Quote Link to comment Share on other sites More sharing options...
bnet Posted May 11, 2020 Author Share Posted May 11, 2020 1 hour ago, Dunamivora said: That does not give me confidence in trying it as a solution nor something I would recommend to others. To me that reads as 'I hacked shit, but did not get explicit approval'. yup - hacked. so hacked i even added C4:RenameDevice() to their documentation while i was in there so everyone else can hack. that's the actual API call if you want me to look it up for you. South Africa C4 user 1 Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 4 minutes ago, bnet said: yup - hacked. so hacked i even added C4:RenameDevice() to their documentation while i was in there so everyone else can hack. that's the actual API call if you want me to look it up for you. Hacked can also mean using an API in an unapproved method, right? Even if the API calls exist, they can be used without the API owner's permission (hack), then the API owner can shut it down. I recall Control4 shutting down a 'hacked' MyQ driver recently. Quote Link to comment Share on other sites More sharing options...
msgreenf Posted May 11, 2020 Share Posted May 11, 2020 The myq is different. That is using a hacked API. This is using approved API calls from c4. But I don't think running a web shell on the controller is approved -defunct- 1 Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 But honestly, A 'I reached out to Control4, and they approve of this driver implementation or have no issues with it' was all I was asking. Quote Link to comment Share on other sites More sharing options...
bnet Posted May 11, 2020 Author Share Posted May 11, 2020 54 minutes ago, Dunamivora said: I don't know that it is. The doc shows it hosts a web server on the controller. Maybe I missed something, but that doesn't seem like something a driver should be doing. hmm, where to start... should i give an example of another driver listening on a server port? multi-x rf repeater, virtually any ip-based driver... or should i list some C4 network APIs that are provided specifically create client/server interactions? C4:CreateNetworkConnection(), C4:GetNetworkConnections(), C4:ReceivedFromNetwork() or about 15 others or should i copy/paste the server sockets example directly from C4's API documentation... so many options South Africa C4 user 1 Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 Handling IP communication is different than spinning up a webserver. Quote Link to comment Share on other sites More sharing options...
-defunct- Posted May 11, 2020 Share Posted May 11, 2020 But, since it's driver-based, I'm less concerned. I was initially concerned if my clients could just buy it and start running with it. I'm not inclined to have another webserver running on the controller, so you don't have to listen to my feedback since I won't be using it. Thanks for letting me know that you don't know if Control4 would approve of it though. That is interesting. Quote Link to comment Share on other sites More sharing options...
WholeHomeControl Posted May 12, 2020 Share Posted May 12, 2020 There are many drivers that run socket servers, so I think there’s a good chance C4 would approve of this. Anyway, kudos for the idea and the execution. Quote Link to comment Share on other sites More sharing options...
alanchow Posted May 12, 2020 Share Posted May 12, 2020 2 hours ago, Dunamivora said: Ah, main difference being HE is still required. I could see that being approved and a solution I'd look at. It just means the possibility and functions are there. I would still be very surprised about Control4 approving of this alternative. Its an official Control4 API. As such no approval required (unless he is reverse engineering the Control4 broker communications or using the soon to be deprecated C4SOAP calls). Having said that Control4 did tell us off a few years back for hosting web content on the controllers (even though it wasn't using a real web server - just a server socket) which is why we moved newer drivers to our online hosting services but still using extremely basic web based callbacks. Would probably reach out about that part to get their blessing. -defunct- 1 Quote Link to comment Share on other sites More sharing options...
WholeHomeControl Posted May 12, 2020 Share Posted May 12, 2020 4 minutes ago, alanchow said: Having said that Control4 did tell us off a few years back for hosting web content on the controllers (even though it wasn't using a real web server - just a server socket) which is why we moved newer drivers to our online hosting services but still using extremely basic web based callbacks. What do you mean by “hosting content?” Were you storing files/data on the controller? Just trying to understand what sort of things C4 would be concerned about. (After all, implementing a driver that can field HTTP requests in and of itself seems right in line with why C4 provides the various network libs.) Quote Link to comment Share on other sites More sharing options...
alanchow Posted May 12, 2020 Share Posted May 12, 2020 19 minutes ago, WholeHomeControl said: What do you mean by “hosting content?” Were you storing files/data on the controller? Just trying to understand what sort of things C4 would be concerned about. (After all, implementing a driver that can field HTTP requests in and of itself seems right in line with why C4 provides the various network libs.) Here is a snippet from my conversations with Control4 a few years back. Quote Unfortunately, this does present a problem for us at it pertains to the HTML application itself. I understand your desire to use the controller to store HTML assets with the payload being delivered via the driver and the WebView URL. However, the only way we were able to get approval from our executives to expose this functionality was to stipulate that we wouldn’t allow the Controller to be used as a web server. The bottom line on this is that perhaps we are a bit paranoid <grin>… but we think we have reason to be. It’s not hard to write HTML5 and JavaScript, but it’s also easy to do bad things. As a company, we are concerned with releasing a technology that allows for our controller to become overloaded with other processing tasks. A simple redirect page won’t cause that to happen. But building an HTML/JS application into a driver and turning the controller into a web server is a slippery slope – thus the conditions we’ve requested. Thus, we request (require?) that the HTML/JS application be hosted externally (device, nuc/WS, cloud, …) for applications delivered via the WebView experience button in the OS 2.10 timeframe. This is what we evetually agreed was ok for us to do and the rough strategy of what we have been doing since (this is how our scheduler works, contact us, advanced custom buttons works) Quote HTML files hosted externally on a website. WebView calls this url (http://www.chowmainsoft.com/energy) This loads HTML5/Javascript whatever into the webview touchscreen. HTML5/Javascript communicates to the hostname director (which the touchscreen translates to the local ip address) via websockets or callback and the driver then sends data to the HTML5/Javascript AK1, WholeHomeControl, South Africa C4 user and 3 others 4 2 Quote Link to comment Share on other sites More sharing options...
AK1 Posted May 12, 2020 Share Posted May 12, 2020 This is impressive, well done, it's more accessible to homeowners by not requiring Composer HE. Quote Link to comment Share on other sites More sharing options...
bnet Posted May 12, 2020 Author Share Posted May 12, 2020 @alanchow - thanks for info. technically it checks (obviously, your doing it) but it does not seem to pass my sanity check: i'll add some profiling code but best guess is that 80%+ of the processing time on my main page is in/on C4:GetProjectItems() - even passing all the filter flags i can it is an expensive call. i'm not serving rich content or streaming anything - just generated html with a style sheet and javascript. there are no static pages or content i've stashed on the controller. even the icons are served by ngnix, not the driver. no matter where the html is generated, i will still need to call GetProjectItems so the above "negotiated settlement" is a work-around for a negligible portion of the processing load. in fact, there is likely an extra step - encoding GetProjectItems's output before shipping to client - no one should have to deal with that xml directly. so when the dust settles, i'll still have a process (same driver), listening on the controller (same port), serving content (maybe begins with a "{" instead of "<html>"), talking to a client (same browser, javascript/ws vs http get). i haven't implemented it so i could be very wrong (am i?), but the before looks very similar to the after. but, if this is where they have drawn the line, so be it - on to v2 Quote Link to comment Share on other sites More sharing options...
WholeHomeControl Posted May 12, 2020 Share Posted May 12, 2020 It seems from the C4 communication that Alan posted that C4’s objection to the architecture is not because it will cause problems in the simplest case, but rather because it presents a slippery slope to implementations that will cause problems. From that standpoint, it seems like C4 has taken a reasonable position on this. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.