fbeek / pimatic-maxcul

A pimatic Plugin to control MAX! Heating devices over a Busware CUL stick
GNU General Public License v2.0
14 stars 5 forks source link

pimatic-maxcul

Width the release of Version 1.1.0 we have dropped Node 4 Support and added compitibility from Nodejs 8 to 10.16, v12 should Work also but is not tested. If you use an older Version of NodeJs as v8 DO NOT UPDATE.
It CAN work but is not tested !!!

Pimatic plugin to control MAX! home heating devices with a Busware CUL868 usb wireless stick.

At the moment the software is at a stable stage but please use it with caution.

If you have questions have look at the Issue and Pull Request area on our Github repository or ask a question in the pimatic forum.

Information

Because of the support ending for pimatic 0.8.x, we only support pimatic > 0.9.x !

Usage

If device discovery is activated in the device section of pimatic, the maxcul plugin automatically detects incoming pairing messages for 20 seconds and reacts accordingly. New paired devices are displayed in the discovery overview.

Group support: All devices support groups. If a group is defined, the command is sent to the device but all devices in the same group react to it.

Pairing support: Devices can be connected to each other. Pairing must be done reciprocally. To revoke the paring a facotry reset must be done.

Fake devices: There are two types of fake devices.

Config transfer button: All devices have a config tranfer button. The general config but also the group ID and pair IDs are sent to the device using the config tranfer button. After the configuration is finished, the button can be removed from the gui.


Example plugin configuration

{
  "plugin": "maxcul",
  "serialPortName": "/dev/ttyACM0",
  "homebaseAddress": "123456",
  "baudrate": 9600
}

Example device configuration shutter contact

{
  "id": "shutter-1",
  "class": "MaxculShutterContact",
  "name": "Shutter Contact 1",
  "deviceId": "020BFF",
  "groupId": "02",
  "pairIds": [
     {
       "pairId": "0D0CF6",
       "type": "HeatingThermostat"
     },
     {
       "pairId": "178ab2",
       "type": "WallMountedThermostat"
     }
   ]
}

Example device configuration fake shutter contact

{
  "id": "fake-shutter-2",
  "name": "Fake shutter contact 2",
  "class": "MaxculFakeShutterContact",
  "deviceId": "232323",
  "groupId": "02",
  "pairIds": [
    {
      "pairId": "0D0CF6",
      "type": "HeatingThermostat"
    },
    {
      "pairId": "178ab2",
      "type": "WallMountedThermostat"
    }
  ],
  "refContact": "$contact-kitchen-door.contact"
}

"$contact-kitchen-door.contact" is for example a HomeduinoRFContactSensor.


Example device configuration push button

{
  "id": "button-1",
  "class": "MaxculPushButton",
  "name": "Push Button 1",
  "deviceId": "03f92a",
  "groupId": "03",
  "pairIds": []      
}

Example device configuration wall thermostat

{
  "id": "wallthermostat-01",
  "class": "MaxculWallThermostat",
  "name": "WallThermostat 1",
  "deviceId": "178ab2",
  "groupId": "02",
  "guiShowModeControl": true,
  "guiShowPresetControl": true,
  "guiShowTemperatureInput": true,
  "guiShowMeasuredTemperature": true,
  "guiShowBatteryState": true,
  "guiShowConfigButton": true,
  "ecoTemp": 17,
  "comfyTemp": 20,
  "minimumTemperature": 4.5,
  "maximumTemperature": 30.5,
  "measurementOffset": 0,
  "windowOpenTime": 60,
  "windowOpenTemperature": 4.5,
  "pairIds": [
    {
      "pairId": "232323",
      "type": "ShutterContact"
    },
    {
      "pairId": "0D0CF6",
      "type": "HeatingThermostat"
    }
  ]
}

Example device configuration fake wall thermostat

{
  "id": "fakewallthermostat-02",
  "class": "MaxculFakeWallThermostat",
  "name": "FakeWallThermostat 2",
  "deviceId": "343434",
  "groupId": "02",
  "guiShowModeControl": true,
  "guiShowPresetControl": true,
  "guiShowTemperatureInput": true,
  "guiShowMeasuredTemperature": true,
  "guiShowBatteryState": true,
  "guiShowConfigButton": true,
  "ecoTemp": 17,
  "comfyTemp": 20,
  "refTemp": "$tempsensor.temperature",
  "minimumTemperature": 4.5,
  "maximumTemperature": 30.5,
  "measurementOffset": 0,
  "windowOpenTime": 60,
  "windowOpenTemperature": 4.5,
  "pairIds": [
    {
      "pairId": "232323",
      "type": "ShutterContact"
    },
    {
      "pairId": "0D0CF6",
      "type": "HeatingThermostat"
    }
  ]
}

"$tempsensor.temperature" is for example a room temperature variable.


Example device configuration heating thermostat

{
  "id": "heatingthermostat-01",
  "class": "MaxculHeatingThermostat",
  "name": "Thermostat 1",
  "deviceId": "0D0CF6",
  "groupId": "02",
  "guiShowModeControl": true,
  "guiShowPresetControl": true,
  "guiShowTemperatureInput": true,
  "guiShowMeasuredTemperature": true,
  "guiShowBatteryState": true,
  "guiShowConfigButton": true,
  "guiShowValvePosition": true,
  "ecoTemp": 17,
  "comfyTemp": 20,
  "minimumTemperature": 4.5,
  "maximumTemperature": 30.5,
  "measurementOffset": 0,
  "windowOpenTime": 60,
  "windowOpenTemperature": 4.5,
  "pairIds": [
    {
      "pairId": "232323",
      "type": "ShutterContact"
    },
    {
      "pairId": "178ab2",
      "type": "WallMountedThermostat"
    }
  ],
}

Sponsoring

Do you like this plugin? Then please consider a donation to support the development.

PayPal Donate Button

Changelog

THX for development Support:

THX for donations:

ToDo