So i spent some time looking into the problem… basically you get a Null Pointer Exception at line 137 in the code. When you look at what is happening, it is grabbing the module value but it isnt grabbing it correctly (actually the same is happening with the GPIO but we dont need this information if we have the module ID)
The value for the module ends up being something like [71:Sonoff iFan03] … note the value is in square brackets [ ] and this isnt correct. It means it is within an object (Im assuming) but Im too tired right now to see how that has happened.
Anyway I was being lazy so I just forced the right value ie without it being in an object. And basically the driver creates the child and the child happily works with the iFan03. I also modified the device so it is a little easier to use (based upon the kind of way dalec did his driver.)
Problem is the default software from Brett isnt working. Not a showstopper once you know where the problem is, but the real issue is how do we fix the NPE.
Oh and this isnt the only device Im getting the NPE with, so it is a more generic problem than with the iFan03.