Git Product home page Git Product logo

homebridge-knx's Introduction

homebridge-knx Version 0.4

NPM version DownloadsDependency status

KNX platform shim for homebridge. This cannot run stand-alone in node!

Please also visit homebridge github homepage first.

Latest to homebridge-knx changes can be found in the CHANGELOG.md

This can only be used with homebridge >=1.0 and Node >=10.19.0

Prerequisites

This node module requires either

  • a running (and properly configured) knx daemon (knxd). You can find the latest version here.
  • another KNX router which can be reached by KNX multicasts.

I cannot support the knxd. Please address issues directly at the knxd issue pages. It might help to search the existing issues, as your problem might have been solved already.

Installation and running

  • Install homebridge first, from https://homebridge.io/;
  • Once you have your instance running (without any devices yet), go to the Plugins tab and type knx in the search box
  • homebridge-knx should be within the top five hits (yes, there are alternatives), please check the name before installing
  • Then put the configuration file knx_config.json into ~/.homebridge (or another folder to your liking, but it should be reaadable and writable by user homebridge or group homebridge which is created by the homebridge installer), and adapt them to your needs (knxd address and some test devices in knx_config.json)
  • Eliminate everything (especially all group addresses) that might harm your KNX installation. Sending bus telegrams to your alarm device might wake the neighbourhood unpleasantly!
  • If you used the dfeault paths (~/.homebridge/knx_config.json) you can just restart homebridge using the GUI
  • If you didn't, or want to use child bridges for more accessories (than 149) you need to configure homebridge (using the GUI e.g.). The following sample is from my test installation
{
    "bridge": {
        "name": "Homebridge 17AF",
        "username": "0E:0B:9B:24:17:AD",
        "port": 51485,
        "pin": "880-83-869",
        "advertiser": "avahi"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "auth": "form",
            "theme": "auto",
            "tempUnits": "c",
            "lang": "en",
            "platform": "config"
        },
        {
            "name": "KNX",
            "platform": "KNX",
            "config_path": "/home/pi/homebridge/dg-knx_config.json"
        },
        {
            "name": "KNX",
            "platform": "KNX",
            "config_path": "/home/pi/homebridge/og-knx_config.json",
            "_bridge": {
                "username": "0E:0B:9B:24:17:00",
                "port": 51490
            }
        }
    ]
}

Assumptions

Without using a special handler (add-in) for the service, homebridge-knx assumes the following:

HomeKit type KNX addresses DPT
Boolean DPT1
Integer DPT5
Percentage DPT5.001
Float DPT9

knx_config.json

See the complete Doc!.

Add-ins

Add-in (aka "handlers") can change the default behavior. See the article

Happy testing!

homebridge-knx's People

Contributors

c-o-m-m-a-n-d-e-r avatar christof-fersch avatar ctr49 avatar ctschach avatar dependabot[bot] avatar eibhomecontrol avatar erikmeinders avatar eyeofthestorm avatar giase82 avatar gkuehn001 avatar gnippe avatar jendrik avatar luehrsen avatar martijndierckx avatar misc2000 avatar raoulvm avatar snowdd1 avatar wendelit avatar windnsalt 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  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  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-knx's Issues

homebridge-knx 0.2.6 doesn't work with homebridge 0.3.0

homebridge-knx 0.2.6 doesn't work with homebridge 0.3.0.

ERROR LOADING PLUGIN homebridge-knx:
Error: Plugin /usr/local/lib/node_modules/homebridge-knx requires a HomeBridge version of ^0.2.0 which does not satisfy the current HomeBridge version of 0.3.0. You may need to upgrade your installation of HomeBridge.

kind regards,
Marcus

Screenshot of 2.0 Web GUI (WIP)

As people asked me what the current status of the Web GUI is, here is a screenshot (mixed languages) of the service type selection screen.
It is not beautiful as I didn't start with CSS yet.

image

Scenes with dimmer giving issues

When I activate a scene when all lights are out homebridge-knx sends out the dimming value first and then the ON command.

The result is that the scene gets "greyed out" almost immediately after starting because the dimming value is not according to the scene since it loads the previous dimming value from when the lamp was turned off.

Version 0.3.0 Problem with cached accessories

hi,
when I modify the services of a device in the knx_config.json and for example remove a services this service will still show up even when you restart homebridge for ever. Also after x modifications.

