Giter Club home page Giter Club logo

homebridge-fhem's Introduction

homebridge-fhem

verified-by-homebridge npm npm GitHub last commit

a fhem platform plugin for homebridge

uses longpoll and an internal cache to avoid roundtrips to fhem. a debug browser is available at port 8282 (or 8283).

add one (or more) FHEM platforms to config.json and set the filter(s) to a fhem devspec that includes the devices that should be bridged to homekit.

directly (automatically) supports:

  • switches (devices with set on and set off commands)
  • lights (devices with set on and set off commands)
  • homematc, FS20 and ZWave dimmers (devices with set on, set off and set dim or set pct commands)
  • HUE, WifiLight, MilightDevice, SWAP_0000002200000003 (hue, sat, bri, rgb)
  • homematic, max, pid20 and comet dect thermostats
  • homematic, DUOFERN, SOMFY and FS20/IT(?) blinds
  • hommatic, MAX and FHTTK contact sensors (door, window)
  • HM-SEC-WIN, HM-SEC-KEY
  • HM-Sen-LI-O
  • presence, ROOMMATE, GUEST
  • SONOS (power, volume)
  • harmony scenes
  • temperature and humidity sensors
  • CO20 and netatmo air quality sensor
  • RESIDENTS module
  • probably some more ...

simple config

for devices that are not correctly identified use the genericDeviceType attribute to configure the device type. supported values are: security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock this is probably mostly used for differentiating between switches and lights.

enhanced config

for devices that don't use the autodetected readings and commands or for devices that mix readings from different devices use the homebridgeMapping attribute. it is parsed from left to right and works as follows:

  • the genericDeviceType attribute is used to determine the service type that should be used for this device in addition to the symbolic names above all homekit Service names are recognized
  • the homebridgeMapping attribute containts a space separated list of characteristic descriptions
  • each description consists of the characteristic name followed by a = followed by a komma separated list of parameters
  • each parameter can be of the form
    • <command>:<device>:<reading> where parts can be omitted from left to right or
    • <name>=<value>
    • the name of an already mapped characteristic to copy the configuration from there
    • the special clear to clear the mappings for the current characteristic
    • linkedTo=<service-name> to link the current service to <service-name>
  • characteristic names can be given as <service_name>#<characteristic_name> to create multiple services for a device this can also include a subtype like so: <service_name>(<subtype>)#<characteristic_name> to create multiple services of the same type
  • the following special values for a description are recognized: clear -> clears all mappings for this device e.g:
attr <thermostat> genericDeviceType thermostat
attr <thermostat> homebridgeMapping TargetTemperature=target::target,minValue=18,maxValue=25,minStep=0.5 CurrentTemperature=myTemp:temperature

this would define a thermostat device with a command target to set the desired temperature, a reading target that indicates the desired target temperature, the desired min, max and step values and a current temeprature comming from the temperature reading of the device myTemp.

the names for the stadard service and characteristic types can be found here: .../hap-nodejs/lib/gen/HomeKitTypes.js

Currently supported values for Characteristic names are:

  • On
  • Brightness
  • Hue
  • Saturation
  • CurrentTemperaure
  • TargetTemperature
  • CurrentRelativeHumidity
  • CurrentAmbientLightLevel
  • AirQuality
  • CurrentDoorState
  • OccupancyDetected
  • StatusLowBattery
  • SecuritySystemCurrentState
  • SecuritySystemTargetState
  • FirmwareRevision
  • and all other homebridge Characteristic names

FHEM -> Homekit parameters:

  • minValue, maxValue, minStep: for all int and float characteristics -> the allowed range for this value in homekit
  • max: Hue and Saturation characteristics -> the range the reading has in fhem, only if different from minValue and maxValue
  • nocache: don't cache values for this reading
  • subtype: unique value necessary if multiple characteristics of the same type are in an accessory.
  • factor: multiply reading with this value
  • threshold: reading is mapped to true if the value is greater than the threshold value and to false otherwise
  • invert: invert the reading, taking minValue, maxValue into account
  • part: the reading value will be splitted at spaces and the n-th item is used as the value. counting starts at 0
  • values: a ; separated list that indicates the mapping of reading values to homekit values. each list entry consists of a : separated pair of from and to values each from value can be a literal value or a regex of the form /regex/ each to value can be a literal value or a homekit defined term for this characteristic if to is exactly # then it is set to the current value. usefull for regex ranges
  • valueOn, valueOff: the reading values that are mapped to the true/false resp. on/off states in homekit. shotcut for values if only one is given all values not matching this one are automatically mapped to the other
  • default: value to use if no reading is found or if none of values/valueOn/valueOff matches
  • timeout: timeout in ms after which the homebridge value is reset to the default value -> used to simulate push buttons
  • valid: a ; separated list of valid values for this characteristic, each to value can be a literal value or a homekit defined term for this characteristic
  • readOnly: if set to true: make this charateristic read only. ignore any changes made by homekit

e.g.:

PositionState=motor,values=/^up/:INCREASING;/^down/:DECREASING;/.*/:STOPPED On=state,valueOn=/on|dim/,valueOff=off

the order of the transformations is as follows: eventMap, part, threshold, values, valueOn/valueOff, factor, max, maxValue/minValue/minStep, invert

instead of using the transformation chain reading2homekit can be set to the name of a js function that is imported from a file named by the jsFunctions config option. relative paths are relative to the same path the config file is located in. the function it will be called with mapping and reading value as parameters and has to return the value to be used with homekit.

for custom characterisitcs the additional parameters name, format and unit have to be set. e.g.:

00000027-0000-1000-8000-0026BB765291=Volume::Volume,name=Volume,format=UINT8,unit=PERCENTAGE,minValue=0,maxValue=0,minStep=1

adding a history characteristic will try to use fakegato-history to create Eve compatible history entries for ContactSensor and TemperatureSensor services:

history:size=1024

Homekit -> FHEM parameters:

  • delay: true/<number> -> the value ist send afer one second/<number>ms of inactivity
  • factor: divide homekit value by this factor
  • maxValue: for all int and float characteristics -> the allowed range for this value in homekit
  • max: the max value the reading has in fhem, only if different from maxValue
  • cmd: the set command to use: set <device> <cmd> <value>
  • cmdOn, cmdOff: for all bool characteristics
  • cmds: a ; separated list that indicates the mapping of homekit values to fhem values.
    each list entry consists of a : separated pair of from and to values
    each from value can be a literal value or a homekit defined term for this characteristic or a regex of the form /regex/
    each to value has to be a literal value
  • cmdSuffix: is appended to the set command

spaces in commands have to be replaced by +

e.g.:

TargetHeatingCoolingState=...,cmds=OFF:desired-temp+off;HEAT:controlMode+day;COOL:controlMode+night;AUTO:controlMode+auto

the order of the transformations is as follows: invert, factor, max/maxValue precedence for mapping of homekit value to commands is in increasing order: cmd, cmdOn/cmdOff, cmds

instead of using the transformation chain homekit2reading can be set to the name of a js function that is imported from a file named by the jsFunctions config option. relative paths are relative to the same path the config file is located in. the function it will be called with mapping and the homekit value as parameters and has to return the value to be used with the fhem set command.

a dummy with a setList of exactly two entries will be mapped to a On characteristic where the first entry will be mapped to on and the second to off.

examples:

  • 1 device -> 1 service (thermometer)
  attr <temp> genericDeviceType thermometer
  attr <temp> homebridgeMapping CurrentTemperature=temperature1,minValue=-30

wenn das reading temperature heisst statt temperature1 muss es nicht angegeben werden.

  • 1 device -> 1 service, 2 characteristics (thermostat)
  attr <thermostat> genericDeviceType thermostat
  attr <thermostat> homebridgeMapping TargetTemperature=target::target,minValue=18,maxValue=25,minStep=0.5
                                      CurrentTemperature=myTemp:temperature
  • n devices -> 1 service, n characteristics (temp + hum, dummy thermostat + temp)
  attr <tempHum> genericDeviceType thermometer
  attr <tempHum> homebridgeMapping [CurrentTemperature=temperature1] CurrentRelativeHumidity=<device2>:humidity

wenn das reading temperature heisst statt temperature1 kann CurrentTemperature=temperature1 entfallen

  • 1 device -> 2 services, 1 identical characteristics each (thermometer)
  attr <dualTemp> genericDeviceType thermometer
  attr <dualTemp> homebridgeMapping CurrentTemperature=temperature1,minValue=-30,subtype=innen
                                    CurrentTemperature=temperature2,minValue=-30,subtype=aussen
  • 1 device -> n service with 1 identical characteristic each (1 service per harmony activity)
  attr <hub> genericDeviceType switch
  attr <hub> homebridgeMapping clear
                               On=activity,subtype=TV,valueOn=TV,cmdOn=activity+TV,cmdOff=off
                               On=activity,subtype=DVD,valueOn=/DVD/,cmdOn=activity+DVD,cmdOff=off
                               On=activity,subtype=Off,valueOn=PowerOff,valueOff=PowerOff,cmd=off
  • 1 device -> n services: give characteristic names as <service_name>#<characteristic_name>
  attr <name> genericDeviceType switch
  attr <name> homebridgeMapping On=state,cmdOn=on,cmdOff=off
                                BatteryService#BatteryLevel=battery
                                BatteryService#StatusLowBattery=battery,threshold=20,values=0:BATTERY_LEVEL_LOW;;1:BATTERY_LEVEL_NORMAL
                                BatteryService#ChargingState=charging

instead of the format described above homebridgeMapping can also contain the same data encoded as json this has to be used if any of the separators above are used in an command or value. at the moment the json version replaces all build in defaults for a device. e.g.:

{ "PositionState": { "reading": "motor", "values": [...] }, "On": { "reading": "state", "valueOn": "/on|dim/", "valueOff": "off" } }

homebridge-fhem's People

Contributors

dare92 avatar frsteinb avatar jokey2k avatar justme-1968 avatar malaber avatar pst-on-github avatar siruli avatar volschin avatar we5 avatar wildbomb avatar zwergnase avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-fhem's Issues

Use one device for temperature and humidity

Hello I have advise with temperature and humidity while mapping it only shows temperature and with in the details the humidity how can I set two icon (one for Temp, one for humidity) within in Home?

Cannot add without desired-temp

When there is no desired-temp reported at one of my FHTs I cannot add the homebridge accessory. Probably HomeKit checks for a desired-temp property. Might be useful to just fake a temperature (0?).

Max! Heat thermostats are recognized as sensors. Can't see or change desired heat.

Hey there,

I have a max!cube, which is connected with my fhem server and 7 heat thermostats. Everything worked well, until I updated homebridge and homebridge-fhem yesterday.
Homebridge now identifies the heat thermostats as temperature sensors.

My problem is, that in the iOS home app, I can see the actual temperature in the room, but I can not see or manipulate the desired temperature or the mode (eco/off/...).

This is the output during homebdridge start:

[2016-09-29 12:01:45] [FHEM] MAX_03975d is thermometer
[2016-09-29 12:01:45] [FHEM] MAX_03975d has
[2016-09-29 12:01:45] [FHEM]   CurrentTemperature [temperature]
[2016-09-29 12:01:45] [FHEM]   StatusLowBattery [battery]
[2016-09-29 12:01:45] [FHEM]   FirmwareRevision [firmware]
[2016-09-29 12:01:45] [FHEM]   TargetTemperature [desiredTemperature]
[2016-09-29 12:01:45] [FHEM]   Custom Actuation [valveposition]
  2016-09-29 12:01:45 caching: MAX_03975d-temperature: 21.1
[2016-09-29 12:01:45] [FHEM]     caching: CurrentTemperature: 21.1 (as number; from '21.1')
  2016-09-29 12:01:45 caching: MAX_03975d-battery: ok
[2016-09-29 12:01:45] [FHEM]     caching: StatusLowBattery: 0 (as number; means BATTERY_LEVEL_NORMAL; from 'ok')
  2016-09-29 12:01:45 caching: MAX_03975d-firmware: 1.4
[2016-09-29 12:01:45] [FHEM]     caching: FirmwareRevision: 1.4 (as string; from '1.4')
  2016-09-29 12:01:45 caching: MAX_03975d-desiredTemperature: 16.5
[2016-09-29 12:01:45] [FHEM]     caching: TargetTemperature: 16.5 (as number; from '16.5')
  2016-09-29 12:01:45 caching: MAX_03975d-valveposition: 0
[2016-09-29 12:01:45] [FHEM]     caching: Custom Actuation: 0 (as number; from '0')
thermometer

and around 50 lines later

