I'm not up with mg copywrite law but there is no financial gain from someone else taking it on so surely worst case scenario is a cease a desist letter from a lawyer as to which said developed just deletes the code. I can't see anything this menial going to court.
Yes especially when it's openly being worked on in a community forum with no sign of covering up the previous recognition of the original author or as you said, no financial gain.
If I was a developer I would take it on, sadly I'm not and have only edited some bits to help me
I am not a lawyer, but my work involves a great deal of stuff with software licensing.
This is a very clear-cut instance. The author holds complete copyright. Stop. Period. End of discussion. No one else has permission to distribute or modify the code, for whatever reason -- there are no exceptions for "non-profit" use.
Agreed, there is very little chance of this going to court. However, the more this is discussed, the greater the chance of some legal action, short of an actual lawsuit or court filing.
The "worst case" is not just that the author deletes the code -- he has done that already. The likely repercussions of any legal action are that:
- Hubitat Elevation (the company) receives a DMCA take-down notice (easily & cheaply generated, almost impossible to fight) notifying them that this discussion thread is in violation of @cybrmage's copyright and demanding that all posts in this thread be removed. Maybe HE gets scared enough to prohibit any source code postings in any discussion thread. Maybe their hosting provider shuts down hubitat.com when it's identified as a software piracy site.
- Individuals who have publically contributed modifications to the source code and/or made the code available are named in separate DMCA notices.
- The most likely serious outcome would not be a lawsuit itself, but that a new developer would be scared away from producing a clean, non-infringing work.
I don't know @cybrmage, don't know why he or she didn't use a more permissive license, didn't put the code on a public repository, and don't know why they chose to stop distribuging the code or participating in this community. My concern -- and this is only speculation, with no factual basis -- is that the author was somehow employed in producing software for a home automation system or a Broadlink device, and they pulled their source code because of that conflict. If that's the case (as I engage in more rampant speculation), then our continued "development" could be a more serious issue than simply violating copyright held by an individual developer.
My ideas on this are:
- If you've already got the code, you're probably OK to keep using the driver & application.
- It's probably OK to share info about how to use the driver & application, without modification.
- It may be OK to give general info about how to modify the driver & application, without any specifics or source code (ie., "make sure that IR codes are sent without repeats", not "change line 53 to read ..."). This is edging into DMCA territory.
- Avoid public postings with the URL to the source code or modifications.
- Any future development by 3rd parties should be done cleanly, by someone who has never seen the original code.
- We should offer support (financial, acknowledgment of gratitude) to any developer -- including @cybrmage -- who releases an open-source version of an application & driver that performs these functions.
I took a quick Google of his user and looks like he has done a couple of code removals and vanished.
http://forum.micasaverde.com/index.php?topic=52663.0
I also read he had a heart attack a long while ago, so maybe he vanished due to health reasons.
Hi Shaneb,
Reading the link you put here, a guy got back from him and got a feedback about the possibility of uploading that code again in the web:
“ Yes, I finally heard back from him. He did not want the plugin on GitHub, and no reason given. So basically it’s gone.”
Unfortunately, here was clear that he didn’t want to release that code to others and didn’t say why. Really sad.
I have the same problem, someone have a solution for that ?
I found a NEW issue at least for me. The Broadlink pro cease to connect to the network once i turned on some useless feature on my router setting. From there it was a PITA to make it join my network again, but after a couple of hours I succeed. Now is connected and even added to IHC app and added some of my Broadlink wall switches and via INC everything works fine.
The issue comes with hubitat since no command is able to reach the device. I tried deleting the BL from the hub via the app and adding it again and syncing all codes but noting happens, not even the light when you send a code is blinking.
I discarded a network issue since I'm able to send commands to the device with my mobile phone, though IHC and also the oldie e-control.
Just a thought...Did the device's IP address change? I don't believe IHC requires a fixed IP address.
long time ago I had an issue with a couple of devices and happens to be anIP comflict. Since then I use to tinker with DHCP reservation all devices that are not connected to and UPS or the ones like the Rpi tha runs my grafana and influx servers having a fixed IP
I found a workaround for my no-response issue with the Broadlink Pro. In order to enable receiving information, via APP try to add a IR code turning on the add feature. That simple step made the BL start responding to command. Now everything is running like a charm.
Also IHC app is working simultaneously! in the words of @arnb a couple of thread lines ago: "don't mess with success!"
Good that you got it working. My gut says this was an Orbi issue.
When I recently converted from my TP-Link router to the Orbi Mesh, I decided to keep the network/password and IP address structure, mainly because the RM Mini3s refuse to initialize when confronted with a mixed 2.4 and 5 signal, and there is no way to do this with he Orbi, making a device reset and reinstall impossible. The RM3s were a nightmare to initialize on the TP-Link and redoing it on the Orbi was out of the question.
Additionally, the Orbi "attached devices" page was total garbage once an RM3 was added to the wifi network. I worked with support, and the latest firmware release fixed the issue. However, the RM3s always appear in the "not attached" device listings, probably because they don't anything until a command is issued.
now I can see a pattern. I moved from a Apple airport extreme-airport express setup to a Nova Mesh system. I remember in order to make BL devices with the airport routers work I had to turn off the 5G network. Totally forgot that.
I have a similar situation with a leviton wifi switch that is refusing with all it strengths to receive again the wifi config. I have a GE zigbee dimmer in the ebay cart
For what it's worth in future, when I first switched to the orbi setup I had to split 2.4 and 5GHz to configure a few legacy devices (older ip cameras in the main), you can - or could, I've not tried recently - do this via command line over telnet.
That option no longer appears to be available on my Orbi system running firmware V2.6.1.36, nor do I remember seeing that option. I have no idea how Broadlink devices like an RM3 Mini could be Wifi installed with an Orbi system, except perhaps by turning off the satellites, then getting out of the main router's 5ghz range into an area with a solid 2.4ghz signal. However, once the Broadlink device is initialized, it works with the dual band signal. Just don't use the newer Broadlink app, it locks out devices from being used locally.
I feel the Orbi targets the set it, I don't understand Wifi, then forget it mentality. For example: it also does not allow blocking an external IP address.
However, I feel it is a good, although pricey, mesh router and it greatly improved coverage in my house.
Someone know what this error mean ?
java.lang.NullPointerException: Cannot get property 'value' on null object on line 371 (handleThermostatEvents)
The network device ID if my HVAC device is alway : RC_HVAC_DRIVER_name
It's normal ?
Thank you.
Please post the version being used, that line number does not match up to anything I see with public static String version() { return "v0.26 2020-05-10" } Should be at the beginning of RC HVAC Manager Child source.
I use the lastest version (with the patch for new RM3 mini with 2 extra header bytes) :
Broadlink RM/RM Pro/RM Mini/SP driver for Hubitat v0.50 2020-05-10 (1440 lines)
RC HVAC Thermostat diver for hubitat "v0.26 2020-05-10" (Only 366 lines)
I can control my Mitsubishi Mini split with learn et send code directly with the broadlink driver, but I cant use the HAVC AP, logs exemple :
-
app:1282020-11-15 02:36:38.332 pm errorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 371 (handleThermostatEvents)
-
dev:852020-11-15 02:36:38.279 pm debug[test DRIVER] Send_Event - Sending event [[name:thermostatModeStr, value:heat, descriptionText:Thermostat Mode set to heat, isStateChange:true]]
-
dev:852020-11-15 02:36:38.277 pm debug[test DRIVER] Send_Event - Sending event [[name:thermostatMode, value:heat, descriptionText:Thermostat Mode set to heat, isStateChange:true]]
-
dev:852020-11-15 02:36:38.276 pm debug[test DRIVER] Executing 'heat'
-
dev:852020-11-15 02:36:38.274 pm debug[test DRIVER] setThermostatMode(heat)
-
app:1282020-11-15 02:36:35.572 pm errorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 371 (handleThermostatEvents)
-
dev:852020-11-15 02:36:35.516 pm debug[test DRIVER] Send_Event - Sending event [[name:thermostatModeStr, value:cool, descriptionText:Thermostat Mode set to cool, isStateChange:true]]
-
dev:852020-11-15 02:36:35.514 pm debug[test DRIVER] Send_Event - Sending event [[name:thermostatMode, value:cool, descriptionText:Thermostat Mode set to cool, isStateChange:true]]
-
dev:852020-11-15 02:36:35.512 pm debug[test DRIVER] Executing 'cool'
-
dev:852020-11-15 02:36:35.511 pm debug[test DRIVER] setThermostatMode(cool)
-
app:1282020-11-15 02:36:12.404 pm errorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 371 (handleThermostatEvents)
-
dev:852020-11-15 02:36:12.349 pm debug[test DRIVER] Send_Event - Sending event [[name:thermostatFanMode, value:low, descriptionText:Thermostat Fan Mode set to low, isStateChange:true]]
-
dev:852020-11-15 02:36:12.347 pm debug[test DRIVER] Executing 'fanLow'
-
dev:852020-11-15 02:36:08.699 pm errorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 294 (refresh)
-
dev:852020-11-15 02:36:08.650 pm debug[test DRIVER] initialize: Initial values: cMin [16] cMax [31] hMin [16] hMax [31] tModes [[off, auto, cool, heat, dry]] tFanModes [[auto, high, medium, low, quiet]]
-
dev:852020-11-15 02:36:08.647 pm debug[test DRIVER] Send_Event - Sending event [[name:supportedThermostatFanModes, value:[auto, high, medium, low, quiet], isStateChange:true]]
-
dev:852020-11-15 02:36:08.645 pm debug[test DRIVER] Send_Event - Sending event [[name:supportedThermostatModes, value:[off, auto, cool, heat, dry], isStateChange:true]]
-
dev:852020-11-15 02:36:08.642 pm debug[test DRIVER] Send_Event - Sending event [[name:temperatureDisplayScale, value:C, descriptionText:temperatureDisplayScale set to C, isStateChange:true]]
-
dev:852020-11-15 02:36:08.639 pm debug[test DRIVER] Send_Event - Sending event [[name:temperatureScale, value:C, descriptionText:temperatureScale set to C}, isStateChange:true]]
-
dev:852020-11-15 02:36:08.637 pm debug[test DRIVER] initialize: rangeValues [[cooltempmin:16, cooltempmax:31, heattempmin:16, heattempmax:31, supportedThermostatModes:[off, auto, cool, heat, dry], supportedThermostatFanModes:[auto, high, medium, low, quiet], deviceProtocol:Mitsubishi0x01, periodicUpdates:false, updatePeriod:null, autoModeTempSetpoint:null]]
-
dev:852020-11-15 02:36:08.617 pm debug[test DRIVER] initialize: Version v0.26 2020-05-10 - Initializing device RC_HVAC_DRIVER_test debug [true] debugVerbose [false]
-
dev:852020-11-15 02:36:08.615 pm debug[test DRIVER] refresh: Version v0.26 2020-05-10
-
app:1282020-11-15 02:35:08.138 pm errorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 371 (handleThermostatEvents)
-
dev:852020-11-15 02:35:08.072 pm debug[test DRIVER] Send_Event - Sending event [[name:thermostatFanMode, value:low, descriptionText:Thermostat Fan Mode set to low, isStateChange:true]]
-
dev:852020-11-15 02:35:08.070 pm debug[test DRIVER] Executing 'fanLow'
-
dev:852020-11-15 02:35:04.073 pm errorjava.lang.NullPointerException: Cannot get property 'value' on null object on line 294 (initialize)
I cannot learn every IR codes possibilities because each code include 4 values for the mini split.
Do you think I should try with an older version? Is anyone using an old version that I could test please ? Thank you for your help.
That would be in the def sendCode_Mitsubishi routine.
In an unmodified version line 371 is
def tTemp = getChildDevices()[0].currentState("thermostatSetpoint").value
Based upon what I see in the code a thermostat setting is either undefined or unset. It could also be thermostatMode or thermostatFanMode
would anyone be able to share the code?