As work around you need to delete this file
accessories/cachedAccessories
or / or files in persist folder
by hand during homebridge is stoped.

I think this should not be the case...

GIRA WIndowCovering

Hallo,

is anybody using the window covering with the gira actor

{
"name": "rolladen arbeitszimmer",
"services": [
{
"CurrentPosition": {
"Listen": "4/2/8R"
},
"Targetposition": {
"Set": "4/2/9R"
},
"name": "rolladen arbeitszimmer",
"type": "WindowCovering"
}
]
},

I get back the position but cannot move them up or down

with the gira app it works.

Short (Kurzzeitbetrieb) 4/2/7
Long (Langzeitbetrieb) 4/2/6
Pos 4/2/9
Feedback (Rückmeldung) 4/2/8

Thanks

Peter

Issuing read requests on the KNX bus

Hi all, I can't get homebridge to work.

I have a RPi, installed homebridge with homebridge-knx plugin and running knxd on it connected to a knx ip gateway (LogicMachine4) at 192.168.10.7 with the following opts:
KNXD_OPTS="-e 1.1.249 -b ip:192.168.10.7"

Homebridge starts, but I don't see it on iPhone. If i delete all knx staff from config.json, it become visible on iPhone and works well.

My log:

pi@raspberrypi:~ $ homebridge
*** WARNING *** The program 'node' 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=node>
*** WARNING *** The program 'node' 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=node&f=DNSServiceRegister>
[2016-06-29 21:27:50] Loaded plugin: homebridge-knx
[2016-06-29 21:27:51] Registering platform 'homebridge-knx.KNX'
[2016-06-29 21:27:51] ---
[2016-06-29 21:27:51] Loaded config.json with 0 accessories and 1 platforms.
[2016-06-29 21:27:51] ---
[2016-06-29 21:27:51] Loading 1 platforms...
[2016-06-29 21:27:51] [KNX] Initializing KNX platform...
[2016-06-29 21:27:51] [KNX] Fetching KNX devices.
[2016-06-29 21:27:51] [KNX] parsing acc 0 of 1
[2016-06-29 21:27:51] [KNX] push new device Light
[2016-06-29 21:27:51] [KNX] Accessory constructor called
[2016-06-29 21:27:51] [KNX] created Light accessory
[2016-06-29 21:27:51] [KNX] returning 1 accessories
[2016-06-29 21:27:51] [KNX] Initializing platform accessory 'Light'...
[2016-06-29 21:27:51] [KNX] Preparing Services: 1
[2016-06-29 21:27:51] [KNX] Preparing Service: 0 of type Lightbulb
[2016-06-29 21:27:51] [KNX] [Light]:Lightbulb on/off characteristic enabled
[2016-06-29 21:27:51] [KNX] knx registering BOOLEAN 0/3/2
[2016-06-29 21:27:51] [KNX] [Light]:[On]: Issuing read requests on the KNX bus...
[2016-06-29 21:27:51] [KNX] [knxdevice:knxread] preparing knx request for 0/3/2
[2016-06-29 21:27:51] [KNX] [Light]:Lightbulb Brightness characteristic enabled
[2016-06-29 21:27:51] [KNX] knx registering PERCENT 0/4/2
[2016-06-29 21:27:51] [KNX] [Light]:[Brightness]: Issuing read requests on the KNX bus...
[2016-06-29 21:27:51] [KNX] [knxdevice:knxread] preparing knx request for 0/4/2
>>> knxd groupsocketlisten starting <<<
[2016-06-29 21:27:52] Loading 0 accessories...
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

    ┌────────────┐     
    │ 123-45-678 │     
    └────────────┘     

[2016-06-29 21:27:52] Homebridge is running on port 51826.
Server running at: http://raspberrypi:3000
[2016-06-29 21:27:53] [KNX] [knxdevice:knxread] knx request sent for 0/3/2
[2016-06-29 21:27:53] [KNX] [knxdevice:knxread] knx request sent for 0/4/2