[2016-09-29 12:01:45] [FHEM] Initializing platform accessory 'MAX_03975d'...
[2016-09-29 12:01:45] [FHEM] creating services for MAX_03975d
[2016-09-29 12:01:45] [FHEM]   information service for MAX_03975d
[2016-09-29 12:01:45] [FHEM]     manufacturer, model and serial number characteristics for MAX_03975d
[2016-09-29 12:01:45] [FHEM]     firmware revision characteristic for MAX_03975d
[2016-09-29 12:01:45] [FHEM]   TemperatureSensor service for MAX_03975d
[2016-09-29 12:01:45] [FHEM]     CurrentTemperature characteristic for MAX_03975d:temperature
[2016-09-29 12:01:46] [FHEM]     StatusLowBattery characteristic for MAX_03975d:battery
[2016-09-29 12:01:46] [FHEM]     TargetTemperature characteristic for MAX_03975d:desiredTemperature
[2016-09-29 12:01:46] [FHEM]     Custom Actuation characteristic for MAX_03975d:valveposition

In FHEM everything seems to be normal. I can change the mode and desired temperature as always.

Is this a known bug?
How can I help debugging?

Is there a work around, to get things working again?

Thank you in advance.

Cannot read property 'log' of undefined

Homebridge is running on port 51826.
/usr/lib/node_modules/homebridge-fhem/index.js:877
                                        this.log.warn( 'genericDeviceType attribute was not known. please restart homebridge.' );
                                            ^

TypeError: Cannot read property 'log' of undefined
    at /usr/lib/node_modules/homebridge-fhem/index.js:877:45
    at Request._callback (/usr/lib/node_modules/homebridge-fhem/index.js:841:27)
    at Request.self.callback (/usr/lib/node_modules/homebridge-fhem/node_modules/request/request.js:199:22)
    at emitTwo (events.js:100:13)
    at Request.emit (events.js:185:7)
    at Request.<anonymous> (/usr/lib/node_modules/homebridge-fhem/node_modules/request/request.js:1036:10)
    at emitOne (events.js:95:20)
    at Request.emit (events.js:182:7)
    at Gunzip.<anonymous> (/usr/lib/node_modules/homebridge-fhem/node_modules/request/request.js:963:12)
    at emitNone (events.js:85:20)

Mapping of Colormode for Tradfri-Color-Bulbs does not work

I installed an Ikea Tradfri Color Bulb in my HA-Environment with Raspbee/deCONZ, FHEM with a corresponding HUEBridge and homebridge-fhem having the corresponding HUEDevice.

Changing the color of the Bulb is only possible in colormode xy and setting the right x/y or rgb value.
If I do now use the Apple Homekit-App and change the color, it seems so send a color in hs-colormode (so the event-monitor says :-).

Is that an Apple Homekit-App specific thing or is there maybe a mapping / conversion missing?
(edt: seems apple wants/uses HSV; so is a conversion missing --> who's responsibility homebrige-fhem, fhem-huedevice or deconz ? :-)

Thanks alot for an answer :-)
Best.

siriName wird überschrieben mit Device Namen ?

In meiner Installation wird seit kurzem das fhem Device attr "siriName" überschrieben mit dem Namen des Devices. Ich hatte da sprechende Namen hinterlegt, damit jedes Device in der Home-App auf iOS klar unter definiertem Namen angezeigt wird. Ich habe heute festgestellt, dass beim Neustart von Homebridge der siriName automatisch umbenannt wird. Hat jemand sonst das Problem auch und einen Tipp?

Setup:
Fhem Version 6.0
Homebridge Version 1.0.4
homebridge-config-ui-x v4.17.1
homebridge-fhem v0.5.16

Setlist on off vs ON OFF (Sonoff)

Hi,

I just installed my first Sonoff (through a dummy & notify) and found the problem that when I set "setlist ON OFF", Homebridge is not working. Only "setlist on off" works.

As the Sonoff devices set the state as ON and OFF, it would be ideal to also use ON OFF in setlist. Otherwise one need to change the devStateIcon etc.

A bit of a luxury problem... :) Thanks!

Edit: one of the problems here is that Homebridge actually also sets the state to "on" and "off" in the device which can be problematic for notifies etc.

WaterLevel

It locks like Homebridge WaterLevel is missing:

`/**

  • Characteristic "Water Level"
    */

Characteristic.WaterLevel = function() {
Characteristic.call(this, 'Water Level', '000000B5-0000-1000-8000-0026BB765291');
this.setProps({
format: Characteristic.Formats.FLOAT,
maxValue: 100,
minValue: 0,
perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]
});
this.value = this.getDefaultValue();
};

inherits(Characteristic.WaterLevel, Characteristic);

Characteristic.WaterLevel.UUID = '000000B5-0000-1000-8000-0026BB765291';
`

Homekit type valve

Hi, habe versucht einen Wasserhahn zu mappen. Allerdings ist der GenericDeviceType Valve nicht in der index.js enthalten. Ich habe diesen u.a. hier hinzugefuegt:

var serviceNameOfGenericDeviceType = {      ignore: null,
                                          security: 'SecuritySystem',
                                            switch: 'Switch',
                                            outlet: 'Outlet',
                                             light: 'Lightbulb',
                                             blind: 'WindowCovering',
                                           contact: 'ContactSensor',
                                       thermometer: 'TemperatureSensor',
                                        thermostat: 'Thermostat',
                                            garage: 'GarageDoorOpener',
                                            window: 'Window',
                                              lock: 'LockMechanism',
                                         valve: 'Valve'

                                     };

nun wird das Wasserhahn symbol angezeigt, allerdings wenn man den Wasserhahn einschalten moechte, erscheint nur "Starten..." und das Symbol kreiselt -- statt "Ein".

Habe folgendes mapping:
genericDeviceType Valve

clear Active=state,values=off:INACTIVE;/./:ACTIVE InUse=state,values=off:0;/./:1,readOnly=1 ValveType=type,default=GENERIC_VALVE

genericDeviceType for a contact sensor?

I've bought a z-wave window sensor (made by a company called vision), which simply detects if a window/door is opened or closed. (In my case the sensor detects if my flat's door is opened or closed). Sadly the window sensor is not supported out of the box. So I tried to configure it manually.

According to the readme there are the following genericDeviceTypes, ignore,switch,outlet,light,blind,thermostat,garage,window,lock

The only type, I thought might fit is window. So I tried window, but for some reason, home kit does not show it as a sensor, but as a window which in addition can be opened for a pickable percentage.

Which genericType should I pick? My Max! window sensor are recognized correctly, so I must have done something wrong...

Thank you in advance

Out of Order

Everytime i try to pair my Device i get the Message "Out of Order The requested device does not conform to HomeKit specifications." Without homebridge-fhem platform it works.

homebridgeMapping for TargetTemperature

Hey there,

I'm currently trying to add a Devolo wall-thermostat.

The desired temperature is found in a reading called setpointTemp.
It's value is for example 18.5 C heating.

I tried the following mapping, but it doesn't work... Instead of the correct desired temperature (e.g. 18.5°C) it always displays 10°C

TargetTemperature=ZWave_SENSOR_MULTILEVEL_9::setpointTemp,minValue=12,maxValue=28,minStep=0.5
CurrentHeatingCoolingState=default=HEAT

Now there are two questions:

  1. Is homebridge able to interpret 18.5 C heating? I hope it just ignored all characters after 5...
  2. In the manual the targetTemp is selected like this TargetTemperature=target::target. But that doesn't really help to understand how the binding works... What are the two :: for?

Proposal: Always show Max! Thermostats in heating mode

Hey there,

after using Max! Thermostats with homebridge-fhem for a while, I'd like to propose a change in your automatic device configuration.

I think it would be more convenient for users to always show the thermostats in heating mode and (as it already is) ignore the changes made to the mode through homekit.

Currently the thermostats are shown as switched off. The home app then doesn't show the desired temperature in the overview. You always have to click and hold to see the desired temperature.

And additionally in my opinion it's more intuitive. Otherwise people can get confused.

longpoll ended

Hello,
i have a very strange behavior with my FHEM and Homebridge. I use a MAX Cube with FHEM. I have 3 rooms with thermostats and window sensors. All of them are working completely fine with homebridge-fhem. I see if a windows is openend or closed, a temperture is changed and i can change temperatures from my iphone as well. My problem starts when i open windows in more than one room. the second thermostats then will switch to eco temperature and afterwards nothing is updating in iOS anymore. Log shows then:

