homebridge-punt

Fhem-Gateway and Accessory-Simulator Plugin for Homebridge

Usage no npm install needed!

<script type="module">
  import homebridgePunt from 'https://cdn.skypack.dev/homebridge-punt';
</script>

README

homebridge-punt

Homebridge-punt is a Plugin for Homebridge. The Plugin incorporates a Fhem-Gateway and a Simulator.

New: JSON-editor - Runtime Configuration

Installation

If you're new to Homebridge, please first read the Homebridge documentation. You should have a look at the Wiki if you're running on a Raspberry.

Install homebridge:

sudo npm install -g homebridge

Install homebridge-punt:

sudo npm install -g homebridge-punt

Configuration

Add the punt-platform in config.json in your home directory inside .homebridge.

{
  "platform" : "punt",
  "name" : "punt"
}

Add config-punt.json into your directory .homebridge/plugins/homebridge-punt.

{
  "gateway": {
    "name": "fhem",
    "url": "127.0.0.1",
    "port": "8083",
    "auth": {"user": "foo", "password": "bar"},
    "run": true,
    "longpoll": true
  },
  
  "puntview": {
    "run": true,
    "port": "4040"
  },
  
  "simulator": {
    "run": true,
    "port": "4080"
  },
  
  "monitor": {
    "run": true,
    "port": "8081"
  },
  
  "accessories": [
    {
      "name": "alarm_control",
      "service": "Switch"
    },
    {
      "name": "flex_lamp",
      "service": "Outlet"
    },
    {
      "name": "garden_door",
      "service": "ContactSensor"
    },
    {
      "name": "local_weather",
      "service": "TemperatureSensor",
      "CurrentTemperature": { "minValue": -20, "maxValue": 60 }
    },
    {
      "name": "smoke_living",
      "service": "SmokeSensor",    
      "StatusLowBattery": "default"
    },
    {
      "name": "led_bulb",
      "service": "Lightbulb",
      "Brightness": "default",
      "Hue": "default",
      "Saturation": "default"
    },
    {
      "name": "bathroom_blind",
      "service": "WindowCovering",
      "CurrentPosition": { "minStep": 5 },
      "TargetPosition": { "minStep": 5 },
      "CurrentHorizontalTiltAngle": { "minValue": 0, "minStep": 5 },
      "TargetHorizontalTiltAngle": { "minValue": 0, "minStep": 5 }
    }
  ]
}

To add an optional Characteristic define the Characteristic with "default" for the default values. However, the default values can be changed:

{ "minValue": 0, "maxValue": 100, "minStep": 10 }

HomeKitTypes.js describes all the predifined Services and Characteristcs.

To define Multifunctions Sensors like Fibaro FGMS-001 with different services add a suffix to the accessory name separated by ".":

{
  "accessories": [
    {
      "name": "multi_living.temp",
      "service": "TemperatureSensor"
    },
    {
      "name": "multi_living.light",
      "service": "LightSensor",
      "CurrentAmbientLightLevel": { "minValue": 0, "minStep": 1 }
    },
    {
      "name": "multi_living.motion",
      "service": "MotionSensor"
    },
    {
      "name": "multi_living.battery",
      "service": "BatteryService"
    }
  ]
}

puntView

puntView is a WUI (web-based user interface) that displays the Accessory Services and Characteristics in real-time. puntView incorporates a JSON-editor, to open the editor select Setting in Menu. You can add, remove or modify accessories without having to restart homebridge. Tap Saveto save your changes, homebridge-punt will reload the new configuration.

Type the puntView-address in your browser:

http://127.0.0.1:4040

Change the port number in config-punt.json if neccessary.

Simulator

Simulator

Deactivate the gateway ("run": false) to run the simulator without connecting to the Fhem-Server. However, the simulator can run simultaneously with the gateway.

Type the Simulator-address in your browser:

http://127.0.0.1:4080

Monitor

The Monitor is still supported but puntView is recommended.

http://127.0.0.1:8081