My config.json:

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "123-45-678"
    },

    "description": "This is an example configuration file for KNX platform shim",
    "hint": "Always paste into jsonlint.com validation page before starting your homebridge, saves a lot of frustration",
    "hint2": "Replace all group addresses by current addresses of your installation, these are arbitrary examples!",
    "hint3": "For valid services and their characteristics have a look at the KNX.md file in folder platforms!",
    "hint99": "Everything that is named description or hint is not used by homebridge but decriptive only, you may change or remove at will",
    "platforms": [{
        "platform": "KNX",
        "name": "KNX",
        "knxd_ip": "127.0.0.1",
        "knxd_port": 6720,
        "knxd_do_not_read_set_groups": true,
        "hint_knxd_do_not_read_set_groups": "true if homebridge must not send read requests to Set addresses",
        "accessories": [{
            "description": "Only generic type knxdevice is supported, all previous knx types have been merged into that.",
            "name": "Light",
            "services": [{
                "type": "Lightbulb",
                "description": "iOS8 Lightbulb type, supports On (Switch) and Brightness",
                "name": "Cabinet light",
                "On": {
                    "Set": "0/0/2",
                    "Listen": ["0/3/2"]
                },
                "Brightness": {
                    "Set": "0/2/2",
                    "Listen": ["0/4/2"]
                }
            }]
        }]

    }],

    "accessories": [

    ]
}

Status listeners not working above main GroupAddress 9

I am in the process of integrating a quite large KNX system in our home with Homekit using homebridge, and I am having issues with the status feedback.

It happens when you change the status of anything (light, temperature, lux) from the physical KNX system, and the Homekit has to follow the status.

After some testing, I narrowed it down that all GA's work inclusive of all GA's in 9/x/x work, but all groups presumeably 10/0/0 or higher will not provide any feedback. (Lowest I tested was 10/1/101).
I see the KNX data coming in in the busmonitor of homebridge, so I am sure the network relays the status message to homebridge. But it is not sent to HomeKit so it seems.

Issue with knxd conn_sep branch

Dear all,
I have identified a problem with the conn_sep branch of knxd. In this branch, one function does not work as expected, and as a result homebridge-knx cannot listen on the bus for changes.

For the time being, I recommend using the master branch of knxd.

Version 0.3.0 Handler onHKValueChange not executed

hi,
I have a problem with my implementation of the my Handler for HK SecuritySystem

