Python lib to control HottoH based stove devices

Overview

Project desciption

This library can be used to discuss with HootoH based stove devices

Actually tested and validated with a CMG Drum stove.

To use this library you need to have a wifi capable stove.

Usage

$ stove = Hottoh(address="192.168.1.10", port="5001")
$ stove.connect()
$ stove.get_temperature()

You can check example.py

You might also like...
A minimalist file manager for those who want to use Linux mobile devices.
A minimalist file manager for those who want to use Linux mobile devices.

Portfolio A minimalist file manager for those who want to use Linux mobile devices. Usage Tap to activate and press to select, to browse, open, copy,

A Discord bot that automatically saves SHSH blobs for all of your iOS devices.

AutoTSS AutoTSS is a Discord bot that automatically saves SHSH blobs for all of your iOS devices. Want a CLI automatic blob saver? Check out AutoTSS-c

Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially maintained by the Tuya Developer Team.
Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially maintained by the Tuya Developer Team.

Tuya Home Assistant Integration Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially mainta

AutomaTik is an automation system for MikroTik devices with simplicity and security in mind.
AutomaTik is an automation system for MikroTik devices with simplicity and security in mind.

AutomaTik Installation AutomaTik is an automation system for MikroTik devices with simplicity and security in mind. Winbox is the main tool for MikroT

Collection of script to manage WLED devices

Collection of script to manage WLED devices

Monitoring plugin for MikroTik devices

check_routeros - Monitoring MikroTik devices This is a monitoring plugin for Icinga, Nagios and other compatible monitoring solutions to check MikroTi

Pixoo-Awesome is a tool to get more out of your Pixoo Devices.

Pixoo-Awesome is a tool to get more out of your Pixoo Devices. It uses the Pixoo-Client to connect to your Pixoo devices and send data to them. I targ

Role Based Access Control for Slack-Bolt Applications

Role Based Access Control for Slack-Bolt Apps Role Based Access Control (RBAC) is a term applied to limiting the authorization for a specific operatio

A Discord bot written in Python that can be used to control event management on a server.

Event Management Discord Bot A Discord bot written in Python that can be used to control event management on a Discord server. Made originally for GDS

Comments
  • Expose datapoints for water stove

    Expose datapoints for water stove

    Mine is a water stove, and the application allows these parameters to be displayed/controlled:

    • In the main screen:

    image

    • [x] In the upper left corner there is an icon indicating whether the water pump is running or not.

    • [X] In the middle there is an icon indicating the current status. This is already exposed, however, I have seen the following:

      When the pellets are running out, the cooker makes a beep. However, neither the app icon nor the home assistant "action" entity change, it is kept on "heating". If the stove is switched off due to lack of pellets, then yes, the entity "action" changes to "stopping" and then to "end pellet". I don't know if it would be possible to read an extra status indicating "low pellet". But it would be a very useful feature, to be able to notify about the lack of pellets via home assistant.

    • [X] Below the icon, it shows the current environment temperature, which is already exposed.

    • [x] Finally, the water temperature is displayed. I guess it corresponds to the index #17 of your screenshot.

    • In the status screen:

    image

    • [x] Firstly, the power at which the stove is operating. Guess it is parameter #22.

    • [X] Set and Environment, already exposed.

    • [x] Water temperature, the same as shown in the main screen.

    • [X] Fumes temperature, already exposed.

    • [X] Fumes fan speed, already exposed. As you see in the snapshot, the unit seems to be g/m and not rpm. But not sure if this is correct in the app.

    • [x] Last one, air exchanger fan speed. This is not exposed and I think it must be #27, #30 or #33.

    • In the control screen:

    image

    • [X] Firstly, the Eco mode, already exposed. I really don't know if it has any real effect on my stove.

    • [ ] Next, the Chrono mode, not exposed. For me it is secondary, because thanks to the integration, it will be possible to schedule the stove using home assistant.

    • [ ] Next, the programmed power. I don't know how it behaves because the stove adjusts this value automatically according to the temperatures. It's not exposed but I guess it is #23.

    • [X] Next, the environment setpoint. Already exposed.

    • [x] Last, and very important In my opinion, the air exchanger fan speed. I can change it from 0 - 5 and "Auto". I suppose it will be #28, #31 or #34.

    As you can see, the app does not let you adjust the water temperature setpoint. But, according to your screenshots, I think it is possible to adjust it using parameter #18. This would be very very useful in my opinion, especially because it is not possible from the app.

    I'm sorry for rambling, It is not my intention to give you so much work, only that you know which parameters are interesting in the case of water stoves.

    Feel free to move this to a new issue or enhancement (or six, or seven ;) ). This is probably not the best place to discuss it.

    Originally posted by @elkarto in https://github.com/benlbrm/ha-hottoh-component/issues/1#issuecomment-975950970

    opened by benlbrm 25
  • Water Set Temperature

    Water Set Temperature

    Hello @elkarto, In version 0.0.27, I've expose a function set_water_temperature that is setting an not documented register, can you give a try ? You can also try with constant form 12 to ??

    def set_water_temperature(self, value): """Set Target Water Temperature of the stove""" try: result = self.client.sendCommand( parameters=[ str(StoveCommands.INCONNU_4.value), str(value * 10), ] ) return result except: raise

    opened by benlbrm 4
  • Broken pipe when lost connection to stove

    Broken pipe when lost connection to stove

    Today, when I got home, I noticed that all the home assistant devices were responding very slowly. I attempted to enter the web interface and could not access it. I managed to get into the logs through SCP, and I've seen a lot of hottohpy messages flooding the log. (6 hours at a rate of about 5 to 6 messages per second, the file was over 100MB) I was not able to copy the exact message, because the viewer crashed and I could not access it any more. I had to restart the home assistant host. But it was a connection failure and the cause of it was "broken pipe".

    If I see it again I will try to copy the exact message.

    Thank you for all your work, looking forward for new improvements.

    Originally posted by @elkarto in https://github.com/benlbrm/hottohpy/issues/1#issuecomment-979514820

    opened by benlbrm 1
  • Modbus communication between stove and wifi module

    Modbus communication between stove and wifi module

    I have been doing some research looking at the communication between the wifi module and the stove.

    Mi stove is an Edilkamin Blade H and the wifi module is a Wifi H (Astrel / HottoH)

    It is an RS232 bus, and the used communication protocol is MODBUS RTU.

    Baudrate: 19200 Data bits: 8 Parity: Even Stop bits: 1

    The slave address of the stove is 0x10.

    There is still a lot of work to be done. I have only been able to do some quick tests. I have only been able to identify with confidence a few register addresses, which are the ones I am listing here. I have potential candidates for other addresses but I want to be sure about it.

    Well, what matters:

    When you change any setting in the application, the module writes that register on the fly. There is no write polling. The records it writes are as follows:

    image

    Regarding the reading, there is a polling of the information, rather fast.

    The module cyclically reads all these registers in the same order:

    image

    I have doubts about other addresses marked with ?, but I think that some of them may also correspond to:

    • Water pressure
    • Chamber differential pressure
    • Water input temperature
    • Other temperature sensing inputs, like boiler, puffer, dhw, other rooms... (reads 65101 value in my stove)

    I will try to continue testing to identify more addresses

    I don't know if it can be so useful for this python library, but maybe someone can find it helpful.

    What seems to be clear is that the wifi module reads more data than it afterwards exposes over the network.

    opened by elkarto 2
