hap-homematic
Version:
provides a homekit bridge to the ccu
106 lines (92 loc) • 4.08 kB
JavaScript
/*
* File: EveWeather.js
* Project: hap-homematic
* File Created: Saturday, 20th June 2020 6:19:54 pm
* Author: Thomas Kluge (th.kluge@me.com)
* -----
* The MIT License (MIT)
*
* Copyright (c) Thomas Kluge <th.kluge@me.com> (https://github.com/thkl)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
* ==========================================================================
*/
'use strict'
const CustomHomeKitTypes = require('./CustomHomeKitTypes.js')
let hap
module.exports = class EveHomeKitWeatherTypes extends CustomHomeKitTypes {
constructor(globalHap) {
super(globalHap)
hap = globalHap
this.createCharacteristic('AirPressure', 'E863F10F-079E-48FF-8F27-9C2605A29F52', {
format: hap.Characteristic.Formats.UINT16,
perms: [hap.Characteristic.Perms.READ, hap.Characteristic.Perms.NOTIFY]
})
this.createCharacteristic('RainDay', 'ccc04890-565b-4376-b39a-3113341d9e0f', {
format: hap.Characteristic.Formats.FLOAT,
unit: 'mm',
maxValue: 500,
minValue: 0,
minStep: 0.1,
perms: [hap.Characteristic.Perms.READ, hap.Characteristic.Perms.NOTIFY]
})
this.createCharacteristic('RainBool', 'f14eb1ad-e000-4ef4-a54f-0cf07b2e7be7', {
format: hap.Characteristic.Formats.BOOL,
perms: [hap.Characteristic.Perms.READ, hap.Characteristic.Perms.NOTIFY]
})
this.createCharacteristic('WindSpeed', '49C8AE5A-A3A5-41AB-BF1F-12D5654F9F41', {
format: hap.Characteristic.Formats.UINT8,
unit: 'm/s',
maxValue: 100,
minValue: 0,
minStep: 0.1,
perms: [hap.Characteristic.Perms.READ, hap.Characteristic.Perms.NOTIFY]
})
this.createCharacteristic('WindDirection', '46f1284c-1912-421b-82f5-eb75008b167e', {
format: hap.Characteristic.Formats.STRING,
perms: [hap.Characteristic.Perms.READ, hap.Characteristic.Perms.NOTIFY]
})
this.createCharacteristic('SunShineDuration', 'C411F13A-863A-488B-8F62-CA574F702539', {
format: hap.Characteristic.Formats.FLOAT,
unit: 'hour',
minStep: 0.1,
perms: [hap.Characteristic.Perms.READ, hap.Characteristic.Perms.NOTIFY]
})
this.createCharacteristic('Windrange', '48B3DCC6-898C-48B9-BFF8-901A6F122767', {
format: hap.Characteristic.Formats.INTEGER,
unit: hap.Characteristic.Units.ARC_DEGREE,
perms: [hap.Characteristic.Perms.READ, hap.Characteristic.Perms.NOTIFY]
})
this.createService('EveWeather', 'E863F001-079E-48FF-8F27-9C2605A29F52', [
hap.Characteristic.CurrentTemperature,
hap.Characteristic.CurrentRelativeHumidity,
hap.Characteristic.CurrentAmbientLightLevel,
this.Characteristic.AirPressure,
this.Characteristic.RainDay,
this.Characteristic.RainBool,
this.Characteristic.WindDirection,
this.Characteristic.WindSpeed,
this.Characteristic.SunShineDuration,
this.Characteristic.Windrange
])
this.createService('SimplePressureSensor', 'C576B487-CA55-40A4-BCA3-B5D3E11CBE22', [
this.Characteristic.AirPressure
])
}
}