I can see and trace the status in the HOME app of my iPhone if a change the state of the Device from the KNX side.
But if I change the State of the SecuritySystem from the HOME App this should result in a changed "SecuritySystemTargetState" {1...4} but the onHKValueChange Section of my Handler is never executed. Even not when I reduce it to a log line only :-(

ABBSecuritySystem.js:
...
onHKValueChange(field, oldValue, newValue) {
console.log('INFO: on HK Value Change (' + field + ", "+ oldValue + ", "+ newValue + ")");
if (field==="SecuritySystemTargetState") {
console.log('SecuritySystemTargetState (' + oldValue + ", "+ newValue + ")");
// The value property of SecuritySystemTargetState must be one of the following:
// Characteristic.SecuritySystemTargetState.STAY_ARM = 0;
// Characteristic.SecuritySystemTargetState.AWAY_ARM = 1;
// Characteristic.SecuritySystemTargetState.NIGHT_ARM = 2;
// Characteristic.SecuritySystemTargetState.DISARM = 3;
}
} // onHKValueChange
...

knx_config.json:
....
"Devices": [
{
"DeviceName": "Einbruchmeldezentrale alpha",
"Services": [
{
"ServiceType": "SecuritySystem",
"Handler": "ABBSecuritySystem",
"ServiceName": "Alarmanlage Alpha",
"Characteristics": [
{
"Type": "SecuritySystemCurrentState"
},
{
"Type": "SecuritySystemTargetState"
}
]
...

Data conversion on the fly

Is it possible to do a data conversion on the fly?

I have a knx garagedoor DPT1:
0 = closed
1 = open

But the default is DPT5:
0 = open
1 = closed
when i add a "R" after the address, the data is converted to 255,254.. But i want 1 or 0.

{
                    "accessory_type": "knxdevice",
                    "description": "sample garage door opener",
                    "name": "Garagedeur",
                    "services": [
                        {
                            "type": "GarageDoorOpener",
                            "name": "Garagedeur",
                            "CurrentDoorState": {
                                "Listen": ["10/1/4"]
                            },
                            "TargetDoorState": {
                                "Set": "10/1/3"
                            }
                        }
                    ]
                }

Switch turnon at startup homebridge

I have added a switch to turn a device on/off and get the current state, but when i startup homebridge my switch turns on and sends 1 on the knx bus to groupaddress 9/1/9, how to prevent values are send on startup?

{
                    "accessory_type": "knxdevice",
                    "description": "Only generic type knxdevice is supported, all previous knx types have been merged into that.",
                    "name": "Test",
                    "services": [
                        {
                            "type": "Switch",
                            "description": "iOS8 Lightbulb type, supports On (Switch) and Brightness",
                            "name": "Test",
                            "On": {
                                "Set": "9/1/9",
                                "Listen": ["9/2/9"]
                            }
                        }
                    ],
                    "services-description": "Services is an array, you CAN have multiple service types in one accessory, though it is not fully supported in many iOS HK apps, such as EVE and myTouchHome"
                },

Dooropener

Hello Raoul,

i have a door with an automatic lock. Currently i have it on a knx which uses a data type 1.017 (Auslöser). It just sends an 1 to the knx address and then opens the door. What would you use to achieve the same on home bridge.

Cheers

Peter

Reverse seems not working

Hi,

I recognised that the "reverse" keyword does not change the behaviour of my LockMechanism. The door shows open when closed and the other way around. I tried both of the following configurations. What am I doing wrong?

                    "ServiceType": "LockMechanism",
                    "ServiceName": "Tür Wohnzimmer",
                    "Characteristics": [
                        {
                            "Type": "LockCurrentState",
                            "Listen": [
                                "3/1/4"
                            ]
                        },
                        {
                            "Type": "LockTargetState",
                            "Listen": [
                                "3/1/4"
                            ]
                        }
                    ]
                },

and this

                {
                    "ServiceType": "LockMechanism",
                    "ServiceName": "Tür Wohnzimmer",
                    "Characteristics": [
                        {
                            "Type": "LockCurrentState",
                            "Listen": [
                                "3/1/4"
                            ],
                            "Reverse": true
                        },
                        {
                            "Type": "LockTargetState",
                            "Listen": [
                                "3/1/4"
                            ],
                            "Reverse": true
                        }
                    ]
                },

The Lock did not change its status.

Web interface for configuration

Instead of editing a JSON file directly, it would be nice if the user could do the configuration with a web based tool that has templates for the supported services and characteristics.

  • Avoids mispellings in key words
  • Avoids syntax errors in JSON

Open Door works, close not.

I added a door opener, with the dutch name Hek (gate).

When i say: Doe het hek open (open the gate), it works
When i say: Doe het hek dicht (close the gate), it doesn't work and siri says: can't find devices

I have the same device for my garage deur (door) and this works great.

Here my device:
{ "accessory_type": "knxdevice", "description": "sample garage door opener", "name": "Hek", "services": [ { "type": "GarageDoorOpener", "name": "Hek", "CurrentDoorState": { "Listen": ["5/0/3"] }, "TargetDoorState": { "Set": "5/0/2" } } ] }

No accessories responding - Restart service solves issue

Recently moved to my new home with a full KNX setup being 50 accessories in HomeKit.

All my switching or dimming components are MDT units. I have VMware workstation with Ubuntu and Homebridge installed on a laptop (home-server will be installed within a couple of weeks). Wireless network is based on 2 Meraki MR18's.

Recently I have noticed some problems with HomeKit:

"No accessories responding" and the Homebridge states "the accessory is not responding".

Homebridge service is running and no errors:

image

When I restart Homebridge everythings works fine (for a while). Haven't restarted my service yet, I want to leave it like this to enable troubleshooting.

I want to paste code here, how do I format that?

Multi-line code, or error traces, etc. that should be formatted as fixed-width text, are to be enclosed in three back-ticks:

```

  my code here
  ^ something happened.

```

If you want to get color coding for a specific code language, you can name it after the back ticks:

```json

{
    "object": {
        "number":5
    }
}

```

```javascript

if (number) {
    console.log('Hooray, number exists! ' + number);
}

```

```shell

$ DEBUG=* ./bin/homebridge -U /var/homebridge -D 

```

If in doubt, click on the little Styling with markdown is supported link at the bottom. You get more help from people that can read your code issue!

Thanks!

Strange Racecondition

Hello,

I get some strange race condition, I have two lightbulbs:

config
"services":[

           {
                 "type":"Lightbulb",
                 "name":"Küche",
                 "On":{
                    "Set":"0/0/3",
                    "Listen":[
                       "0/2/3"
                    ]
                 },
                 "Brightness":{
                    "Set":"0/7/1",
                    "Listen":[
                       "0/2/3"
                    ]
                 }
              },
              {
                 "type":"Lightbulb",
                 "name":"Wohnzimmer",
                 "On":{
                    "Set":"0/0/2",
                    "Listen":[
                       "0/2/2"
                    ]
                 },
                 "Brightness":{
                    "Set":"0/7/0",
                    "Listen":[
                       "0/2/2"
                    ]
                 }
              }

Both should behave the same way, but "Küche" doesn't work, if I set "Küche" to 15% for example, it just switches to 100%.

So i debugged the issue and found the error using Busmonitor in ETS:
bildschirmfoto 2016-08-18 um 9 16 36 pm

As you can see, set and on is in the wrong order, but why?

Thx,

Patrick

Raspberry image

This is not an issue... Is more an improvement to facilitate testing.
As far as I've been reading at the end many people end installing homebridge (plus plugins) on a raspberry and therefore we all have the same hardware.
Would it be possible to upload *.img files with knxd +homebridge+homebridge-knx?

Separate Persistence Layer from Homebridge

Currently all configuration is stored in the global config.json of homebridge.
This is getting a bit messy if other plugins besides homebridge-knx are installed an need configuration.

knxd

Hi, Raoul!
Please, tell me, which version of knxd server is more stable and better to use?
Thank YOU

Error trying to use add-in WindowCoveringTilt

I am new to all of this (homebridge, github...)
I have homebridge and knx working with all the lights in my house and I'm trying to make it work with the blinds that can go up and down and also tilt.

When using a WindowCoveringTilt like this in my knx_config.json:
"ServiceType": "WindowCovering",
"Handler": "WindowCoveringTilt",
"ServiceName": "kitchen",
"Characteristics": [
...

I get the following error:
Error: Cannot find module './addins/WindowCoveringTilt.js'

I installed homebridge-knx 0.3.2
On github I can see the file WindowCoveringTilt.js on the master branch and not on 0.3.2 tag. Is it normal?
What can I do to install WindowCoveringTilt?

Version 0.3.0 Error: Cannot find module 'debug'

hi,
I have now my first own handler for a SecuritySystem created.
After I fixed some missing } in my ABBSecuritySystem.js homebridge is parsing it without any more errors

But then I got this error trace below:

I used the line
var log = require('debug')('ABBSecuritySystem');
like in your example.
could it be that the debug module is missing in the branch?
BR
misc2000

[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] homebridge event didFinishLaunching
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Configuration starts
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] We think homebridge has restored 1 accessories.
[2016-10-15 15:08:56] [homebridge-knx.KNX] Reading from config: Device/Accessory 1 of 2
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Match device [Einbruchmeldezentrale alpha]
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] --compare----------------
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Comparing 8fde8cf2-c8cb-456a-a6e6-b734e8924dfe === undefined ==>false
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] -----none----------return-undefined--
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] New accessory found: Einbruchmeldezentrale alpha
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Created new platformAccessory instance: Einbruchmeldezentrale alpha
[2016-10-15 15:08:56] [homebridge-knx.KNX] Preparing Services: 1
[2016-10-15 15:08:56] [homebridge-knx.KNX] Preparing Service: #0 with name [Alarmanlage] of ServiceType [SecuritySystem]
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Service constructor called
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] ServiceType defined
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] ServiceType known as function
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] ServiceType has characteristics
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Creating new subtype ID
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Did not find restored service for: Alarmanlage
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] Created service: Alarmanlage
[2016-10-15 15:08:56] [homebridge-knx.KNX] info [INFO] customServiceAPI.constructor(service, ABBSecuritySystem)
module.js:339
throw err;
^