Owner
null
Python lib for Embedly

embedly-python Python library for interacting with Embedly's API. To get started sign up for a key at embed.ly/signup. Install Install with Pip (recom

Embedly 80 Oct 5, 2022
Um simples bot escrito em Python usando a lib pyTelegramBotAPI

Telegram Bot Python Um simples bot escrito em Python usando a lib pyTelegramBotAPI Instalação Windows: Download do Python 3 Aqui Download do ZIP do Có

Sr_Yuu 1 May 7, 2022
Url-shortener - A url shortener made in python using the API's from the pyshorteners lib

URL Shortener Um encurtador de link feito em python usando as API's da lib pysho

Spyware 3 Jan 7, 2022
The WhatsApp lib

yowsup WARNING It seems that recently yowsup gets detected during registration resulting in an instant ban for your number right after registering wit

Tarek 6.8k Jan 4, 2023
Wrapper for vk_api lib for faster bot buliding

Welcome to VKBotPod repository! Wrapper for vk_api lib for faster bot buliding Features Simple syntax Rich functionality Special thanks to movpushmov

NullPointerException 3 Jan 14, 2022
Polar devices Python API and CLI.

loophole - Polar devices API About Python API for Polar devices. Command line interface included. Tested with: A360 Loop M400 Installation pip install

[roscoe] 145 Sep 14, 2022
A modern Python client for controlling Wyze devices.

Python Wyze SDK A modern Python client for controlling Wyze devices. Whether you're building a custom app, or integrating into a third-party service l

Shaun Tarves 205 Jan 2, 2023
A Python SDK for connecting devices to Microsoft Azure IoT services

V2 - We are now GA! This repository contains code for the Azure IoT SDKs for Python. This enables python developers to easily create IoT device soluti

Microsoft Azure 381 Dec 30, 2022
Python library for Seeedstudio Grove devices

grove.py Python library for Seeedstudio Grove Devices on embeded Linux platform, especially good on below platforms: Coral Dev Board (Wiki) NVIDIA Jet

Seeed Studio 123 Dec 17, 2022
Python client and API for monitoring and controling energy diversion devices from MyEnergi

Python client and API for monitoring and controling energy diversion devices from MyEnergi A set of library functions and objects for interfacing with

null 1 Dec 17, 2021