| Crates.io | nefit-client |
| lib.rs | nefit-client |
| version | 0.3.0 |
| created_at | 2025-07-07 14:12:43.631585+00 |
| updated_at | 2025-07-07 14:12:43.631585+00 |
| description | Library for communicating with Bosch/Nefit thermostat API |
| homepage | |
| repository | https://github.com/twistedfall/nefit-client |
| max_upload_size | |
| id | 1741327 |
| size | 67,521 |
Support the project | Documentation
Run:
cargo add nefit-client
Or add to your Cargo.toml:
[dependencies]
nefit-client = "0.3.0"
A word of warning: the last time I used this code in production was in March 2023, so it could've code-rotten since.
Not all endpoints are implemented, the focus was mostly on reading the data. I will gladly accept PRs.
The communication method is quite peculiar because it's essentially HTTP with custom encryption over XMPP. The library connects to Bosch XMPP server and then exchanges encrypted messages which are HTTP requests and responses.
let cl = nefit_client::Client::new("<SERIAL_NUMBER>", "<ACCESS_KEY>", "<PASSWORD>");
let cm = cl.connect().unwrap();
dbg!(cm.status().unwrap());
dbg!(cm.outdoor_temp().unwrap());
dbg!(cm.system_pressure().unwrap());
dbg!(cm.supply_temp().unwrap());
MIT OR Apache-2.0