Error: Cannot find module 'debug'
at Function.Module._resolveFilename (module.js:337:15)
at Function.Module._load (module.js:287:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object. (/usr/local/lib/node_modules/homebridge-knx/lib/addins/ABBSecuritySystem.js:10:11)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at new require (module.js:385:17)

Use of const in strict mode.

If you are getting this
SyntaxError: /app/available_modules/node-0.12/hapi/1447522751205-11.1.1/hapi/lib/index.js:5 const Server = require('./server'); ^^^^^ Use of const in strict mode.
you are using a node version to which the sub module 'hapi' is incompatible. Please use the latest stable version. As of writing this, it's about 4.2.2.

How to add an Outlet

I like to add a switching outlet for my Fountain, So i can set my fountain on/off and get the current state of the fountain.

But then i receive: [KNX] [ERROR] unknown 'type' property of [Outlet] for service [Test] in config.json.

{
                    "accessory_type": "knxdevice",
                    "description": "Only generic type knxdevice is supported, all previous knx types have been merged into that.",
                    "name": "Test",
                    "services": [
                        {
                            "type": "Outlet",
                            "description": "iOS8 Lightbulb type, supports On (Switch) and Brightness",
                            "name": "Test",
                            "On": {
                                "Set": "9/1/9"
                            },
                            "OutletInUse": {
                                "Listen": ["9/2/9"]
                            }
                        }
                    ],
                    "services-description": "Services is an array, you CAN have multiple service types in one accessory, though it is not fully supported in many iOS HK apps, such as EVE and myTouchHome"
                },

Can't add Homebridge

I had a working homebridge yesterday. (latest release for homebridge and homebridge-knx).

After shutdown my pi this night, my homebridge isn't found after reboot this morning.

So i shutdown the homebridge service
deleted the persist and cachedAccessories data
Start the homebridge again

The Accessory 'Homebridge" shows up ok, when i click it i get the warning message "This accessory is not certified and may not work reliably with HomeKit" selected add anyway ... and manually entered the 8 digit code which eventually results in the message "Couldn't add Homebridge / Home couldn't connect to this accessory"

Whats wrong? i get no errors in my log and the service is up.

0 accessories

If I try to run homebridge I get 0 accessories found:

`pi@raspberrypi:~/.homebridge $ homebridge
*** WARNING *** The program 'node' 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=node
*** WARNING *** The program 'node' 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=node&f=DNSServiceRegister
[3/13/2016, 3:12:39 PM] Loaded plugin: homebridge-knx
[3/13/2016, 3:12:39 PM] Registering platform 'homebridge-knx.KNX'
[3/13/2016, 3:12:39 PM] ---
[3/13/2016, 3:12:39 PM] Loaded config.json with 0 accessories and 1 platforms.
[3/13/2016, 3:12:39 PM] ---
[3/13/2016, 3:12:39 PM] Loading 1 platforms...
[3/13/2016, 3:12:39 PM] [KNX] Initializing KNX platform...
[3/13/2016, 3:12:39 PM] [KNX] Fetching KNX devices.
[3/13/2016, 3:12:39 PM] [KNX] returning 0 accessories
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

┌────────────┐     
│ 031-45-154 │     
└────────────┘     

[3/13/2016, 3:12:39 PM] Homebridge is running on port 51826.`

And I'm running knxd this way:
pi@raspberrypi:~ $ sudo knxd --eibaddr=0.0.100:6720 --error=1 --listen-local=/var/run/knxd --pid-file=/var/run/knxd.pid --layer2=usb:1:4 W00000020: EIBD should not run as root

I'm also providing the config.json:
`{

"bridge": { 

    "name": "Homebridge", 

    "username": "CA:22:3E:E3:CE:30", 

    "port": 51826, 

    "pin": "031-45-154"

 }, 

"platforms": [ 

    { 

        "platform": "KNX", 

        "name": "KNX", 

        "knxd_ip": “0.0.100”, 

        "knxd_port": 6720, 

        "knxd_do_not_read_set_groups": true, 

        "hint_knxd_do_not_read_set_groups": "true if homebridge must not send read requests to Set addresses", 

        "accessories": [ 



            { 

                "description": "sample device with multiple services. Multiple services of different types are widely supported", 

                "name": "Office", 

                "services": [ 

                    { 

                        "type": "Lightbulb", 

                        "name": "Office Lamp", 

                        "On": { 

                            "Set": "1/3/5"

                         }

                     }



         ]

     }

 ], 




"accessories": [ 



 ]

}

]

}`

I don't know what I'm doing wrong, I have a "TheBen" USB to KNX interface.

Thanks for the help.

Error connecting knxd

I received an error when i start homebridge.

I have a running local knxd connected to a knx gateway at 192.168.2.6 with the following opts:
KNXD_OPTS="-u -b ipt:192.168.2.6"

My log:

pi@homekit ~ $ homebridge
Homebridge is running on port 51826.
events.js:141
throw er; // Unhandled 'error' event
^

Error: listen EADDRINUSE :::51826

Telegrams lost

I'm seeing some strange behavior on homebridge-knx plugin which might not be related to the plugin itself, but knxd. Nevertheless, let me try to pin it down.

I have a typical setup with a Pi 3 running homebridge, homebridge-knx and knxd. Knxd is in router mode directed towards a KNX gateway, which translates to the physical bus.

What I'm seeing is perfect operation, but just on one telegram commands, i.e. if I press the light/blind button, it works flawlessly. Same goes for single Siri commands like 'Turn on ceiling light in the living room'.

Any multi telegram command (like a scene defined in HomeKit/Home app in iOS 10) or a Siri command like 'Turn of living room lights' results in telegram loss. Roughly half telegrams arrive to the bus, sporadically. If I repeat the same command, there might be different commands which will make it to the bus.

I can monitor the bus on the Pi and/or ETS. They check out. Both monitors show the same thing. I also monitor commands coming from the homebridge-knx plugin. Homebridge/homebridge-knx sends the appropriate stuff, but they just do not appear on the bus.

Is there a way to delay multiple burst commands in homebridge-knx and/or is it a knxd issue? Anyone having a similar issue?

RGB Device

Hi, i have one question about rgb light device
Please, tell me, how i can control rgb device? is it possible?
Thank you

Zuordnung ETS zu HomeKit

Ich versuche gerade mal eine Zuordnung aus der Konfiguration HomeKit zu den Elementen aus meiner ETS zu machen:

ETS/KNX Geraet Wert Homekit Spec Typ
Schaltaktor Rollladen Langzeitbetrieb WindowCovering
Kurzzeitbetrieb
Rückmeldung Rolladenposition Target Listen
Rückmeldung Antriebsbewegung
Position Rolladen/Markise Target Set
Schaltaktor Steckdose Schalten Outlet / Switch ??? On Set
Rückmeldung Schalten
Dimmaktor Lampe Schalten Lightbulb On Set
Dimmen Brightness Set
Helligkeitswert
Rückmeldung Schalten On Listen
Rückmeldung Helligkeitswert Brightness Listen
Ist-Temperatur TemperatureSensor CurrentTemperature Listen
Soll-Temperatur

Das ganze erstmal auf Deutsch, da meine ETS auf Deutsch ist, aber ich kann auch versuchen daraus eine englische Fassung zu machen, falls das interessant ist und das dann ins WIKI einzutragen.

Peter

garagedoor stucks on opening or closing when CurrentDoorState received from knx

First: great work for the new homebridge-knx version.

U use the ios10 home app.

When opening or closing a garagedoor my TargetDoorState and CurrentDoorState works perfect.

But when i open of close my garagedoor by KNX, the groupaddress for CurrentDoorState is updated, but my home app displayed: opening or closing. But i only use 0 or 1:
Characteristic.CurrentDoorState.OPEN = 0;
Characteristic.CurrentDoorState.CLOSED = 1;

"ServiceType": "GarageDoorOpener",
                    "ServiceName": "Garagedeur",
                    "Characteristics": [
                        {
                            "Type": "TargetDoorState",
                            "Set": [
                                "10/2/1"
                            ]
                        },
                        {
                            "Type": "CurrentDoorState",
                            "Listen": [
                                "10/2/2"
                            ]
                        }
                    ],
                    "KNXReadRequests": [
                        "10/2/2"
                    ],

Alpha0.3: GarageDoorOpener and/or timer or wait function?

hi,
I am on the way to implement a own handler for my 2 garage door openers.
Unfortunately I did only install one "Reed" sensor on the doors that detect if the door is closed from the hardware side.I can use this to detect the start of the movement and set "Characteristic.CurrentDoorState.OPENING = 2"
But to implement it "the Apple way" you also need on signal when the door is complete open.
My door need 18 seconds to open. And I need to send a "Characteristic.CurrentDoorState.OPEN = 0"
after that 18 seconds.

My idea was to simulate this signal by software inside my own Homebridge-KNX garage door Handler.
Just start a 18 second timer when the door starts to open (value change on the existing HW sensor)
And if the timer is over, and no interrupt/stop command was detected during the timer run, send the "open" value to the HK device.
Because I am not a Java Script expert at all my question is how could I implement this?

I think a easy
yield WaitForSeconds (18);
would not work because it will block everything in the handler for 18s.

My idea was more like:
function function1() {
// stuff you want to happen right away
console.log('All stuff needed when door start to open');
}

function function2() {
// all the stuff you want to happen after that pause
console.log('All stuff needed when door is complete open');
}

// call the first chunk of code right away
function1();
// call the rest of the code and have it execute after 18 seconds
setTimeout(function2, 18000);

Do this approach work in java script and also in your handler framework?
And if yes can someone give me a hint how to implement it (where to declare the functions)?
And how to interrupt the time if needed?
Thanks

Knx Listen stops working after some time

I have a working Homebridge to KNX connection, set and listen knx commands works.

But after some time (+- 1 minute) the listen commands stops working and no received commands are handled.

If i restart homebridge it works again for some time.

"platforms": [
        {
            "platform": "KNX",
            "name": "KNX",
            "knxd_ip": "127.0.0.1",
            "knxd_port": 6720,
            "accessories": [
                {
                    "accessory_type": "knxdevice",
                    "description": "Only generic type knxdevice is supported, all previous knx types have been merged into that.",
                    "name": "Tafel lamp",
                    "services": [
                        {
                            "type": "Lightbulb",
                            "description": "iOS8 Lightbulb type, supports On (Switch) and Brightness",
                            "name": "Tafel lamp",
                            "On": {
                                "Set": "2/1/2",
                                "Listen": [
                                    "2/4/2"
                                ]
                            },
                            "Brightness": {
                                "Set": "2/3/2",
                                "Listen": [
                                    "2/5/2"
                                ]
                            }
                        }
                    ],
                    "services-description": "Services is an array, you CAN have multiple service types in one accessory, though it is not fully supported in many iOS HK apps, such as EVE and myTouchHome"
                }
            ]
        }
    ],

Version 0.2.0 does not like home bridge 0.4.1

I just tried the new version of home bridge and hap and home bridge-knx throws an error

Error: Plugin /usr/local/lib/node_modules/homebridge-knx requires a HomeBridge version of ^0.3.0 >which does not satisfy the current HomeBridge version of 0.4.1. You may need to upgrade your >installation of HomeBridge.

kind regards

Peter

Bug in beta5: Cannot use more than 1 Set GAs per characteristic

Just found out by accident that using more then one Set addresses results in an exception if triggered, as each GA is tried to set and then a "completed" callback to homebridge is called, which fails if called more than once.

Have to debug.

Until then, please use one Set per characteristic only

Brightness is set when switching on a lightbulb

Hi!

I'm running homebridge-knx on a Raspberry Pi 3 and I configured a "Lightbulb" with an On and a Brightness parameter.

The accessory configuration:

 {
    "type": "Lightbulb",
    "description": "iOS8 Lightbulb type, supports On (Switch) and Brightness",
    "name": "Wo DL rechts",
    "On": {
      "Set": "6/0/13",
      "Listen": ["6/0/13"]
     },
     "Brightness": {
         "Set": "6/0/15",
         "Listen": ["6/0/15"]
     }
 }

I connect to homebridge with an iPhone 6s via HomeKit. I can now switch on and off the light and I can set the brightness. BUT:
When I switch on the light, the value is set to 100%. This is not really what I want, because my dimming device (the actual hardware) is configured to set the value to the value when I switched it off the last time. This is now overwritten by the HomeKit/Homebridge-knx combo.

When I start homebridge in Debug mode I can see this when I switch on the light:

[10/19/2016, 4:12:58 PM] [KNX] knx data sent: Value 1 for GA 6/0/13
[10/19/2016, 4:12:58 PM] [KNX] knx data sent: Value 255 for GA 6/0/15

So here we see the problem. Immediately after switching ON the the device with "1" the Brightness is set to 255 (100%).

On the other hand, when I switch off the light, this is log output.

[10/19/2016, 4:15:11 PM] [KNX] knx data sent: Value 0 for GA 6/0/13

Fine. It is simply switched off (without setting the Brightness value to 0%). This is what I want.

It would be great that when I switch on the light, it is just switched on without setting the Brightness.

I don't exactly know where the problem comes from. If it is the iPhone that sends the command, or the HAP-Server (which is used by the homebridge module), or if it is the homebridge module itself or if its done by the homebridge-knx module.

Is this possible if I change the configuration?

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.