2017-07-19 23:01:03 caching: Heizung.Schlafzimmer-desiredTemperature: 19.0
[7/19/2017, 11:01:03 PM] [FHEM] caching: TargetTemperature: 19 (as number; from '19.0')
2017-07-19 23:01:03 caching: Heizung.Schlafzimmer-temperature: 25.2
[7/19/2017, 11:01:03 PM] [FHEM] caching: CurrentTemperature: 25.2 (as number; from '25.2')
2017-07-19 23:03:04 caching: Wandthermostat.Kamin-temperature: 25.2
[7/19/2017, 11:03:04 PM] [FHEM] caching: CurrentTemperature: 25.2 (as number; from '25.2')
[7/19/2017, 11:03:30 PM] [FHEM] query: TargetTemperature for Heizung.Bad-desiredTemperature
[7/19/2017, 11:03:30 PM] [FHEM] cached: 16 (as number')
[7/19/2017, 11:03:30 PM] [FHEM] query: CurrentTemperature for Heizung.Bad-temperature
[7/19/2017, 11:03:30 PM] [FHEM] cached: 23.3 (as number')
[7/19/2017, 11:03:30 PM] [FHEM] query: StatusLowBattery for Heizung.Bad-battery
[7/19/2017, 11:03:30 PM] [FHEM] cached: 0 (as number; means BATTERY_LEVEL_NORMAL')
[7/19/2017, 11:03:30 PM] [FHEM] query: CurrentHeatingCoolingState for Heizung.Bad-undefined
[7/19/2017, 11:03:30 PM] [FHEM] cached: 1 (as number; means HEAT')
[7/19/2017, 11:03:30 PM] [FHEM] query: StatusLowBattery for Fenster.Oben-battery
[7/19/2017, 11:03:30 PM] [FHEM] cached: 0 (as number; means BATTERY_LEVEL_NORMAL')
[7/19/2017, 11:03:30 PM] [FHEM] query: ContactSensorState for Fenster.Oben-state
[7/19/2017, 11:03:30 PM] [FHEM] cached: 1 (as number; means CONTACT_NOT_DETECTED')
[7/19/2017, 11:03:30 PM] [FHEM] query: CurrentHeatingCoolingState for Wandthermostat.Kamin-undefined
[7/19/2017, 11:03:30 PM] [FHEM] cached: 1 (as number; means HEAT')
[7/19/2017, 11:03:30 PM] [FHEM] query: TargetTemperature for Wandthermostat.Kamin-desiredTemperature
[7/19/2017, 11:03:30 PM] [FHEM] cached: 10 (as number')
[7/19/2017, 11:03:30 PM] [FHEM] query: CurrentTemperature for Wandthermostat.Kamin-temperature
[7/19/2017, 11:03:30 PM] [FHEM] cached: 25.2 (as number')
[7/19/2017, 11:03:30 PM] [FHEM] query: StatusLowBattery for Wandthermostat.Kamin-battery
[7/19/2017, 11:03:30 PM] [FHEM] cached: 0 (as number; means BATTERY_LEVEL_NORMAL')
[7/19/2017, 11:03:30 PM] [FHEM] query: CurrentHeatingCoolingState for Heizung.Schlafzimmer-undefined
[7/19/2017, 11:03:30 PM] [FHEM] cached: 1 (as number; means HEAT')
[7/19/2017, 11:03:30 PM] [FHEM] query: CurrentTemperature for Heizung.Schlafzimmer-temperature
[7/19/2017, 11:03:30 PM] [FHEM] cached: 25.2 (as number')
[7/19/2017, 11:03:30 PM] [FHEM] query: TargetTemperature for Heizung.Schlafzimmer-desiredTemperature
[7/19/2017, 11:03:30 PM] [FHEM] cached: 19 (as number')
[7/19/2017, 11:03:30 PM] [FHEM] query: StatusLowBattery for Heizung.Schlafzimmer-battery
[7/19/2017, 11:03:30 PM] [FHEM] cached: 0 (as number; means BATTERY_LEVEL_NORMAL')
[7/19/2017, 11:03:30 PM] [FHEM] query: StatusLowBattery for Fenster.Balkon-battery
[7/19/2017, 11:03:30 PM] [FHEM] cached: 0 (as number; means BATTERY_LEVEL_NORMAL')
[7/19/2017, 11:03:30 PM] [FHEM] query: ContactSensorState for Fenster.Balkon-state
[7/19/2017, 11:03:30 PM] [FHEM] cached: 1 (as number; means CONTACT_NOT_DETECTED')
2017-07-19 23:04:04 caching: Heizung.Schlafzimmer-desiredTemperature: 10.0
[7/19/2017, 11:04:04 PM] [FHEM] caching: TargetTemperature: 10 (as number; from '10.0')
2017-07-19 23:04:04 caching: Fenster.Schlafzimmer-state: opened
[7/19/2017, 11:04:04 PM] [FHEM] caching: ContactSensorState: 1 (as number; means CONTACT_NOT_DETECTED; from 'opened')
[7/19/2017, 11:04:04 PM] [FHEM] caching: CurrentDoorState: 0 (as number; means OPEN; from 'opened')
longpoll ended, reconnect in: 200msec
starting longpoll: https://10.0.1.10:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=1500498364.464;fmt=JSON&timestamp=1500498424853
[7/19/2017, 11:07:04 PM] [FHEM] Checking devices and attributes...
[7/19/2017, 11:07:04 PM] [FHEM] executing: https://10.0.1.10:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_87503770529008&XHR=1
[7/19/2017, 11:07:04 PM] [FHEM] executing: https://10.0.1.10:8083/fhem?cmd=jsonlist2%20TYPE=siri&fwcsrf=csrf_87503770529008&XHR=1
[7/19/2017, 11:07:05 PM] [FHEM] siri device is siri
[7/19/2017, 11:07:05 PM] [FHEM] executing: https://10.0.1.10:8083/fhem?cmd=%7B$defs%7Bsiri%7D-%3E%7B%22homebridge-fhem%20version%22%7D%20=%20%220.3.7%22%7D&fwcsrf=csrf_87503770529008&XHR=1
longpoll ended, reconnect in: 200msec starting longpoll: https://10.0.1.10:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=1500498364.464;fmt=JSON&timestamp=1500498484971`
[7/19/2017, 11:08:05 PM] [FHEM] Checking devices and attributes...
[7/19/2017, 11:08:05 PM] [FHEM] executing: https://10.0.1.10:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_87503770529008&XHR=1
[7/19/2017, 11:08:05 PM] [FHEM] executing: https://10.0.1.10:8083/fhem?cmd=jsonlist2%20TYPE=siri&fwcsrf=csrf_87503770529008&XHR=1
[7/19/2017, 11:08:05 PM] [FHEM] siri device is siri
[7/19/2017, 11:08:05 PM] [FHEM] executing: https://10.0.1.10:8083/fhem?cmd=%7B$defs%7Bsiri%7D-%3E%7B%22homebridge-fhem%20version%22%7D%20=%20%220.3.7%22%7D&fwcsrf=csrf_87503770529008&XHR=1
longpoll ended, reconnect in: 200msec

again and again and again. The behavior stops when i close the windows in all rooms and restart homebridge. While this is happening everything inside FHEM is working normal. Only the longpoll of homebridge-fhem is crashing.

Can you please help me to fix this? Am i doing anything wrong?

Problems with (new?) HomeMatic thermostats

  • Thermostat has only status information on root device (desired-temperature, measured-temperature, battery are readable values)
  • Thermostat has the control on DEVICE_Clima (also a copy of the readable values relevant to temperature)

-> Homebridge-FHEM detects it as a thermometer, not a thermostat, because it fails to find the controls

I manually changed Homebridge-FHEM to detect the sub channel as a full device (normally ignored), which makes it mostly work, except it is no longer capable of showing battery status.

Another thing I noticed: The mode in "climate" is "off" on HomeKit (but auto in FHEM and also displayed on the actual thermostats)

StatusLowBattery always 1

I'm using the current homebridge-fhem version with a temperature sensor. The config in fhem is done like this:

define WohnzimmerWetter pilight_temp alecto_ws1700 11 attr WohnzimmerWetter IODev pilight attr WohnzimmerWetter genericDeviceType thermometer

The sensor has the attribute "battery" which has "0" when battery level is low and "1" if battery level is normal. But in Apple Home I always got a "battery level low" even if battery has value "1".

homebridge log:

WohnzimmerWetter-battery: 1 caching: BatteryLevel: 1 (as number; from '1') caching: StatusLowBattery: 1 (as number; means BATTERY_LEVEL_LOW; from '1')

Normally I do not have to make my own mapping, because it is done in index.js:1419.

So it seems that battery:1 is not detected correctly. If a set my own homebridge mapping, it has the same issue.

attr WohnzimmerWetter homebridgeMapping StatusLowBattery=battery,values=0:BATTERY_LEVEL_LOW;1:BATTERY_LEVEL_NORMAL
caching: StatusLowBattery: 1 (as number; means BATTERY_LEVEL_LOW; from '0') caching: StatusLowBattery: 1 (as number; means BATTERY_LEVEL_LOW; from '1')

The mapping is correctly as I have it in the homebridge log.

If I change my mapping like this, I got battery level normal.

StatusLowBattery=battery,values=1:BATTERY_LEVEL_LOW;0:BATTERY_LEVEL_NORMAL

caching: StatusLowBattery: 0 (as number; means BATTERY_LEVEL_NORMAL; from '0') caching: StatusLowBattery: 0 (as number; means BATTERY_LEVEL_NORMAL; from '1')

Do you need more information?

Thank you and best!

genericDeviceType ValveType.GENERIC_VALVE

Hallo ich wollte genericDeviceType als Wasserhahn zuordnen leider bekomme ich es nicht hin laut HAP-NodeJS müsste es bei HomeKit ValveType.GENERIC_VALVE oder ValveType=0 sein aber wenn ich die nutze wird er mir in Home nicht als Wasserhahn sondern als Schalter angezeigt.

genericDeviceType HumiditySensor missing

While HomeKit and even homebridge-fhem do support a service called HumiditySensor, this cannot be picked from the genericDeviceType drop-down menu within fhem. Instead, you would have to run the following fhem command manually:
attr meinSensor genericDeviceType HumiditySensor
followed by a mapping of the attributes, e.g.
attr <meinSensor> homebridgeMapping clear CurrentRelativeHumidity=humidity CurrentTemperature=temperature
(source: https://wiki.fhem.de/wiki/Alexa_und_Mappings#Temperatur-_und_Feuchtesensor)

Expected behavior: HumiditySensor should be available in the dropdown. Ideally, the required mappings are done automagically.

Homebridge zeigt Fehler 'toUpperCase'

Hi. I have just started the homebridge (homebridge -I) and got the following error. But this error has only just occurred. I did not make any changes, just updated npm.

Hallo. Ich habe gerade die Homebridge (homebridge -I) gestartet und die folgende Fehlermeldung erhalten. Dieser Fehler ist aber gerade erst aufgetreten. Ich habe keine Änderungen vorgenommen, sondern nur npm aktualisiert.

[2019-5-25 13:42:01] TypeError: Cannot read property 'toUpperCase' of undefined
at new FHEMAccessory (/usr/local/lib/node_modules/homebridge-fhem/index.js:1588:26)
at FHEMPlatform. (/usr/local/lib/node_modules/homebridge-fhem/index.js:1174:42)
at Array.map ()
at FHEMPlatform. (/usr/local/lib/node_modules/homebridge-fhem/index.js:1171:31)
at Request.self.callback (/usr/local/lib/node_modules/homebridge-fhem/node_modules/request/request.js:185:22)
at Request.emit (events.js:189:13)
at Request. (/usr/local/lib/node_modules/homebridge-fhem/node_modules/request/request.js:1161:10)
at Request.emit (events.js:189:13)
at Gunzip. (/usr/local/lib/node_modules/homebridge-fhem/node_modules/request/request.js:1083:12)
at Object.onceWrapper (events.js:277:13)
[2019-5-25 13:42:01] Got SIGTERM, shutting down Homebridge...

config.son

For those with no idea... could you shed some light on where config.json is located, and the format that the FHEM parts should be added...

i've got a fresh homebrdige and homebridge-fhem installation but can't see an example config.json for it.

zusätzliche on/off Schalter für Eve

Gibt es eine Möglichkeit zusätzliche Schalter in Eve zu aktivieren? Ein Teil der Homebridge Plugins kann dies, geht das auch von FHEM aus?

Hier mal ein Beispiel (was nicht funktioniert):

On=power,valueOn=on,cmdOn=on,cmdOff=off
RotationSpeed=level,minValue=0,maxValue=100,cmd=level,delay=1
1844f825-6843-42b4-8b33-2b09fb047bd9=buzzer,name=Klingelton,cmdOff=buzzer+off,cmdOn=buzzer+on,valueOff=off,valueOn=on

Weiter Beispiele sind zb in einem Rollo Beschattung on/off, Beim Staubsaugen die einzelnen Zonen aktivieren...

Issue with harmony device

Hi,
I have four harmony devices declared in FHEM, three of them are listed by homebridge-fhem without any problem. But the fourth which is the same in declaration is missing.
How is the best way to debug and find the root cause, which i still suspect on my side?

Best
Andreas

Nachdem Schalten Absturz von homebridge. Versuchtes npm Update failed

Hi justme,

nachdem ich meinen harmonyhub in den Homekit Raum in fhem gelegt habe, stürzte homebridge nach dem Schalten einer Activity immer ab mit folgendem Fehler im Screenshot:
screenshot_17

Nun muss ich aber gestehen, dass ich homebridge vor Ewigkeiten installiert und nicht mehr aktualisiert hatte. Deshalb habe ich zunächst auf meinem Raspberry Pi () das System aktualisiert mittel sudo update && sudo upgrade. Anschließend mittels sudo npm update -g homebridge versucht zu updaten und dabei folgende Fehler erhalten:


/usr/local/bin/homebridge -> /usr/local/lib/node_modules/homebridge/bin/homebridge

[email protected] install /usr/local/lib/node_modules/homebridge/node_modules/bignum
node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download: https://rvagg-node.s3-us-west-2.amazonaws.com/bignum/v0.12.5/bignum-v0.12.5-node-v47-linux-arm.tar.gz 
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v47 ABI) (falling back to source compile with node-gyp) 
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/5.0.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/homebridge/node_modules/bignum/.node-gyp"
make: Entering directory '/usr/local/lib/node_modules/homebridge/node_modules/bignum/build'
make: *** No rule to make target '../.node-gyp/5.0.0/include/node/common.gypi', needed by 'Makefile'.  Stop.
make: Leaving directory '/usr/local/lib/node_modules/homebridge/node_modules/bignum/build'
gyp ERR! build error 
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.1.19+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/usr/local/lib/node_modules/homebridge/node_modules/bignum/binding/bignum.node" "--module_name=bignum" "--module_path=/usr/local/lib/node_modules/homebridge/node_modules/bignum/binding"
gyp ERR! cwd /usr/local/lib/node_modules/homebridge/node_modules/bignum
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/usr/local/lib/node_modules/homebridge/node_modules/bignum/binding/bignum.node --module_name=bignum --module_path=/usr/local/lib/node_modules/homebridge/node_modules/bignum/binding' (1)
node-pre-gyp ERR! stack     at ChildProcess. (/usr/local/lib/node_modules/homebridge/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:87:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:818:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
node-pre-gyp ERR! System Linux 4.1.19+
node-pre-gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/homebridge/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /usr/local/lib/node_modules/homebridge/node_modules/bignum
node-pre-gyp ERR! node -v v5.0.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.30
node-pre-gyp ERR! not ok 
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/usr/local/lib/node_modules/homebridge/node_modules/bignum/binding/bignum.node --module_name=bignum --module_path=/usr/local/lib/node_modules/homebridge/node_modules/bignum/binding' (1)

  • [email protected] node_modules/homebridge/node_modules/curve25519
    npm ERR! Linux 4.1.19+
    npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g" "homebridge"
    npm ERR! node v5.0.0
    npm ERR! npm  v3.3.6
    npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: node-pre-gyp install --fallback-to-build
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the bignum package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get their info via:
npm ERR!     npm owner ls bignum
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/.homebridge/npm-debug.log


Folgende Versionen werden verwendet:
node -v
v5.0.0
npm -v
3.3.6

Hast du einen Tipp, was ich tun kann und wo der Fehler liegt?
Gruß und Danke
NetRat88

Problems with version above 0.4.11

Hi there,

I just wanted to update to the latest version, but unfortunately an error is thrown in the console. So I went through the history of commits and releases and found the first release, that was causing this: 0.4.12.

Below you can see the error. Is this something about Node.js version?

Oct 10 16:50:04 berry homebridge[29412]: [10/10/2019, 4:50:04 PM] Loaded plugin: homebridge-fhem
Oct 10 16:50:04 berry homebridge[29412]: homebridge API version: 2.4
Oct 10 16:50:04 berry homebridge[29412]: this is homebridge-fhem 0.4.12
Oct 10 16:50:04 berry homebridge[29412]: /usr/lib/node_modules/homebridge-fhem/node_modules/fakegato-history/lib/googleDrive.js:7
Oct 10 16:50:04 berry homebridge[29412]: const {google} = require('googleapis');
Oct 10 16:50:04 berry homebridge[29412]: ^
Oct 10 16:50:04 berry homebridge[29412]: SyntaxError: Unexpected token {
Oct 10 16:50:04 berry homebridge[29412]: at exports.runInThisContext (vm.js:53:16)
Oct 10 16:50:04 berry homebridge[29412]: at Module._compile (module.js:387:25)
Oct 10 16:50:04 berry homebridge[29412]: at Object.Module._extensions..js (module.js:422:10)
Oct 10 16:50:04 berry homebridge[29412]: at Module.load (module.js:357:32)
Oct 10 16:50:04 berry homebridge[29412]: at Function.Module._load (module.js:314:12)
Oct 10 16:50:04 berry homebridge[29412]: at Module.require (module.js:367:17)
Oct 10 16:50:04 berry homebridge[29412]: at require (internal/module.js:20:19)
Oct 10 16:50:04 berry homebridge[29412]: at Object.<anonymous> (/usr/lib/node_modules/homebridge-fhem/node_modules/fakegato-history/fakegato-storage.js:11:19)
Oct 10 16:50:04 berry homebridge[29412]: at Module._compile (module.js:413:34)
Oct 10 16:50:04 berry homebridge[29412]: at Object.Module._extensions..js (module.js:422:10)

Homebridgemapping for TargetTemperature requires SET command in wrong device

HI,
I think I found an issue with the homebridgeMapping for TargetTemperature.
In my setup I use the Reading for TargetTemperature from another device (Heizung3). So my mapping looks like:
homebridgeMapping: TargetTemperature=PTEMP:Heizung3:Party-Temperatur,minValue=18,maxValue=25,minStep=1.0

But as long as the device in which the mapping is defined in (Heizung_TempSoll_Thermostat) has no SET command as defined in the homebridgeMapping (PTEMP) the plugin complains at startup with:
[2018-2-18 12:28:01] [FHEM] Heizung_TempSoll_Thermostat is NOT a thermostat. set command for target temperature missing: PTEMP

If I define the required set command in Heizung_TempSoll_Thermostat with setList PTEMP, the issue goes away but interestingly, when I change the targetTemperature in HOME App, the SET command is issued for the device Heizung3 but not for Heizung_TempSoll_Thermostat.

In my opinion either both, the Reading and SET Command, should be used from the defined device. In this case it must be checked if the SET command exists for the defined device, not the current one.
Or the SET command is issued for the current device. But then the SET should be issued for the current device.

Thx,
Roman

Parameter nocache dosnt work with Homematic HM-CC-RT-DN

With current mapping TargetTemperature and CurrentTemperature don't use cached value from fhem.

homebridgeMapping TargetTemperature=desired-temp::desired-temp,minValue=5,maxValue=35,minStep=0.5,nocache=true
					CurrentTemperature=BZ_Heizung_01_Clima:measured-temp,nocache=true
					StatusLowBattery=BZ_Heizung_01:battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW
					TargetHeatingCoolingState=heatingState,values=OFF:0;;HEAT:1;;COOL:2;;AUTO:3,cmds=OFF:controlManu+off;;HEAT:controlMode+boost;;AUTO:controlMode+auto;;COOL:controlManu+17.0
					CurrentHeatingCoolingState=heatingState,values=OFF:0;;HEAT:1;;COOL:2;;AUTO:0
					

the output of homebridge looks

2017-02-15 18:49:15 caching: BZ_Heizung_01_Clima-desired-temp: 21.0
[2/15/2017, 6:49:15 PM] [FHEM]     caching: TargetTemperature: 21 (as number; from '21.0')
2017-02-15 18:49:15 caching: BZ_Heizung_01_Clima-measured-temp: 23.1
[2/15/2017, 6:49:15 PM] [FHEM]     caching: CurrentTemperature: 23.1 (as number; from '23.1')

the value from TargetTemperature and CurrentTemperature use caching. In any HomeKit App I see the stored value, which does not correspond to the current correct value

"Offline" Status in HomeKit via homebridgeMapping

Hi. I´m searching for the right homebridgeMapping syntax to transmit the "offline" State of my Tasmota-Devices (LWT Reading) to HomeKit.

Hi. Ich suche die richtige Syntax für das homebridgeMapping in FHEM um den "offline" Status meiner Tasmota-Geräte an HomeKit zu übergeben.

Danke :-)

Custom-defined Dummy Switch makes Homebridge unpairable

Hi all,

I have implemented a solution for the KeyMatic lock device, which works out of the box with homebridge FHEM for the "lock" and "unlock" functionality, but not for "open".

In mu solution, "open" is triggered via an extra dummy switch that falls back to the "off" state after 2 s, and a "notify" device that connects to the "open" action of the KeyMatic.
In previous versions, my solution has worked pretty well, but since the last update of homebridge, homebridge-fhem, or iOS, my self-defined switch device messes up HomeKit, so that the whole homebridge becomes unresponsive in HomeKit when my switch device is in the configuration. If the dummy switch device is in the configuration before pairing the homebridge with HomeKit, it even gives you a pairing error and the Homebridge cannot be added to HomeKit.

My code for the dummy and notify devices lollows below:

defmod frontDoor dummy
attr frontDoor alias Haustür
attr frontDoor eventMap on:on off:off
attr frontDoor genericDeviceType switch
attr frontDoor homebridgeMapping clear On=state,cmdOn=on,cmdOff=off,valueOn=on,valueOff=off,default=off,timeout=500
attr frontDoor room _HomeKit
attr frontDoor setList on off
attr frontDoor webCmd on:off

defmod TuerAuf notify frontDoor.on set HM_4BCFFE open;; define frontDoor_off at +00:00:02 set frontDoor off

Am I doing something wrong? What has changed in the latest version that could invalidate the above code?

Minor typos in readme

I guess there are some minor typos in the readme:

  1. The server runs on port 8282 instead of 8082.
  2. "hast to be" --> "has to be"

TypeError after update

Hi!

after updating to the current 0.2.33 of homebridge-fhem (from I think 0.2.31) I get a TypeError upon start:

*** WARNING *** The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs>
*** WARNING *** The program 'nodejs' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs&f=DNSServiceRegister>
[8/25/2016, 11:08:34 AM] Loaded plugin: homebridge-fhem
homebridge API version: 2
[8/25/2016, 11:08:34 AM] Registering platform 'homebridge-fhem.FHEM'
[8/25/2016, 11:08:34 AM] ---
[8/25/2016, 11:08:34 AM] Loaded config.json with 0 accessories and 1 platforms.
[8/25/2016, 11:08:34 AM] ---
[8/25/2016, 11:08:34 AM] Loading 1 platforms...
[8/25/2016, 11:08:34 AM] [FHEM] Initializing FHEM platform...
starting longpoll: http://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1472116116244
[8/25/2016, 11:08:36 AM] [FHEM] Checking genericDeviceType...
[8/25/2016, 11:08:36 AM] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[8/25/2016, 11:08:36 AM] [FHEM] Fetching FHEM devices...
[8/25/2016, 11:08:36 AM] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=Homekit&XHR=1
[8/25/2016, 11:08:36 AM] Loading 0 accessories...
Server listening on: http://<ip>:8282
[8/25/2016, 11:08:38 AM] [FHEM] got: 5 results
/usr/lib/node_modules/homebridge-fhem/index.js:1555
    if( match[3] ) {
             ^

TypeError: Cannot read property '3' of null
    at Object.FHEMAccessory (/usr/lib/node_modules/homebridge-fhem/index.js:1555:14)
    at Object.<anonymous> (/usr/lib/node_modules/homebridge-fhem/index.js:975:42)
    at Array.map (native)
    at Object.<anonymous> (/usr/lib/node_modules/homebridge-fhem/index.js:972:31)
    at Request.self.callback (/usr/lib/node_modules/homebridge-fhem/node_modules/request/request.js:187:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
    at Request.<anonymous> (/usr/lib/node_modules/homebridge-fhem/node_modules/request/request.js:1044:10)
    at emitOne (events.js:77:13)
    at Request.emit (events.js:169:7)

Because something changed with the homematic part of your code I removed all thermostats from the HomeKit room and homebrige started up fine. After adding just one I got the same error again.

This is the data I get from curl-ing the jsonlist URL with the HTML bits removed:

{
  "Arg":"room=Homekit",
  "Results": [
  {
    "Name":"WZ_SW_Desklamp",
    "PossibleSets":"associationAdd associationDel configActionInCaseOfExceedingDefined52:TurnTheAssociatedDevicesOnPower1,TurnTheAssociatedDevicesOffPower2,1And4Combine,TurnTheAssociatedDevicesOffPower4,TurnTheAssociatedDevicesOnPower3,2And3Combined,FunctionInactive configAlarmDuration configAlwaysOnFunction:functionInactive,functionActivated configByte configDOWNValue configDefault configImmediatePowerReport configLEDRingIlluminationColourAtTheZ63:RedIllumination,MagentaIllumination,YellowIllumination,GreenIllumination,WhiteIllumination,NoChangeInColour,LEDRingFlashesRedBlueWhite,BlueIllumination,illuminationTurnedOffCompletely,CyanIlluminatio configLEDRingIlluminationColourWhen61:BlueIllumination,DependingOnPowerConsumption0,CyanIlluminatio,illuminationTurnedOffCompletely,GreenIllumination,WhiteIllumination,MagentaIllumination,YellowIllumination,RedIllumination,UsingFullSpectrumOfAvailable1 configLEDRingIlluminationColourWhen62:WhiteIllumination,GreenIllumination,CyanIlluminatio,illuminationTurnedOffCompletely,DependingOnTheLastMeasuredPower,BlueIllumination,RedIllumination,YellowIllumination,MagentaIllumination configLong configMeteringEnergyConsumedByTheWall49:functionInactive,functionActivated configOveloadSafetySwitch configPowerLoadWhichWhenExceededMakes60 configPowerReportingFrequency configReactionToAlarms:ALARMCO,ALARMWATER,ALARMSMOKE,ALARMHEAT,ALARMALL,ALARMGENERIC,ALARMCO2 configRememberDeviceStatusAfterPower16:WallPlugMemorizesItsStateAfterA1,WallPlugDoesNotMemorizeItsState0 configReportingChangesInEnergyConsumed45 configStandardPowerLoadReporting configTimePeriodBetweenReportsOnPower47 configUPValue configWallPlugSResponseToAlarmFrames:TurnOnConnectedDevice,CyclicallyChangeDeviceState3,TurnOffConnectedDevice,NoReaction configWord mcaAdd mcaDel meterReset:noArg neighborUpdate:noArg off:noArg on:noArg powerlevel powerlevelTest returnRouteAdd returnRouteDel:noArg on-till toggle on-for-timer off-till-overnight off-till on-till-overnight intervals off-for-timer blink",
    "PossibleAttrs":"verbose:0,1,2,3,4,5 room group comment:textField-long alias eventMap userReadings:textField-long IODev WNMI_delay noWakeupForApplicationUpdate:1,0 classes do_not_notify:1,0 dummy:1,0 extendedAlarmReadings:0,1,2 ignore:1,0 noExplorerFrames:1,0 eventForRaw secure_classes showtime:1,0 vclasses zwaveRoute neighborListPos event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading alarmDevice alarmSettings cmdIcon devStateIcon devStateStyle fm_type genericDeviceType:switch,outlet,light,blind,speaker,thermostat homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr",
    "Internals": {
      "DEF": "f154c3aa 5",
      "NAME": "WZ_SW_Desklamp",
      "NR": "111",
      "STATE": "off",
      "TYPE": "ZWave",
      "ZWaveSubDevice": "no",
      "homeId": "f154c3aa",
      "nodeIdHex": "05"
    },
    "Readings": {
      "configActionInCaseOfExceedingDefined52": { "Value":"2And3Combined", "Time":"2016-08-17 18:44:55" },
      "configAlarmDuration": { "Value":"600", "Time":"2016-08-17 18:44:55" },
      "configAlwaysOnFunction": { "Value":"functionInactive", "Time":"2016-08-17 18:44:55" },
      "configDOWNValue": { "Value":"300", "Time":"2016-08-17 18:44:55" },
      "configImmediatePowerReport": { "Value":"80", "Time":"2016-08-17 18:44:55" },
      "configLEDRingIlluminationColourAtTheZ63": { "Value":"LEDRingFlashesRedBlueWhite", "Time":"2016-08-17 18:44:55" },
      "configLEDRingIlluminationColourWhen61": { "Value":"illuminationTurnedOffCompletely", "Time":"2016-08-17 18:44:55" },
      "configLEDRingIlluminationColourWhen62": { "Value":"illuminationTurnedOffCompletely", "Time":"2016-08-17 18:44:55" },
      "configMeteringEnergyConsumedByTheWall49": { "Value":"functionInactive", "Time":"2016-08-17 18:44:55" },
      "configOveloadSafetySwitch": { "Value":"65535", "Time":"2016-08-17 18:44:55" },
      "configPowerLoadWhichWhenExceededMakes60": { "Value":"25000", "Time":"2016-08-17 18:44:55" },
      "configPowerReportingFrequency": { "Value":"30", "Time":"2016-08-17 18:44:55" },
      "configReactionToAlarms": { "Value":"ALARMALL", "Time":"2016-08-17 18:44:55" },
      "configRememberDeviceStatusAfterPower16": { "Value":"WallPlugMemorizesItsStateAfterA1", "Time":"2016-08-17 18:44:55" },
      "configReportingChangesInEnergyConsumed45": { "Value":"10", "Time":"2016-08-17 18:44:55" },
      "configStandardPowerLoadReporting": { "Value":"15", "Time":"2016-08-17 18:44:55" },
      "configTimePeriodBetweenReportsOnPower47": { "Value":"3600", "Time":"2016-08-17 18:44:55" },
      "configUPValue": { "Value":"500", "Time":"2016-08-17 18:44:55" },
      "configWallPlugSResponseToAlarmFrames": { "Value":"NoReaction", "Time":"2016-08-17 18:44:55" },
      "energy": { "Value":"0.57 kWh", "Time":"2016-08-25 10:21:27" },
      "meterSupported": { "Value":"type: energy scales: 0:kWh, 2:W resetable: yes", "Time":"2016-08-17 18:46:07" },
      "model": { "Value":"FIBARO System FGWPE Wall Plug", "Time":"2016-08-17 18:16:22" },
      "modelConfig": { "Value":"fibaro/fgwpe.xml", "Time":"2016-08-17 18:16:22" },
      "modelId": { "Value":"010f-0600-1000", "Time":"2016-08-17 18:16:22" },
      "power": { "Value":"0.0 W", "Time":"2016-08-25 10:53:53" },
      "powerlvl": { "Value":"current 0 remain 0", "Time":"2016-08-17 18:45:54" },
      "reportedState": { "Value":"off", "Time":"2016-08-17 18:21:49" },
      "state": { "Value":"off", "Time":"2016-08-24 21:53:54" },
      "timeToAck": { "Value":"0.031", "Time":"2016-08-24 21:53:54" },
      "transmit": { "Value":"OK", "Time":"2016-08-24 21:53:54" }
    },
    "Attributes": {
      "IODev": "ZWDongle_1",
      "alias": "Schreibtischlampe",
      "classes": "MANUFACTURER_SPECIFIC VERSION CONFIGURATION ASSOCIATION MULTI_CHANNEL_ASSOCIATION SWITCH_BINARY POWERLEVEL METER SENSOR_MULTILEVEL FIRMWARE_UPDATE_MD MARK SWITCH_BINARY METER SENSOR_MULTILEVEL",
      "genericDeviceType": "light",
      "room": "Wohnzimmer,ZWave,Homekit",
      "vclasses": "ASSOCIATION:2 CONFIGURATION:1 FIRMWARE_UPDATE_MD:1 MANUFACTURER_SPECIFIC:1 METER:2 MULTI_CHANNEL_ASSOCIATION:2 POWERLEVEL:1 SENSOR_MULTILEVEL:2 SWITCH_BINARY:1 VERSION:1"
    }
  },
  {
    "Name":"WZ_TM_Clima",
    "PossibleSets":"burstXmit clear:readings,trigger,register,oldRegs,rssi,msgEvents,attack,all controlManu:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 controlMode:auto,manual,boost,day,night controlParty desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw inhibit:on,off peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTmpl tempListTue tempListWed tempTmplSet:none,defaultWeekplan,BZ.TM.Klima,WZ.TM.Klima ",
    "PossibleAttrs":"verbose:0,1,2,3,4,5 room group comment:textField-long alias eventMap userReadings:textField-long do_not_notify:1,0 showtime:1,0 rawToReadable unit expert:0_defReg,1_allReg,2_defReg+raw,3_allReg+raw,4_off,8_templ+default,12_templOnly,251_anything param actAutoTry:0_off,1_on aesCommReq:1,0 ignore:1,0 dummy:1,0 IODev IOList IOgrp rssiLog:1,0 actCycle hmKey hmKey2 hmKey3 serialNr firmware .stc .devInfo actStatus autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto msgRepeat hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger aesKey:5,4,3,2,1,0  repPeers peerIDs tempListTmpl:none,defaultWeekplan,BZ.TM.Klima,WZ.TM.Klima levelRange levelMap event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading model:ASH550,ASH550I,CCU-FHEM,CMM,DORMA_BRC-H,DORMA_RC-H,DORMA_atent,HM-CC-RT-DN,HM-CC-RT-DN-BoM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-Dis-EP-WM55,HM-Dis-TD-T,HM-Dis-WM55,HM-ES-PMSw1-DR,HM-ES-PMSw1-Pl,HM-ES-PMSw1-Pl-DN-R1,HM-ES-PMSw1-Pl-DN-R2,HM-ES-PMSw1-Pl-DN-R3,HM-ES-PMSw1-Pl-DN-R4,HM-ES-PMSw1-Pl-DN-R5,HM-ES-PMSw1-SM,HM-ES-TX-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-Bl1-FM-2,HM-LC-Bl1-SM-2,HM-LC-Bl1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-PL,HM-LC-DIM1T-CV,HM-LC-DIM1T-FM,HM-LC-DIM1T-PL,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2T-SM,HM-LC-Dim1L-CV-2,HM-LC-Dim1L-CV-644,HM-LC-Dim1L-Pl-2,HM-LC-Dim1L-Pl-3,HM-LC-Dim1L-Pl-644,HM-LC-Dim1PWM-CV,HM-LC-Dim1PWM-CV-2,HM-LC-Dim1T-CV-2,HM-LC-Dim1T-CV-644,HM-LC-Dim1T-FM-2,HM-LC-Dim1T-FM-644,HM-LC-Dim1T-FM-LF,HM-LC-Dim1T-Pl-2,HM-LC-Dim1T-Pl-3,HM-LC-Dim1T-Pl-644,HM-LC-Dim1TPBU-FM,HM-LC-Dim1TPBU-FM-2,HM-LC-Dim2L-SM-2,HM-LC-Dim2L-SM-644,HM-LC-Dim2T-SM,HM-LC-Dim2T-SM-2,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-FM,HM-LC-SW1-PB-FM,HM-LC-SW1-PL,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW2-DR,HM-LC-SW2-FM,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-PCB,HM-LC-SW4-SM,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-Sw1-DR,HM-LC-Sw1-FM-2,HM-LC-Sw1-PCB,HM-LC-Sw1-Pl-3,HM-LC-Sw1-Pl-CT-R1,HM-LC-Sw1-Pl-CT-R2,HM-LC-Sw1-Pl-CT-R3,HM-LC-Sw1-Pl-CT-R4,HM-LC-Sw1-Pl-CT-R5,HM-LC-Sw1-Pl-DN-R1,HM-LC-Sw1-Pl-DN-R2,HM-LC-Sw1-Pl-DN-R3,HM-LC-Sw1-Pl-DN-R4,HM-LC-Sw1-Pl-DN-R5,HM-LC-Sw1-SM-2,HM-LC-Sw1PBU-FM,HM-LC-Sw2-DR-2,HM-LC-Sw2-FM-2,HM-LC-Sw2PBU-FM,HM-LC-Sw4-DR-2,HM-LC-Sw4-PCB-2,HM-LC-Sw4-SM-2,HM-LC-Sw4-WM-2,HM-MOD-Em-8,HM-MOD-Re-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-Dis-H-x-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-Key4-2,HM-RC-Key4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-Sec4-2,HM-RC-Sec4-3,HM-SCI-3-FM,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCo,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-EP,HM-SEN-MDIR-SM,HM-SWI-3-FM,HM-Sec-Cen,HM-Sec-Sir-WM,HM-Sen-DB-PCB,HM-Sen-LI-O,HM-Sen-MDIR-O,HM-Sen-MDIR-O-2,HM-Sen-MDIR-WM55,HM-Sen-RD-O,HM-Sen-Wa-Od,HM-Sys-sRP-Pl,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550Tech,IS-WDS-TH-OD-S-R3,KFM-Display,KFM-Sensor,KS550,KS550LC,KS550TECH,KS888,OLIGO-smart-iq-HM,PS-Th-Sens,PS-switch,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,Roto_ZEL-STG-RM-FFK,Roto_ZEL-STG-RM-FSS-UP3,S550IA,Schueco_263-130,Schueco_263-131,Schueco_263-132,Schueco_263-133,Schueco_263-134,Schueco_263-135,Schueco_263-144,Schueco_263-145,Schueco_263-146,Schueco_263-147,Schueco_263-155,Schueco_263-157,Schueco_263-158,Schueco_263-160,Schueco_263-162,Schueco_263-167,Schueco_263-xxx,SensoTimer-ST-6,WDF-solar,WS888 subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,keyMatic,motionAndBtn,motionDetector,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic alarmDevice alarmSettings cmdIcon devStateIcon devStateStyle fm_type genericDeviceType:switch,outlet,light,blind,speaker,thermostat homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr",
    "Internals": {
      "DEF": "3A8B5B04",
      "NAME": "WZ_TM_Clima",
      "NOTIFYDEV": "global",
      "NR": "71",
      "NTFY_ORDER": "50-WZ_TM_Clima",
      "STATE": "T: 22.0 desired: 10.0 valve: 0",
      "TYPE": "CUL_HM",
      "chanNo": "04",
      "device": "WZ_TM"
    },
    "Readings": {
      "CommandAccepted": { "Value":"yes", "Time":"2016-08-23 16:43:13" },
      "R-boostPos": { "Value":"80 %", "Time":"2015-12-13 21:29:14" },
      "R-btnNoBckLight": { "Value":"off", "Time":"2015-12-13 21:29:14" },
      "R-dayTemp": { "Value":"21 C", "Time":"2015-12-13 21:29:14" },
      "R-daylightSaveTime": { "Value":"on", "Time":"2015-12-13 21:29:14" },
      "R-modePrioManu": { "Value":"all", "Time":"2015-12-13 21:29:14" },
      "R-modePrioParty": { "Value":"all", "Time":"2015-12-13 21:29:14" },
      "R-nightTemp": { "Value":"17 C", "Time":"2015-12-13 21:29:14" },
      "R-noMinMax4Manu": { "Value":"off", "Time":"2015-12-13 21:29:14" },
      "R-regAdaptive": { "Value":"on", "Time":"2015-12-13 21:29:14" },
      "R-showInfo": { "Value":"time", "Time":"2015-12-13 21:29:14" },
      "R-sign": { "Value":"off", "Time":"2015-12-13 21:26:22" },
      "R-tempOffset": { "Value":"0.0K", "Time":"2015-12-13 21:29:14" },
      "R-valveOffsetRt": { "Value":"0 %", "Time":"2015-12-13 21:29:14" },
      "R-winOpnBoost": { "Value":"off", "Time":"2015-12-13 21:29:14" },
      "R_0_tempListSat": { "Value":"10:00 17.0 22:00 21.0 22:30 19.0 24:00 17.0", "Time":"2016-02-29 15:16:11" },
      "R_1_tempListSun": { "Value":"10:00 17.0 21:00 21.0 21:30 19.0 24:00 17.0", "Time":"2016-02-29 15:16:11" },
      "R_2_tempListMon": { "Value":"16:00 17.0 21:00 21.0 21:30 19.0 24:00 17.0", "Time":"2016-02-29 15:16:11" },
      "R_3_tempListTue": { "Value":"16:00 17.0 21:00 21.0 21:30 19.0 24:00 17.0", "Time":"2016-02-29 15:16:11" },
      "R_4_tempListWed": { "Value":"18:00 17.0 21:00 21.0 21:30 19.0 24:00 17.0", "Time":"2016-02-29 15:16:11" },
      "R_5_tempListThu": { "Value":"16:00 17.0 21:00 21.0 21:30 19.0 24:00 17.0", "Time":"2016-02-29 15:16:11" },
      "R_6_tempListFri": { "Value":"12:00 17.0 19:30 21.0 22:30 19.0 24:00 17.0", "Time":"2016-02-29 15:16:11" },
      "R_tempList_State": { "Value":"verified", "Time":"2016-02-29 15:16:11" },
      "RegL_01.": { "Value":"08:00 00:00", "Time":"2016-02-29 15:16:07" },
      "RegL_07.": { "Value":"01:2A 02:22 03:09 04:3D 05:18 06:03 07:00 08:16 09:07 0A:30 0B:00 0C:64 0D:0F 0E:05 0F:00 10:00 11:00 12:09 13:8E 14:44 15:78 16:55 17:08 18:4D 19:0E 1A:45 1B:20 1C:45 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:44 2F:78 30:54 31:FC 32:4D 33:02 34:45 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:44 49:C0 4A:54 4B:FC 4C:4D 4D:02 4E:45 4F:20 50:45 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:44 63:C0 64:54 65:FC 66:4D 67:02 68:45 69:20 6A:45 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:44 7D:D8 7E:54 7F:FC 80:4D 81:02 82:45 83:20 84:45 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:44 97:C0 98:54 99:FC 9A:4D 9B:02 9C:45 9D:20 9E:45 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:44 B1:90 B2:54 B3:EA B4:4D B5:0E B6:45 B7:20 B8:45 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:0F CB:1E CC:1E CD:0F CE:1E CF:1E 00:00", "Time":"2016-02-29 15:16:11" },
      "ValvePosition": { "Value":"0", "Time":"2016-08-25 11:17:53" },
      "boostTime": { "Value":"-", "Time":"2016-08-25 11:17:53" },
      "controlMode": { "Value":"manual", "Time":"2016-08-25 11:17:53" },
      "desired-temp": { "Value":"10.0", "Time":"2016-08-25 11:17:53" },
      "measured-temp": { "Value":"22.0", "Time":"2016-08-25 11:17:53" },
      "partyEnd": { "Value":"-", "Time":"2016-08-25 11:17:53" },
      "partyStart": { "Value":"-", "Time":"2016-08-25 11:17:53" },
      "partyTemp": { "Value":"-", "Time":"2016-08-25 11:17:53" },
      "recentStateType": { "Value":"ack", "Time":"2016-08-23 16:43:13" },
      "state": { "Value":"T: 22.0 desired: 10.0 valve: 0", "Time":"2016-08-25 11:17:53" }
    },
    "Attributes": {
      "genericDeviceType": "thermostat",
      "group": "Thermostat",
      "model": "HM-CC-RT-DN",
      "peerIDs": "00000000,",
      "room": "Homekit,Thermostate,Wohnzimmer"
    }
  }  ],
  "totalResultsReturned":2
}

I tried adding genericDeviceType but that didn't change a thing, it wasn't needed before.
homebridge runs on RPi2 with node 4.5.0, FHEM is up-to-date

Homematic Dimmer "flashing" for every "on" state

Hi,

it's more a request for a code change than a bug report.

Please check line 1177:
this.mappings.On = { reading: 'pct', valueOff: '0', cmdOn: 'on', cmdOff: 'off' };

The 'on" for 'cmdOn' creates a very aggressive flashing of the device, especially when you are using a light source with lots of power.

In my case changing the line to
this.mappings.On = { reading: 'pct', valueOff: '0', cmdOn: '1', cmdOff: 'off' };
makes me really satisfied.

The device is starting at the lowest step and raises up to the desired value.

device status not updating correctly

so i'm communicating correctly with fhem, using the home app in iOS 10.

if i turn things on they turn on, if i turn them off they turn off... but...

if i close the app and then open it again some of the devices show as being on... when they are off. these are just plain switches...

any ideas why this might be happening?

Cheers for the good work. seems to work very well

A

Waterlevel > Humidity

Hi there I am trying to figure out how I can bring my proteus TEK603 Water-level Reader into homebridge. It shows one of the measurements in %

Internals: DEF /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 DeviceName /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 FD 82 NAME ecometer NR 1196 PARTIAL PORTSTATE open STATE opened TYPE TEK603 buffer 5349001602100b0904e75dde6200000010b71cbde266 READINGS: 2017-11-03 09:38:24 RemainingUsableLevel 4279 2017-11-03 09:38:24 RemainingUsablePercent 58.2 2017-11-03 09:38:24 Temperature 18.89 2017-11-03 09:38:24 Time 10:39:03 2017-11-03 09:38:24 TotalUsableCapacity 7357 2017-11-03 09:38:24 Ullage 69 2017-11-02 10:35:41 state opened Attributes: room Heizöl

I was thinking about Humidity

attr <tempHum> genericDeviceType thermometer attr <tempHum> homebridgeMapping [CurrentTemperature=temperature1] CurrentRelativeHumidity=<device2>:humidity

but how?

Thermostats - Desired temperature incorrect

Hello,

sorry, for opening so many issues...
There still is a problem with my thermostats.

In the home app, an incorrect desired temperature is shown. In FHEM the temperature for all my thermostats is 18°C but in the app all thermostats are in an old state (all above 20°C).

When I change the temperature in HomeKit it correctly is changed in FHEM (and on the thermostats). But when I change the temperature on a thermostat it only is correctly synced to FEHM but not to homekit. It stays on the old state.

Currently I do not have any custom homebridgeMappings.

Example:

img_0345

bildschirmfoto 2016-11-01 um 09 35 30

Jsonlist2 for "Große Heizung" in room "Büro".

{ 
  "Arg":"MAX_03975d", 
  "Results": [ 
  { 
    "Name":"MAX_03975d", 
    "PossibleSets":"wakeUp factoryReset groupid associate:MAX_035278,MAX_093d63,MAX_0716a6,MAX_071689,MAX_067ab2,MAX_10d785,MAX_0746ff deassociate:MAX_035278,MAX_093d63,MAX_0716a6,MAX_071689,MAX_067ab2,MAX_10d785,MAX_0746ff desiredTemperature:eco,comfort,boost,auto,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on ecoTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on comfortTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on measurementOffset:-3.5,-3.0,-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5 maximumTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on minimumTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on windowOpenTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on windowOpenDuration boostDuration:15,5,10,30,0,25,60,20 boostValveposition decalcification maxValveSetting valveOffset weekProfile", 
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev do_not_notify:1,0 ignore:0,1 dummy:0,1 showtime:1,0 keepAuto:0,1 scanTemp:0,1 event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading alarmDevice:Actor,Sensor alarmSettings cmdIcon devStateIcon devStateStyle genericDeviceType:ignore,switch,outlet,light,blind,thermometer,thermostat,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr", 
    "Internals": { 
      "DEF": "HeatingThermostat 03975d", 
      "LASTInputDev": "ml", 
      "MSGCNT": "2343", 
      "NAME": "MAX_03975d", 
      "NR": "29", 
      "STATE": "18.0 °C", 
      "TYPE": "MAX", 
      "addr": "03975d", 
      "backend": "ml", 
      "dstsetting": "1", 
      "ml_MSGCNT": "2343", 
      "ml_TIME": "2016-11-01 09:39:22", 
      "mode": "0", 
      "rferror": "0", 
      "serial": "IHA0022504", 
      "type": "HeatingThermostat" 
    }, 
    "Readings": { 
      "MAXLAN_error": { "Value":"0", "Time":"2016-11-01 09:39:22" }, 
      "MAXLAN_errorInCommand": { "Value":"", "Time":"2016-11-01 09:39:22" }, 
      "MAXLAN_initialized": { "Value":"1", "Time":"2016-11-01 09:39:22" }, 
      "MAXLAN_isAnswer": { "Value":"0", "Time":"2016-11-01 09:39:22" }, 
      "MAXLAN_valid": { "Value":"1", "Time":"2016-11-01 09:39:22" }, 
      "battery": { "Value":"ok", "Time":"2016-11-01 09:39:22" }, 
      "boostDuration": { "Value":"15", "Time":"2016-11-01 03:23:30" }, 
      "boostValveposition": { "Value":"80", "Time":"2016-11-01 03:23:30" }, 
      "comfortTemperature": { "Value":"21.0", "Time":"2016-11-01 03:23:30" }, 
      "decalcification": { "Value":"Sat 12:00", "Time":"2016-11-01 03:23:30" }, 
      "desiredTemperature": { "Value":"18.0", "Time":"2016-11-01 09:39:22" }, 
      "ecoTemperature": { "Value":"16.5", "Time":"2016-11-01 03:23:30" }, 
      "firmware": { "Value":"1.4", "Time":"2016-11-01 03:23:29" }, 
      "groupid": { "Value":"1", "Time":"2016-11-01 03:23:29" }, 
      "maxValveSetting": { "Value":"100", "Time":"2016-11-01 03:23:30" }, 
      "maximumTemperature": { "Value":"on", "Time":"2016-11-01 03:23:30" }, 
      "measurementOffset": { "Value":"0.0", "Time":"2016-11-01 03:23:30" }, 
      "minimumTemperature": { "Value":"off", "Time":"2016-11-01 03:23:30" }, 
      "mode": { "Value":"auto", "Time":"2016-11-01 09:39:22" }, 
      "state": { "Value":"18.0 °C", "Time":"2016-11-01 09:39:22" }, 
      "temperature": { "Value":"23.0", "Time":"2016-11-01 09:39:22" }, 
      "testresult": { "Value":"255", "Time":"2016-11-01 03:23:29" }, 
      "valveOffset": { "Value":"0", "Time":"2016-11-01 03:23:30" }, 
      "valveposition": { "Value":"0", "Time":"2016-11-01 09:39:22" }, 
      "weekprofile-0-Sat-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-0-Sat-time": { "Value":"00:00-06:05  /  06:05-22:00  /  22:00-00:00", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-1-Sun-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-1-Sun-time": { "Value":"00:00-06:05  /  06:05-22:00  /  22:00-00:00", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-2-Mon-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-2-Mon-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-17:05  /  17:05-23:00  /  23:00-00:00", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-3-Tue-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-3-Tue-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-17:05  /  17:05-23:00  /  23:00-00:00", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-4-Wed-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-4-Wed-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-17:05  /  17:05-23:00  /  23:00-00:00", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-5-Thu-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-5-Thu-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-17:05  /  17:05-23:00  /  23:00-00:00", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-6-Fri-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-11-01 03:23:30" }, 
      "weekprofile-6-Fri-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-17:05  /  17:05-23:00  /  23:00-00:00", "Time":"2016-11-01 03:23:30" }, 
      "windowOpenDuration": { "Value":"15", "Time":"2016-11-01 03:23:30" }, 
      "windowOpenTemperature": { "Value":"12.0", "Time":"2016-11-01 03:23:30" } 
    }, 
    "Attributes": { 
      "IODev": "ml", 
      "alias": "Große Heizung", 
      "icon": "hc_wht_regler", 
      "room": "Büro,MAX" 
    } 
  }  ], 
  "totalResultsReturned":1 
} 

Support multiple services

If I understand the current implementation correctly, it creates one accessory with one service and then adds all the characteristics it can autodetect based on the FHEM readings.

This works fine most of the time, but this could be improved to separate the characteristics into their correct corresponding services.

For example I'm bridging some LaCrosse thermometers (temperature + humidity). This plugin detects the temperature reading and creates a "Temperature Sensor" service with a "CurrentTemperature" and a battery characteristic. Later on it finds the humidity reading and instead of adding a second service ("Humidity Sensor"), it adds the "CurrentRelativeHumidity" to the temperature sensor service.

Apps like Eve can display this correctly, but for example the iOS 10 Home app will not take the relative humidity into consideration for statistics, display, etc. since it is not expecting a temperature sensor to have a humidity characteristic.

If I create a dummy device on FHEM to extract the humidity reading to a separate device, this plugin will correctly bridge it as a "Humidity Sensor" and the iOS 10 Home app will then show both a temperature and an humidity sensor.

Device status is not updating in Home App

Hey,
i have a couple of switches in FHEM and when I turn them on over the Home App, they turn on and off. that works fine but if I close the app and then open it again some of the devices show as being on... when they are off...
When I switch on or off over the FHEM GUI the status is not updating in the App either.
Any ideas?

Thanks in advanced.

Homebridge absturz - TypeError: value.match is not a function

Hallo,
ich habe heute mein System einmal komplett neu aufgesetzt. Debian 10 mit FHEM und Co. Homebridge läuft soweit, nur homebridge-fhem macht Probleme. Wenn ich Diese der Home App hinzufügen will, stürtzt diese immer ab mit folgendem Hinweis:

TypeError: value.match is not a function
at FHEM_reading2homekit_ (/usr/lib/node_modules/homebridge-fhem/index.js:396:21)
at FHEM_reading2homekit (/usr/lib/node_modules/homebridge-fhem/index.js:236:13)
at /usr/lib/node_modules/homebridge-fhem/index.js:133:19
at Array.forEach ()
at FHEM_update (/usr/lib/node_modules/homebridge-fhem/index.js:126:19)
at FHEMAccessory. (/usr/lib/node_modules/homebridge-fhem/index.js:2657:21)
at Request._callback (/usr/lib/node_modules/homebridge-fhem/index.js:1063:27)
at Request.self.callback (/usr/lib/node_modules/homebridge-fhem/node_modules/postman-request/request.js:268:12)
at Request.emit (events.js:310:20)
at Request. (/usr/lib/node_modules/homebridge-fhem/node_modules/postman-request/request.js:1489:10)
at Request.emit (events.js:310:20)
at Gunzip. (/usr/lib/node_modules/homebridge-fhem/node_modules/postman-request/request.js:1360:12)
at Object.onceWrapper (events.js:416:28)
at Gunzip.emit (events.js:322:22)
at endReadableNT (_stream_readable.js:1187:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)

Die Meldung(en) kommen bei den Xiaomi Kontaktsensoren...

Eine Idee wie ich das Problem beheben kann...?

Homematic blinds not working anymore

Hey, had your plugin run for month without complications.

Updated today to the newest version of [email protected] and [email protected] and since them my Homematic blinds are not detected as such. Homekit shows them as lamps. When I start homebridge manually it also says "is light".

[8/7/2018, 2:29:19 PM] [FHEM] RlldeBHhinten is light
[8/7/2018, 2:29:19 PM] [FHEM] RlldeBHhinten has
[8/7/2018, 2:29:19 PM] [FHEM]   PositionState [motor]
[8/7/2018, 2:29:19 PM] [FHEM]   FirmwareRevision [D-firmware]
[8/7/2018, 2:29:19 PM] [FHEM]   CurrentPosition [pct]
[8/7/2018, 2:29:19 PM] [FHEM]   TargetPosition [pct]
  2018-08-07 14:29:19 caching: RlldeBHhinten-motor: stop:95
[8/7/2018, 2:29:19 PM] [FHEM]     caching: PositionState: 2 (as number; means STOPPED; from 'stop:95')
  2018-08-07 14:29:19 caching: RlldeBHhinten-D-firmware: 2.8
[8/7/2018, 2:29:19 PM] [FHEM]     caching: FirmwareRevision: 2.8 (as string; from '2.8')
  2018-08-07 14:29:19 caching: RlldeBHhinten-pct: 95
[8/7/2018, 2:29:19 PM] [FHEM]     caching: CurrentPosition: 95 (as number; from '95')
[8/7/2018, 2:29:19 PM] [FHEM]     caching: TargetPosition: 95 (as number; from '95')

Tried to reboot, repair, manually map them with genericDeviceType and homebridgeMapping without luck.

FS20 dim command

Hi,

Thanks for this great bridge!

Here is a patch for the FS20 dim command:

1053c1053
<       return 'dim ' + dim_values[Math.round(orig/6.25)];

---
>       return dim_values[Math.round(orig/6.25)];

Define manufacturer, model and serial number

Hi there,

I would like to add manufacturer, model and serial number informations to my FHEM devices. I know the different characteristics values, but I'm not able to change them. I think that I'm doing it wrong, but I'm not sure how to correct them.

Characteristics:
Manufacturer: 00000020-0000-1000-8000-0026BB765291
Model: 00000021-0000-1000-8000-0026BB765291
Serial Number:00000030-0000-1000-8000-0026BB765291

Inside FHEM I configured Homebridgemappings as follows:
00000020-0000-1000-8000-0026BB765291=Manufacturer,name=manufacturer,format=STRING
00000021-0000-1000-8000-0026BB765291=Model,name=model,format=STRING
00000030-0000-1000-8000-0026BB765291=Serialnumber,name=serialnumber,format=STRING

Sadly it isn't working. Home App it still shows as unknown. Is this hardcoded inside this plugin?

Max! Thermostats : Incorrect mode shown in home app

Hey there,

I noticed a strange behavior for Max! Thermostats in home kit.

When I look at the readings in fhem all my thermostats are in mode "auto". But the home app always shows them as "off". When I change the mode in the home app, it shows the new mode until I kill and restart the app.

Is this behavior intended or is it a bug? Anyway it looks strange.

Versions:
homebridge: 0.4.6
homebridge-fhem: 0.2.47

Here's the jsonlist2 of one of my thermostats:

{ 
  "Arg":"MAX_0716a6", 
  "Results": [ 
  { 
    "Name":"MAX_0716a6", 
    "PossibleSets":"wakeUp factoryReset groupid associate:MAX_093d63,MAX_10d785,MAX_067ab2,MAX_035278,MAX_0746ff,MAX_071689,MAX_03975d deassociate:MAX_093d63,MAX_10d785,MAX_067ab2,MAX_035278,MAX_0746ff,MAX_071689,MAX_03975d desiredTemperature:eco,comfort,boost,auto,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on ecoTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on comfortTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on measurementOffset:-3.5,-3.0,-2.5,-2.0,-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5 maximumTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on minimumTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on windowOpenTemperature:off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,on windowOpenDuration boostDuration:20,10,30,60,5,0,15,25 boostValveposition decalcification maxValveSetting valveOffset weekProfile", 
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev do_not_notify:1,0 ignore:0,1 dummy:0,1 showtime:1,0 keepAuto:0,1 scanTemp:0,1 event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading alarmDevice:Actor,Sensor alarmSettings cmdIcon devStateIcon devStateStyle genericDeviceType:ignore,switch,outlet,light,blind,thermometer,thermostat,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr", 
    "Internals": { 
      "DEF": "HeatingThermostat 0716a6", 
      "LASTInputDev": "ml", 
      "MSGCNT": "735", 
      "NAME": "MAX_0716a6", 
      "NR": "33", 
      "STATE": "18.0 °C", 
      "TYPE": "MAX", 
      "addr": "0716a6", 
      "backend": "ml", 
      "dstsetting": "1", 
      "ml_MSGCNT": "735", 
      "ml_TIME": "2016-10-03 01:02:22", 
      "mode": "0", 
      "rferror": "0", 
      "serial": "KHA0003204", 
      "type": "HeatingThermostat" 
    }, 
    "Readings": { 
      "MAXLAN_error": { "Value":"0", "Time":"2016-10-03 01:02:22" }, 
      "MAXLAN_errorInCommand": { "Value":"", "Time":"2016-10-03 01:02:22" }, 
      "MAXLAN_initialized": { "Value":"1", "Time":"2016-10-03 01:02:22" }, 
      "MAXLAN_isAnswer": { "Value":"0", "Time":"2016-10-03 01:02:22" }, 
      "MAXLAN_valid": { "Value":"1", "Time":"2016-10-03 01:02:22" }, 
      "battery": { "Value":"ok", "Time":"2016-10-03 01:02:22" }, 
      "boostDuration": { "Value":"5", "Time":"2016-10-02 12:47:35" }, 
      "boostValveposition": { "Value":"80", "Time":"2016-10-02 12:47:35" }, 
      "comfortTemperature": { "Value":"21.5", "Time":"2016-10-02 12:47:35" }, 
      "decalcification": { "Value":"Sat 12:00", "Time":"2016-10-02 12:47:35" }, 
      "desiredTemperature": { "Value":"18.0", "Time":"2016-10-03 01:02:22" }, 
      "ecoTemperature": { "Value":"16.5", "Time":"2016-10-02 12:47:35" }, 
      "firmware": { "Value":"1.8", "Time":"2016-10-02 12:47:35" }, 
      "groupid": { "Value":"6", "Time":"2016-10-02 12:47:35" }, 
      "maxValveSetting": { "Value":"100", "Time":"2016-10-02 12:47:35" }, 
      "maximumTemperature": { "Value":"on", "Time":"2016-10-02 12:47:35" }, 
      "measurementOffset": { "Value":"0.0", "Time":"2016-10-02 12:47:35" }, 
      "minimumTemperature": { "Value":"off", "Time":"2016-10-02 12:47:35" }, 
      "mode": { "Value":"auto", "Time":"2016-10-03 01:02:22" }, 
      "state": { "Value":"18.0 °C", "Time":"2016-10-03 01:02:22" }, 
      "temperature": { "Value":"19.9", "Time":"2016-10-03 00:30:12" }, 
      "testresult": { "Value":"255", "Time":"2016-10-02 12:47:35" }, 
      "valveOffset": { "Value":"0", "Time":"2016-10-02 12:47:35" }, 
      "valveposition": { "Value":"13", "Time":"2016-10-03 01:02:22" }, 
      "weekprofile-0-Sat-temp": { "Value":"17.0 °C", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-0-Sat-time": { "Value":"00:00-00:00", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-1-Sun-temp": { "Value":"17.0 °C", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-1-Sun-time": { "Value":"00:00-00:00", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-2-Mon-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-2-Mon-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-00:00", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-3-Tue-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-3-Tue-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-00:00", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-4-Wed-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-4-Wed-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-00:00", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-5-Thu-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-5-Thu-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-00:00", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-6-Fri-temp": { "Value":"18.0 °C  /  21.0 °C  /  18.0 °C", "Time":"2016-10-02 12:47:35" }, 
      "weekprofile-6-Fri-time": { "Value":"00:00-06:05  /  06:05-09:00  /  09:00-00:00", "Time":"2016-10-02 12:47:35" }, 
      "windowOpenDuration": { "Value":"15", "Time":"2016-10-02 12:47:35" }, 
      "windowOpenTemperature": { "Value":"12.0", "Time":"2016-10-02 12:47:35" } 
    }, 
    "Attributes": { 
      "IODev": "ml", 
      "alias": "Heizung im Schlafzimmer", 
      "room": "Schlafzimmer,MAX" 
    } 
  }  ], 
  "totalResultsReturned":1 
} 

Error: Cannot find module 'commander'

Ticket was originally created here: marcoraddatz/homebridge-docker#35

Each time I start my homebridge environment an error appears:

Error: Cannot find module 'commander'

I am using docker and I have to restart the container and then the error disappears. Do you have an idea?

docker-compose.yml

    homebridge:
        container_name: homebridge
        expose:
            - "51826"
            - "5353"
        ports:
            - "51826:51826"
            - "5353:5353"
        image: marcoraddatz/homebridge:develop
        volumes:
            - ./homebridge/data/:/root/.homebridge
        network_mode: "host"

install.sh

#!/bin/bash

# This file gets executed as root, so you can use it to
# install or update any plugin dependencies.
# See https://github.com/marcoraddatz/homebridge-docker#installsh

npm install -g homebridge-fhem

config.json

{
  "bridge": {
    "name": "Homebridge FHEM",
    "username": "xx:xx:xx:xx:xx:3xx9",
    "port": 51826,
    "pin": "0xx-xx-xxx"
  },
  "platforms": [
    {
      "platform": "FHEM",
      "name": "FHEM",
      "server": "127.0.0.1",
      "port": "8083",
      "filter": "room=Homekit"
    }
  ],
  "accessories": []
}

Error

npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm http fetch GET 200 https://registry.npmjs.org/homebridge 261ms
npm http fetch GET 200 https://registry.npmjs.org/qrcode-terminal 17ms
npm http fetch GET 200 https://registry.npmjs.org/chalk 131ms
npm http fetch GET 200 https://registry.npmjs.org/commander 186ms
npm http fetch GET 200 https://registry.npmjs.org/semver 242ms
npm http fetch GET 200 https://registry.npmjs.org/hap-nodejs 298ms
npm http fetch GET 304 https://registry.npmjs.org/node-persist 415ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/ansi-styles 113ms
npm http fetch GET 304 https://registry.npmjs.org/escape-string-regexp 362ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/has-ansi 406ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/strip-ansi 450ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/supports-color 495ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/ansi-regex 110ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/graceful-readlink 126ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/debug 147ms
npm http fetch GET 200 https://registry.npmjs.org/ip 224ms
npm http fetch GET 200 https://registry.npmjs.org/decimal.js 359ms
npm http fetch GET 304 https://registry.npmjs.org/buffer-shims 371ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/curve25519-n2 375ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/mdns 551ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/ed25519 599ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/fast-srp-hap 643ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/nan 126ms
npm http fetch GET 304 https://registry.npmjs.org/bindings 172ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/ms 117ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/mkdirp 80ms
npm http fetch GET 304 https://registry.npmjs.org/q 215ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/minimist 77ms
npm http fetch GET 200 https://registry.npmjs.org/homebridge/-/homebridge-0.4.31.tgz 44ms
npm http fetch GET 200 https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz 57ms
npm http fetch GET 200 https://registry.npmjs.org/hap-nodejs/-/hap-nodejs-0.4.36.tgz 110ms
npm info lifecycle [email protected]~preuninstall: [email protected]
npm info lifecycle [email protected]~uninstall: [email protected]
npm info lifecycle [email protected]~postuninstall: [email protected]
npm info lifecycle [email protected]~preuninstall: [email protected]
npm info lifecycle [email protected]~uninstall: [email protected]
npm info lifecycle [email protected]~postuninstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
�
 ok 
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm http fetch GET 200 https://registry.npmjs.org/homebridge-fhem 137ms
npm http fetch GET 200 https://registry.npmjs.org/request 19ms
npm http fetch GET 200 https://registry.npmjs.org/aws-sign2 25ms
npm http fetch GET 200 https://registry.npmjs.org/is-typedarray 17ms
npm http fetch GET 200 https://registry.npmjs.org/aws4 72ms
npm http fetch GET 200 https://registry.npmjs.org/extend 71ms
npm http fetch GET 200 https://registry.npmjs.org/caseless 74ms
npm http fetch GET 200 https://registry.npmjs.org/forever-agent 74ms
npm http fetch GET 200 https://registry.npmjs.org/combined-stream 76ms
npm http fetch GET 200 https://registry.npmjs.org/http-signature 72ms
npm http fetch GET 200 https://registry.npmjs.org/form-data 76ms
npm http fetch GET 200 https://registry.npmjs.org/isstream 33ms
npm http fetch GET 200 https://registry.npmjs.org/har-validator 78ms
npm http fetch GET 200 https://registry.npmjs.org/hawk 81ms
npm http fetch GET 200 https://registry.npmjs.org/json-stringify-safe 48ms
npm http fetch GET 200 https://registry.npmjs.org/oauth-sign 43ms
npm http fetch GET 200 https://registry.npmjs.org/performance-now 45ms
npm http fetch GET 200 https://registry.npmjs.org/mime-types 49ms
npm http fetch GET 200 https://registry.npmjs.org/safe-buffer 45ms
npm http fetch GET 200 https://registry.npmjs.org/stringstream 45ms
npm http fetch GET 200 https://registry.npmjs.org/qs 50ms
npm http fetch GET 200 https://registry.npmjs.org/tough-cookie 53ms
npm http fetch GET 200 https://registry.npmjs.org/tunnel-agent 37ms
npm http fetch GET 200 https://registry.npmjs.org/uuid 27ms
npm http fetch GET 200 https://registry.npmjs.org/delayed-stream 20ms
npm http fetch GET 200 https://registry.npmjs.org/asynckit 17ms
npm http fetch GET 200 https://registry.npmjs.org/mime-db 18ms
npm http fetch GET 200 https://registry.npmjs.org/har-schema 18ms
npm http fetch GET 200 https://registry.npmjs.org/ajv 23ms
npm http fetch GET 200 https://registry.npmjs.org/fast-deep-equal 24ms
npm http fetch GET 200 https://registry.npmjs.org/fast-json-stable-stringify 23ms
npm http fetch GET 200 https://registry.npmjs.org/co 26ms
npm http fetch GET 200 https://registry.npmjs.org/json-schema-traverse 28ms
npm http fetch GET 200 https://registry.npmjs.org/sntp 22ms
npm http fetch GET 200 https://registry.npmjs.org/hoek 23ms
npm http fetch GET 200 https://registry.npmjs.org/boom 25ms
npm http fetch GET 200 https://registry.npmjs.org/cryptiles 25ms
npm http fetch GET 200 https://registry.npmjs.org/jsprim 20ms
npm http fetch GET 200 https://registry.npmjs.org/sshpk 20ms
npm http fetch GET 200 https://registry.npmjs.org/assert-plus 23ms
npm http fetch GET 200 https://registry.npmjs.org/verror 19ms
npm http fetch GET 200 https://registry.npmjs.org/extsprintf 20ms
npm http fetch GET 200 https://registry.npmjs.org/json-schema 25ms
npm http fetch GET 200 https://registry.npmjs.org/core-util-is 17ms
npm http fetch GET 200 https://registry.npmjs.org/tweetnacl 38ms
npm http fetch GET 200 https://registry.npmjs.org/asn1 40ms
npm http fetch GET 200 https://registry.npmjs.org/jsbn 45ms
npm http fetch GET 200 https://registry.npmjs.org/bcrypt-pbkdf 44ms
npm http fetch GET 200 https://registry.npmjs.org/dashdash 47ms
npm http fetch GET 200 https://registry.npmjs.org/getpass 47ms
npm http fetch GET 200 https://registry.npmjs.org/ecc-jsbn 47ms
npm http fetch GET 200 https://registry.npmjs.org/punycode 17ms
npm http fetch GET 200 https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz 214ms
npm http fetch GET 200 https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz 212ms
npm http fetch GET 200 https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz 228ms
npm http fetch GET 200 https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz 229ms
npm http fetch GET 200 https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz 228ms
npm http fetch GET 200 https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz 224ms
npm http fetch GET 200 https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz 223ms
npm http fetch GET 200 https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz 231ms
npm http fetch GET 200 https://registry.npmjs.org/co/-/co-4.6.0.tgz 229ms
npm http fetch GET 200 https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz 229ms
npm http fetch GET 200 https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz 230ms
npm http fetch GET 200 https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz 229ms
npm http fetch GET 200 https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz 227ms
npm http fetch GET 200 https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz 229ms
npm http fetch GET 200 https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz 228ms
npm http fetch GET 200 https://registry.npmjs.org/boom/-/boom-5.2.0.tgz 227ms
npm http fetch GET 200 https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz 226ms
npm http fetch GET 200 https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz 226ms
npm http fetch GET 200 https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz 226ms
npm http fetch GET 200 https://registry.npmjs.org/boom/-/boom-4.3.1.tgz 229ms
npm http fetch GET 200 https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz 226ms
npm http fetch GET 200 https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz 236ms
npm http fetch GET 200 https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz 240ms
npm http fetch GET 200 https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz 237ms
npm http fetch GET 200 https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz 250ms
npm http fetch GET 200 https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz 247ms
npm http fetch GET 200 https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz 247ms
npm http fetch GET 200 https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz 244ms
npm http fetch GET 200 https://registry.npmjs.org/extend/-/extend-3.0.1.tgz 249ms
npm http fetch GET 200 https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz 251ms
npm http fetch GET 200 https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz 252ms
npm http fetch GET 200 https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz 246ms
npm http fetch GET 200 https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz 251ms
npm http fetch GET 200 https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz 251ms
npm http fetch GET 200 https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz 257ms
npm http fetch GET 200 https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz 263ms
npm http fetch GET 200 https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz 261ms
npm http fetch GET 200 https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz 263ms
npm http fetch GET 200 https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz 271ms
npm http fetch GET 200 https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz 269ms
npm http fetch GET 200 https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz 272ms
npm http fetch GET 200 https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz 276ms
npm http fetch GET 200 https://registry.npmjs.org/qs/-/qs-6.5.1.tgz 278ms
npm http fetch GET 200 https://registry.npmjs.org/verror/-/verror-1.10.0.tgz 274ms
npm http fetch GET 200 https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz 274ms
npm http fetch GET 200 https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz 286ms
npm http fetch GET 200 https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz 284ms
npm http fetch GET 200 https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz 283ms
npm http fetch GET 200 https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz 290ms
npm http fetch GET 200 https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz 63ms
npm http fetch GET 200 https://registry.npmjs.org/homebridge-fhem/-/homebridge-fhem-0.3.7.tgz 65ms
npm http fetch GET 200 https://registry.npmjs.org/request/-/request-2.83.0.tgz 68ms
npm http fetch GET 200 https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz 342ms
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info lifecycle [email protected]~preinstall: [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info linkStuff [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~install: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
npm info lifecycle [email protected]~postinstall: [email protected]
�
 ok 
module.js:529
    throw err;
    ^

Error: Cannot find module 'commander'
    at Function.Module._resolveFilename (module.js:527:15)
    at Function.Module._load (module.js:476:23)
    at Module.require (module.js:568:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/lib/cli.js:1:77)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)

genericDeviceType "Security System" is shown as simple switch in home app

Hey there,

in issue #20 you said, that homebridge-fhem supports all service types that can be found in hap-nodejs/lib/gen/HomeKitTypes.js .
On line 2658 I found a service type called "Security system".

/**
 * Service "Security System"
 */

Service.SecuritySystem = function(displayName, subtype) {
  Service.call(this, displayName, '0000007E-0000-1000-8000-0026BB765291', subtype);

  // Required Characteristics
  this.addCharacteristic(Characteristic.SecuritySystemCurrentState);
  this.addCharacteristic(Characteristic.SecuritySystemTargetState);

  // Optional Characteristics
  this.addOptionalCharacteristic(Characteristic.StatusFault);
  this.addOptionalCharacteristic(Characteristic.StatusTampered);
  this.addOptionalCharacteristic(Characteristic.SecuritySystemAlarmType);
  this.addOptionalCharacteristic(Characteristic.Name);
};

inherits(Service.SecuritySystem, Service);

Service.SecuritySystem.UUID = '0000007E-0000-1000-8000-0026BB765291';

According to line 1491 this service can five five states (0 1 2 3 4).

// The value property of SecuritySystemCurrentState must be one of the following:
Characteristic.SecuritySystemCurrentState.STAY_ARM = 0;
Characteristic.SecuritySystemCurrentState.AWAY_ARM = 1;
Characteristic.SecuritySystemCurrentState.NIGHT_ARM = 2;
Characteristic.SecuritySystemCurrentState.DISARMED = 3;
Characteristic.SecuritySystemCurrentState.ALARM_TRIGGERED = 4;

So I created a dummy with the attribute genericDeviceType="Security System" and setList="0 1 2 3 4".

First question: Is it right that the states are the numbers? Or are the states the keys (e.g. STAR_ARM)?

Then I restarted homebridge. For some reason this device is then presented as a switch which can only be set on and off.

I then looked at the console output of homebridge and found this error:

ALRM_SYSTEM: service name Security System unknown

Second question: Is there a bug, or did I do something wrong?

This is the jsonlist2 of my dummy device:

{ 
  "Arg":"ALRM_SYSTEM", 
  "Results": [ 
  { 
    "Name":"ALRM_SYSTEM", 
    "PossibleSets":"0 1 2 3 4", 
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 readingList setList useSetExtensions event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading alarmDevice:Actor,Sensor alarmSettings cmdIcon devStateIcon devStateStyle genericDeviceType:ignore,switch,outlet,light,blind,thermometer,thermostat,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr", 
    "Internals": { 
      "CFGFN": "", 
      "NAME": "ALRM_SYSTEM", 
      "NR": "101", 
      "STATE": "0", 
      "TYPE": "dummy" 
    }, 
    "Readings": {      "state": { "Value":"0", "Time":"2016-10-04 10:07:16" }    }, 
    "Attributes": { 
      "genericDeviceType": "Security System", 
      "room": "Alarm", 
      "setList": "0 1 2 3 4" 
    } 
  }  ], 
  "totalResultsReturned":1 
} 

Add ZWave dimmers

Hi,

The following diff adds ZWave dimmers; I will try to add some ZWave sensors as well.

022c1022,1036
<   if( match = s.PossibleSets.match(/(^| )pct\b/) ) {

---
>   if( match = s.PossibleSets.match(/(^| )dim:slider,0,1,99/) ) {
>     // ZWave dimmer
>     this.service_name = 'light';
>     this.mappings.On = { reading: 'state', valueOff: '0', cmdOn: 'on', cmdOff: 'off' };
>     this.mappings.Brightness = { reading: 'state', cmd: 'dim', delay: true };
>
>     this.mappings.Brightness.reading2homekit = function(mapping, orig) {
>       var match;
>       if( match = orig.match(/dim (\d+)/ ) )
>         return parseInt( match[1] );
>
>       return 0;
>     }.bind(null, this.mappings.Brightness);
>
>   } else if( match = s.PossibleSets.match(/(^| )pct\b/) ) {

Sietse

Tagging npm releases

Hi Andre,
would be very helpful if you could tag the npm releases in git.

Thanks and best regards,
Veit

mapping for switches?

Hey there,

I got a Z-Wave dimmer, which I only want to use like a switch. (by the way, the dimmer isn't supported properly by homebridge-fhem).

the problem:
When the dimmer is switched off its state is "dim 0". When its switched on its state is "dim 99". I could not find any helpful hint how to properly map a switch.

I only found this:

attr <hub> genericDeviceType switch
attr <hub> homebridgeMapping clear
                               On=activity,subtype=TV,valueOn=TV,cmdOn=activity+TV,cmdOff=off
                               On=activity,subtype=DVD,valueOn=/DVD/,cmdOn=activity+DVD,cmdOff=off
                               On=activity,subtype=Off,valueOn=PowerOff,valueOff=PowerOff,cmd=off

But I have problems to interpret this and don't get how to adapt it.

Homebridge isn't recheable after install fhem plugin

hello,

like i said in the title, if I install this Plugin my Homebridge goes alltime unrecheable and i really dont know why. I tried all the tipps from the www but no chance. Maybe someone else have the same probs.

nocache has no effect

I have been trying to use the nocache flag to receive the correct state for a switch from FHEM. However it seems despite having defined the nocache flag, the value is always received from cache.

I have attached two logs for comparison, one with nocache and one without. The homebridgeMapping i have used is shown in the log. The correct state for the switch is received when i start homebridge and i can also control it without issue from the Homekit app.

Without nocache:

[2018-10-4 21:26:17] [FHEM] homebridgeMapping: On=socket3,valueOn=1,valueOff=0,cmdOn=on,cmdOff=off
[2018-10-4 21:26:17] [FHEM] NETIO_SHAKER is switch
[2018-10-4 21:26:17] [FHEM] NETIO_SHAKER has
[2018-10-4 21:26:17] [FHEM] On [socket3;on,off]
2018-10-04 21:26:17 caching: NETIO_SHAKER-socket3: 1
[2018-10-4 21:26:17] [FHEM] caching: On: true (as boolean; from '1')
...
[2018-10-4 21:26:22] [FHEM] query: On for NETIO_SHAKER-socket3
[2018-10-4 21:26:22] [FHEM] cached: true (as boolean)

With nocache:

[2018-10-4 21:24:18] [FHEM] homebridgeMapping:
On=socket3,valueOn=1,valueOff=0,cmdOn=on,cmdOff=off,nocache=1
[2018-10-4 21:24:18] [FHEM] NETIO_SHAKER is switch
[2018-10-4 21:24:18] [FHEM] NETIO_SHAKER has
[2018-10-4 21:24:18] [FHEM] On [socket3;on,off]
[2018-10-4 21:24:18] [FHEM] caching: On: true (as boolean; from '1')
...
[2018-10-4 21:24:52] [FHEM] query: On for NETIO_SHAKER-socket3
[2018-10-4 21:24:52] [FHEM] cached: true (as boolean)`

Obviously if i change the state of the switch directly in FHEM, the updated value is never considered by Homebridge, as it is always using the cached value.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.