<commit_before># MAX! Binding

This is the binding for the [eQ-3 MAX! Home Solution](http://www.eq-3.de/).
This binding allows you to integrate, view and control the MAX! Thermostats in the Openhab environment

## Supported Things

This binding support 6 different things types

| Thing | Type    | Description  |
|----------------|---------|-----------------------------------|
| bridge | Bridge | This is the MAX! Cube LAN gateway  |
| thermostat | Thing | This is for the MAX! Heating Thermostat. This is also used for the powerplug switch "Zwischenstecker-Schaltaktor".  |
| thermostatplus | Thing | This is for the MAX! Heating Thermostat+. This is the type that can hold the program by itself |
| wallthermostat | Thing | MAX! Wall Thermostat. |
| ecoswitch  | Thing | MAX! Ecoswitch. |
| shuttercontact  | Thing  | MAX! Shuttercontact / Window Contact. |

Generally one does not have to worry about the thing types as they are automatically defined.
If for any reason you need to manually define the Things and you are not exactly sure what type of thermostat you have, you can choose `thermostat` for both the thermostat and thermostat+, this will not affect their working.

## Discovery

The discovery process for the MAX! binding works in 2 steps.
When the binding is started or when manually triggered, the network is queried for the existence of a MAX! Cube lan gateway. When the Cube is found, it will become available in the discovery inbox. Periodically the network is queried again for a Cube.

Once the Cube is available in Openhab, all the devices connected to it are discovered and added to the discovery inbox. No scan is needed to trigger this. 

## Binding Configuration

In the Openhab2 version of this binding there are no binding wide settings. 
All the configuration settings are now per MAX! Cube, hence in case you have multiple Cubes, they can run with alternative settings.

## Thing Configuration

All the things are identified by their Serial number, hence this is mandatory. 
The Cube (`bridge` thing) also requires the IP address to be defined. 
All other configuration is optional. 

Note that several configuration options are automatically populated. Later versions of the binding may allow you to update this information. These properties can be found in the `Device Settings` section of parameters.


## Channels

Depending on the thing it supports different Channels


| Channel Type ID | Item Type    | Description  |
|------------------|------------------------|--------------|----------------- |------------- |
| mode | String       | This channel indicates the mode of a thermostat |
| battery_low | Switch | This channel indicates if the device battery is low |
| set_temp | Number | This channel indicates the sets temperature of a thermostat. |
| actual_temp | Number | This channel indicates the measured temperature of a thermostat.  see below for more details|
| valve | Number | This channel indicates the valve opening in %. Note this is an advaned setting, normally not visible |
| contact_state | Contact | This channel indicates the contact state for a shutterswitch |
| free_mem | Number |This channel indicates the free available memory on the cube to hold send commands. Note this is an advanced setting, normally not visible |
| duty_cycle | Number |  This channel indicates the duty cycle (due to regulatory compliance reasons the cube is allowed only to send for a limited time. Duty cycle indicates how much of the available time is consumed) Note this is an advanced setting, normally not visible. |


## Full Example

In most cases no Things need to be defined manually. In case your Cube can't be discovered you need a `max:bridge` definition incl the right IP address of the Cube. Only in exceptional cases you would need to define the thermostats etc.

max.things:

```
Bridge max:bridge:KEQ0565026 [ ipAddress="192.168.3.9", serialNumber="KEQ0565026" ]
max:thermostat:KEQ0565026 [ serialNumber="KEQ0565123" ]
```

max.items:

```
Group gMAX 			"MAX Heating" 	<temperature>	[ "home-group" ]

Switch maxBattery "Battery Low" (gMAX) {channel="max:thermostat:KEQ0565026:KEQ0648949:battery_low"}<commit_msg>[MAX] readme fix (#1910)<commit_after># MAX! Binding

This is the binding for the [eQ-3 MAX! Home Solution](http://www.eq-3.de/).
This binding allows you to integrate, view and control the MAX! Thermostats in the Openhab environment

## Supported Things

This binding support 6 different things types

| Thing | Type    | Description  |
|----------------|---------|-----------------------------------|
| bridge | Bridge | This is the MAX! Cube LAN gateway  |
| thermostat | Thing | This is for the MAX! Heating Thermostat. This is also used for the powerplug switch "Zwischenstecker-Schaltaktor".  |
| thermostatplus | Thing | This is for the MAX! Heating Thermostat+. This is the type that can hold the program by itself |
| wallthermostat | Thing | MAX! Wall Thermostat. |
| ecoswitch  | Thing | MAX! Ecoswitch. |
| shuttercontact  | Thing  | MAX! Shuttercontact / Window Contact. |

Generally one does not have to worry about the thing types as they are automatically defined.
If for any reason you need to manually define the Things and you are not exactly sure what type of thermostat you have, you can choose `thermostat` for both the thermostat and thermostat+, this will not affect their working.

## Discovery

The discovery process for the MAX! binding works in 2 steps.
When the binding is started or when manually triggered, the network is queried for the existence of a MAX! Cube lan gateway. When the Cube is found, it will become available in the discovery inbox. Periodically the network is queried again for a Cube.

Once the Cube is available in Openhab, all the devices connected to it are discovered and added to the discovery inbox. No scan is needed to trigger this. 

## Binding Configuration

In the Openhab2 version of this binding there are no binding wide settings. 
All the configuration settings are now per MAX! Cube, hence in case you have multiple Cubes, they can run with alternative settings.

## Thing Configuration

All the things are identified by their Serial number, hence this is mandatory. 
The Cube (`bridge` thing) also requires the IP address to be defined. 
All other configuration is optional. 

Note that several configuration options are automatically populated. Later versions of the binding may allow you to update this information. These properties can be found in the `Device Settings` section of parameters.


## Channels

Depending on the thing it supports different Channels


| Channel Type ID | Item Type    | Description  |
|------------------|------------------------|--------------|----------------- |------------- |
| mode | String       | This channel indicates the mode of a thermostat |
| battery_low | Switch | This channel indicates if the device battery is low |
| set_temp | Number | This channel indicates the sets temperature of a thermostat. |
| actual_temp | Number | This channel indicates the measured temperature of a thermostat.  see below for more details|
| valve | Number | This channel indicates the valve opening in %. Note this is an advaned setting, normally not visible |
| contact_state | Contact | This channel indicates the contact state for a shutterswitch |
| free_mem | Number |This channel indicates the free available memory on the cube to hold send commands. Note this is an advanced setting, normally not visible |
| duty_cycle | Number |  This channel indicates the duty cycle (due to regulatory compliance reasons the cube is allowed only to send for a limited time. Duty cycle indicates how much of the available time is consumed) Note this is an advanced setting, normally not visible. |


## Full Example

In most cases no Things need to be defined manually. In case your Cube can't be discovered you need a `max:bridge` definition incl the right IP address of the Cube. Only in exceptional cases you would need to define the thermostats etc.

max.things:

```
Bridge max:bridge:KEQ0565026 [ ipAddress="192.168.3.9", serialNumber="KEQ0565026" ] {
    Thing max:thermostat:KEQ0565026:KEQ0565123 [ serialNumber="KEQ0565123" ]
}
```

max.items:

```
Group gMAX 			"MAX Heating" 	<temperature>	[ "home-group" ]

Switch maxBattery "Battery Low" (gMAX) {channel="max:thermostat:KEQ0565026:KEQ0648949:battery_low"}
{'fraction_non_alphanumeric': 0.09192932187201529, 'fraction_numerical': 0.01444603629417383, 'mean_word_length': 3.630735212824765, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6338098', 'n_tokens_mistral': 2247, 'n_tokens_neox': 2063, 'n_words': 1139}