Crate nefit_client

Source
Expand description

§Communication library for Nefit (Bosch) gas boilers

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.

§Nefit API specifics

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.

§Example

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());
  • https://github.com/robertklep/nefit-easy-core
  • https://gathering.tweakers.net/forum/list_messages/1659309/0
  • https://www.domoticz.com/forum/viewtopic.php?t=9653

Re-exports§

pub use crate::command::Command;
pub use crate::command::RawCommand;
pub use crate::command::RawCommandResult;

Modules§

command

Structs§

Client
CommunicationError
Communicator
CryptError
DeserializeError

Type Aliases§

Result
Result<T, Error>