-
-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ThinQ Oven Support #87
Comments
I removed any lines that were relating to a different homebridge package, so that's what all the lines that are just an ellipse is. I didn't realize the log only covers about a day with how much I've got running on it, so I think this only has oven messages. I will try to remember to grab the log again the next time I use the stove top and timer as well. |
I'll install this plugin this weekend and pull logs from my oven. Thanks for providing instructions on how to do so. My model is the |
Oven model is WLC389PC. Homebridge debug logging attached. |
Oven model is LSGS6338F. Debug logging attached. |
Hello nVuln, I am currently working on an Oven implementation using your plugin as base, but so far I am only able to get the current status of the oven (I show different options using a TV accessory and the inputs of the TV as different Status messages), however, cannot figure out how to send commands to the oven to start cooking or set timers. Could you help me out figuring out how to send commands to the oven? When I am done I will be happy to share the code. In addition that I will be also modifying it to support a Microwave as well. Here is an example of what I have for the oven and what I did for a dishwasher I have. Kind regards, |
@carlosgamezvillegas you can use a network traffic capture tool to try capture command sent from lg thinq app again, thank you very much for your work, it's hard to working without real device for testing p/s: found ios version https://apps.apple.com/us/app/proxyman/id1551292695 , no pc needed to debug |
Hello nVuln, I finished the code to add an LG range with a single oven and an Over the Range Microwave (with Air Fryer). It needs testing but here is the code in case you would like to implement the changes to your code. I also update the Dishwasher to correct some of the bugs I had. I will report back when/if I find more bugs or make improvements to the code let me know if you have any questions Kind regards, |
thanks for your work |
Hello nVuln, Unfortunately I don't know how to use Typescript or convert the javascript code I wrote to Typescript. For what is worth here are the files I changed to make the Oven, Microwave and Dishwasher work: latest version: kind regards, |
thank you so much for your hard work ❤️ |
Hello nVuln, That is awesome. Just hold off on the conversion if you can. I have discovered and solved new bugs so the version I sent to you last is outdated already. I will send you the latest version on Monday. Kind regards, |
I just created new branch migrate-carlosgamezvillegas to update progress you can checkout new branch, then run I still working on DIshwasher and Microwave, will be update soon |
updated Dishwasher: https://github.com/nVuln/homebridge-lg-thinq/blob/migrate-carlosgamezvillegas/src/devices/Dishwasher.ts "cmdOptionSetTargetTimeMinute": Math.floor(this.ovenCommandList.ovenSetDuration % 3600 / 60),
"cmdOptionSetTargetTimeMinute": Math.floor(this.ovenCommandList.ovenSetDuration % 60), so I'll wait your latest version |
Hello nVuln, Thank you for catching bugs and making corrections, I am not the best at programming so you will notice a lot of redundancies and/or unnecessary things in the code. I have fixed some of the bugs but the code is definitely not optimized but at least is working. The major thing I did in this version is to add addOptionalCharacteristic(this.platform.Characteristic.ConfiguredName) to all the accessories so Homekit labels the accessories correctly instead of naming all of them with the same name. Let me know if you have any questions, Kind regards, |
Hello again, Please ignore the last files I sent, use this ones instead. Thank you, |
@carlosgamezvillegas yup, we make it working first, then we optimize it later, btw I'm not javascript or typescript programmer too 😆 |
@carlosgamezvillegas I published tag |
@nVuln, yes, the microwave sues the same ovenState, I think it is because the Microwave that I have is also a convection oven. By the way, I installed the plugin and I think I had a bug in the Dishwasher.js Bug: Correction: @beslergr, @rdnewt please try the plugin and let us know if you see something wrong Kind regards, |
@carlosgamezvillegas seems to work in terms of basic functionality. For the microwave, I can turn it on, but doesn't seem like any of the switches work (that or I'm just clueless on how to do it). For the oven, it works, but only Bake mode. |
@beslergr For the oven, if it is just running Bake mode only it might be because it is the default setting, the way it it works is very similar to the ThinQ app.
Steps 1-5 can be done in any order and must be completed within 2 minutes, after that all the accessories are going to update to reflect the current state of the Range The timer works independently, after selecting the timer duration just "turn on" the Valve so the command can be sent. I hope this helps and if you have any other feedback please let me know. |
I’ve got an LG Studio microwave with way too many buttons to know what they all do, but I know there’s a convection option, Air Fry option, and others. What is the basic work through to, say, if I want to set the microwave for 1 minute, power level 60? The oven I was able to figure out, but I can’t get the microwave to really do much, outside of running the fan and turning on the lights.
… On Jul 5, 2023, at 6:54 PM, carlosgamezvillegas ***@***.***> wrote:
@beslergr <https://github.com/beslergr>
The microwave that I have has also a convection oven so if the Microwave only has the microwave function most of the buttons are going to be useless to you.
For the oven, if it is just running Bake mode only it might be because it is the default setting, the way it it works is very similar to the ThinQ app.
Select Bake mode
Select Temperature
Select Bake time (for security if Bake time is not selected it is going use the default duration)
Select probe temperature (optional)
Keep warm (optional)
Turn on the Send command switch to send to command to the Range
Steps 1-5 can be done in any order and must be completed within 2 minutes, after that all the accessories are going to update to reflect the current state of the Range
The timer works independently, after selecting the timer duration just "turn on" the Valve so the command can be sent.
I hope this helps and if you have any other feedback please let me know.
—
Reply to this email directly, view it on GitHub <#87 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AXYX2HAOZRXJC4IUAVHGWDTXOXWARANCNFSM5ES5QRKQ>.
You are receiving this because you were mentioned.
|
I think it is a security measure fromG, I cannot start the microwave from the ThinQ app either, I always have to physically touch the start bottom in the microwave. This way we don’t accidentally run the microwave with metal inside (the air fry addons) or run the oven with plastic inside like the steam accessory. |
I just fixed this and published new tag |
Hello nVuln, I made some corrections and additions to the Dishwasher, Microwave, and Oven. Please see the latest version here. Kind regards, |
@carlosgamezvillegas I just came back from business trip, I looked into your new code, just saw this function udpServer() {
this.server = udp.createSocket({ type: 'udp4', reuseAddr: true });
this.server.on('error', (error) => {
this.platform.log.debug(error);
this.server.close();
});
// emits on new datagram msg
this.server.on('message', (msg, info) => {
let nest = msg.toString();
// let nestMessage = JSON.parse(nest);
if (nest.includes('temperature')) {
// this.platform.log('Data from Nest: ', nest)
// this.platform.log(typeof nest)
nest = JSON.parse(nest);
if (typeof nest?.temperature == 'number') {
this.localTemperature = 0.5 * Math.round(2 * nest?.temperature);
}
if (typeof nest?.humidity == 'number') {
this.localHumidity = Math.round(nest?.humidity);
}
}
if (this.ovenTempControl.getCharacteristic(this.platform.Characteristic.CurrentTemperature).value !== this.ovenCurrentTemperature()) {
this.ovenTempControl.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, this.ovenCurrentTemperature());
}
if (this.ovenTempControl.getCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity).value !== this.localHumidity) {
this.ovenTempControl.updateCharacteristic(this.platform.Characteristic.CurrentRelativeHumidity, this.localHumidity);
}
// this.platform.log('Data from Nest (object): ', nestMessage)
});
//emits when socket is ready and listening for datagram msgs
this.server.on('listening', () => {
let address = this.server.address();
let port = address.port;
let family = address.family;
let ipaddr = address.address;
//this.platform.log('Microwave is listening at port ' + port);
// this.platform.log('Oven ip ' + ipaddr);
// this.platform.log('Oven is IP4/IP6 : ' + family);
});
//emits after the socket is closed using socket.close();
this.server.on('close', () => {
this.platform.log('Socket is closed !');
});
this.server.bind(1900, '239.255.255.250');
} |
Hello nVuln, Please ignore that update, I forgot to remove that. I use those lines to get the temperature readings from my Nest thermostat to use the values when the oven is not in use. I have a new version with more bug fixes anyway that I should be sending soon. Kind regards, |
Hello nVuln, Here are the latest updates to the Microwave, Oven, and Dishwasher. Hopefully I didn't miss anything this time. |
I already updated your latest version, if everything working fine, I'll release it on next a few days |
Please use the latest version below. I corrected some typos. Kind regards, |
already applied this version too, hope everything working fine now |
I'm currently working on Oven implementation, I need collect device data first
I already published test version for Oven
v1.3.0-oven.1
, this version is still not implemented anything, just register Oven as supported device and collecting dataHow to install testing version
Select
Install Previous Version
in Homebridge UI X, choose version started withv1.6.0-test.x
How to collect device data ?
turn on homebridge debug mode first, then install and setting plugin oven version (
v1.6.0-test.x
)make sure in your homebridge log showing something like this
your Oven is ready now, then make some cook, preheat, adjust temperature ... anything you can do in your oven
every action you did, you may got debug log
[9/23/2021, 1:11:41 PM] [LGThinQ] mqtt message received:
, that is what I need, please upload all debug logWanna help ?
I already pushed Oven source code to
dev/oven
branch, feel free to make PR if you wanna helpDiscussed in #28
Originally posted by rrhoade2 July 23, 2021
Are there any plans to add support for the recent LG ThinQ Ovens at some point in the future? I'm wondering specifically about cooktop and oven statuses and oven pre-heat notifications. Thanks!
The text was updated successfully, but these errors were encountered: