homebridge-logo-platform
v1.4.5
Published
This is a Siemens LOGO! Platform Plugin.
Downloads
610
Maintainers
Readme
Homebridge Logo Platform
Use a Siemens LOGO! PLC for switch on whatever you want.
Communicate with LOGO! over Snap7 or Modbus.
Type of Accessory:
Type of Sensor Accessory:
- Light Sensor
- Motion Sensor
- Contact Sensor
- Smoke Sensor
- Temperature Sensor
- Humidity Sensor
- Carbon Dioxide Sensor
- Air Quality Sensor
- Leak Sensor
Special Functions:
Examples:
Installation
- Install homebridge using instruction from: Homebridge WiKi
- Install this plugin in your homebridge
- Update your configuration file with code like the sample below
Thanks to
- Tellicious for:
- Adding logging to the Eve app.
- Integrated valve as sub-accessory of IrrigationSystem.
- His Bugfix to avoid memory leak.
Special thanks to
- Davide Nardella for Snap7
- Fabio Riva for Napi-Snap7. And for allowing me to improve his plugin.
- Mathias Küsel for Node-Snap7 (was used until v1.3.8)
Known issues
- The plugin cannot be configured with the Config UI. (The settings are too complex.)
Platform Main Configuration Parameters
Name | Value | Required | Notes
----------------- | ------------------------- | ------------- | ------------------------
platform
| "LogoPlatform" | yes | Must be set to "LogoPlatform".
name
| (custom) | yes | Name of platform that will not appear in homekit app.
interface
| "modbus" or "snap7" | no | Interface for communication, default is: "modbus".
ip
| "10.0.0.100" | yes | Must be set to the IP of your LOGO!.
port
| 502 | no (ModBus) | Must be set to the Modbus Port of your LOGO!, default is: 502.
logoType
| "0BA7" or ... | no (Snap7) | Must be set to the Type of your LOGO, default is: "0BA7".
localTSAP
| "0x1200" | no (Snap7) | Must be set to the local TSAP of your LOGO!, default is: "0x1200".
remoteTSAP
| "0x2200" | no (Snap7) | Must be set to the remote TSAP of your LOGO!, default is: "0x2200".
queueInterval
| 100 ... 1000 | no | Interval to send queries from Plugin to LOGO!, in milliseconds, default is: 100.
queueSize
| 100 ... 1000 | no | Number of items to be hold in send/receive queue, default is: 100.
updateInterval
| 0 ... ∞ | no | Auto Update Interval in milliseconds, 0 = Off
debugMsgLog
| 0 or 1 | no | Displays messages of all accessories in the log, default is: 0.
retryCount
| 0 ... ∞ | no | Retry count for sending the queries messages, default is: 5.
pushButton
| 0 or 1 | no | If e.g. the network input in the LOGO! a hardware button on the LOGO! simulated, default is: 0. (For all Accessories.)
loggerType
| "influxDB" or "fakegato" | no | Activates Logging, default is: "none".loggerInterval
| 300000 | no | Logging Interval in milliseconds, default is: 300000 (5min)
influxDBUrl
| "http://10.0.0.99:8086" | no (InfluxDB) | IP-Address and Port for InfluxDBinfluxDBToken
| "API Token" | no (InfluxDB) | InfluxDB API tokeninfluxDBOrg
| "Org" | no (InfluxDB) | InfluxDB organization IDinfluxDBBucket
| "Bucket" | no (InfluxDB) | InfluxDB bucket name
Device Main Configuration Parameters
Name | Value | Required | Notes
------------------------ | ------------------- | -------- | ------------------------
name
| (custom) | yes | Name of accessory that will appear in homekit app.
type
| "switch" or ... | yes | Type of Accessory: "switch", "lightbulb", "blind", "window", "garagedoor", "thermostat", "irrigationSystem", "valve", "fan", "filterMaintenance", "outlet", "other" or Type of Sensor Accessory: "lightSensor", "motionSensor", "contactSensor", "smokeSensor", "temperatureSensor", "humiditySensor", "carbonDioxideSensor", "airQualitySensor"
debugMsgLog
| 0 or 1 | no | Displays messages of this accessory in the log, default is: 0.
pushButton
| 0 or 1 | no | If e.g. the network input in the LOGO! a hardware button on the LOGO! simulated, default is: 0. (Only for this Accessory.)
logging
| 0 or 1 | no | Activates Logging, default is: 0. (Only for this Accessory.)
parentAccessory
| (custom) | no | Parent accessory name, needed to create this accessory as a sub-accessory of an other accessory. Not for Valve, IrrigationSystem and Other
"platforms": [
{
"platform": "LogoPlatform",
"name": "Logo 1",
"ip": "10.0.0.100",
"port": 505,
"updateInterval": 10000,
"debugMsgLog": 1,
"pushButton": 1,
"devices": [
{
"name": "Accessory Name 1",
"type": "...",
...
},
{
"name": "Accessory Name 2",
"type": "...",
...
}
]
},
{
"platform": "LogoPlatform",
"name": "Logo 2",
"interface": "snap7",
"ip": "10.0.0.200",
"logoType": "0BA8",
"localTSAP": "0x4200",
"remoteTSAP": "0x4300",
"updateInterval": 10000,
"debugMsgLog": 1,
"pushButton": 1,
"devices": [
{
"name": "Accessory Name 3",
"type": "...",
...
},
{
"name": "Accessory Name 4",
"type": "...",
...
}
]
}
]
Switch Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
switchGet
| "Q1" | yes* | "switch" | Switch Get - Qn, Mn or Vn.n
switchSetOn
| "V1.0" | yes* | "switch" | Switch Set On - Mn or Vn.n
switchSetOff
| "V1.1" | yes* | "switch" | Switch Set Off - Mn or Vn.n
{
"name": "Q1",
"type": "switch",
"switchGet": "Q1",
"switchSetOn": "V1.0",
"switchSetOff": "V1.1"
}
Lightbulb Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
lightbulbGet
| "Q4" | yes* | "lightbulb" | lightbulb Get - Qn, Mn or Vn.n
lightbulbSetOn
| "V7.0" | yes* | "lightbulb" | Lightbulb Set On - Mn or Vn.n
lightbulbSetOff
| "V7.1" | yes* | "lightbulb" | Lightbulb Set Off - Mn or Vn.n
lightbulbSetBrightness
| "VW70" | no* | "lightbulb" | Lightbulb Set Brightness - AMn or VWn
lightbulbGetBrightness
| "VW72" | no* | "lightbulb" | Lightbulb Get Brightness - AMn or VWn
{
"name": "Q1",
"type": "lightbulb",
"lightbulbGet": "Q1",
"lightbulbSetOn": "V1.0",
"lightbulbSetOff": "V1.1"
},
{
"name": "Q4",
"type": "lightbulb",
"lightbulbGet": "Q4",
"lightbulbSetOn": "V7.0",
"lightbulbSetOff": "V7.1",
"lightbulbSetBrightness": "VW70",
"lightbulbGetBrightness": "VW72"
}
Blind Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
blindSetTargetPos
| "VW26" | yes* | "blind" | Blind Set Target Pos - AMn or VWn
blindGetTargetPos
| "VW28" | yes* | "blind" | Blind Get Target Pos - AMn or VWn
blindGetPos
| "VW28" | yes* | "blind" | Blind Get Pos - AMn or VWn
blindGetState
| "VW30" | yes* | "blind" | Blind Get State - AMn or VWn
blindConvertValue
| 0 or 1 | no* | "blind" | Convert LOGO! values in to HomeKit values.
{
"name": "Item-6",
"type": "blind",
"blindConvertValue": 1,
"blindSetTargetPos": "VW26",
"blindGetTargetPos": "VW28",
"blindGetPos": "VW28",
"blindGetState": "VW30"
}
Window Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
windowSetTargetPos
| "VW32" | yes* | "window" | Window Set Target Pos - AMn or VWn
windowGetTargetPos
| "VW34" | yes* | "window" | Window Get Target Pos - AMn or VWn
windowGetPos
| "VW34" | yes* | "window" | Window Get Pos - AMn or VWn
windowSetState
| "VW36" | yes* | "window" | Window Get State - AMn or VWn
windowConvertValue
| 0 or 1 | no* | "window" | Convert LOGO! values in to HomeKit values.
{
"name": "Item-7",
"type": "window",
"windowConvertValue": 1,
"windowSetTargetPos": "VW32",
"windowGetTargetPos": "VW34",
"windowGetPos": "VW34",
"windowGetState": "VW36"
}
Garage Door Configuration
Name | Value | Required | Option for | Notes
-------------------------- | ------------------- | -------- | ------------ | ------------------------garagedoorGetState
| "VW40" or "M9" | yes* | "garagedoor" | Garagedoor Get State - Analog AMn or VWn (0 = Open; 1 = Closed; 2 = Opening; 3 = Closing; 4 = Stopped) Digital Mn or Vn.n (0 = Closed; 1 = Open)garagedoorGetTargetState
| "VW40" or "M9" | yes* | "garagedoor" | Garagedoor Get Target State - Analog AMn or VWn (0 = Open; 1 = Closed) Digital Mn or Vn.n (0 = Closed; 1 = Open)garagedoorSetTargetState
| "VW38" | yes* | "garagedoor" | Garagedoor Set Target State - AMn or VWn (0 = Open; 1 = Closed)garagedoorObstruction
| "V3.0" | no* | "garagedoor" | Garagedoor Obstruction Detected - Mn, Vn.n
{
"name": "Item-8",
"type": "garagedoor",
"garagedoorGetState": "VW40",
"garagedoorGetTargetState": "VW40",
"garagedoorSetTargetState": "VW38",
"garagedoorObstruction": "V3.0"
}
Thermostat Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------ | -------- | ---------- | ------------------------
thermostatGetHCState
| "VW42" | yes* | "thermostat" | Thermostat Get Heating Cooling State - AMn or VWn
thermostatGetTargetHCState
| "VW44" | yes* | "thermostat" | Thermostat Get Target Heating Cooling State - AMn or VWn
thermostatSetTargetHCState
| "VW46" | yes* | "thermostat" | Thermostat Set Target Heating Cooling State - AMn or VWn
thermostatGetTemp
| "VW48" | yes* | "thermostat" | Thermostat Get Temperature - AMn or VWn - Current Temperature in °C (-270°C - 100°C!!)
thermostatGetTargetTemp
| "VW50" | yes* | "thermostat" | Thermostat Get Target Temperature - AMn or VWn - Current Temperature in °C (10°C - 38°C!!)
thermostatSetTargetTemp
| "VW52" | yes* | "thermostat" | Thermostat Set Target Temperature - AMn or VWn
thermostatTempDisplayUnits
| 0 or 1 | yes* | "thermostat" | Temperature Display Units - Celsius = 0; Fahrenheit = 1;
thermostatConvertValue
| 0 or 1 | no* | "thermostat" | Convert Int in Float, default is: 0. (235 / 10 == 23.5°C)
{
"name": "Item-9",
"type": "thermostat",
"thermostatGetHCState": "VW42",
"thermostatGetTargetHCState": "VW44",
"thermostatSetTargetHCState": "VW46",
"thermostatGetTemp": "VW48",
"thermostatGetTargetTemp": "VW50",
"thermostatSetTargetTemp": "VW52",
"thermostatTempDisplayUnits": 0,
"thermostatConvertValue": 1
}
Irrigation System Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
irrigationSystemGetActive
| "V4.0" | yes* | "irrigationSystem" | Irrigation System Get Active - Mn or Vn.n
irrigationSystemSetActiveOn
| "V4.1" | yes* | "irrigationSystem" | Irrigation System Set Active to On - Mn or Vn.n
irrigationSystemSetActiveOff
| "V4.2" | yes* | "irrigationSystem" | Irrigation System Set Active to Off - Mn or Vn.n
irrigationSystemGetProgramMode
| "VW54" | yes* | "irrigationSystem" | Irrigation System Get Program Mode - AMn or VWn - (0 - No Program scheduled; 1 - Program scheduled; 2 - Program scheduled manual Mode)
irrigationSystemGetInUse
| "V4.3" | yes* | "irrigationSystem" | Irrigation System Get In Use - Mn or Vn.n
irrigationSystemGetRemainingDuration
| "VW56" | no* | "irrigationSystem" | Irrigation System Get Remaining Duration - AMn or VWn
irrigationSystemGetWaterLevel
| "VW58" | no* | "irrigationSystem" | Irrigation System Get Water Level % - AMn or VWn
irrigationSystemAutoUpdate
| 1 | no* | "irrigationSystem" | Auto update of Irrigation System based on valves sub-accessories. If set irrigationSystemGetActive
and irrigationSystemGetInUse
are not necessary and can remain unset
{
"name": "Item-10",
"type": "irrigationSystem",
"irrigationSystemGetActive": "V4.0",
"irrigationSystemSetActiveOn": "V4.1",
"irrigationSystemSetActiveOff": "V4.2",
"irrigationSystemGetProgramMode": "VW54",
"irrigationSystemGetInUse": "V4.3",
"irrigationSystemGetRemainingDuration": "VW56",
"irrigationSystemGetWaterLevel": "VW58"
}
{
"name": "Item-10",
"type": "irrigationSystem",
"irrigationSystemSetActiveOn": "V4.1",
"irrigationSystemSetActiveOff": "V4.2",
"irrigationSystemGetProgramMode": "VW54",
"irrigationSystemGetRemainingDuration": "VW56",
"irrigationSystemGetWaterLevel": "VW58",
"irrigationSystemAutoUpdate": 1
}
Valve Configuration
Name | Value | Required | Option for | Notes
------------------------------- | --------- | -------- | ---------- | ------------------------
valveGetActive
| "V5.0" | yes* | "valve" | Valve Get Active - Mn or Vn.n
valveSetActiveOn
| "V5.1" | yes* | "valve" | Valve Set Active to On - Mn or Vn.n
valveSetActiveOff
| "V5.2" | yes* | "valve" | Valve Set Active to Off - Mn or Vn.n
valveGetInUse
| "V5.3" | yes* | "valve" | Valve Get In Use - Mn or Vn.n
valveType
| 0 | yes* | "valve" | Valve Type - Generic Valve = 0, Irrigation = 1, Shower Head = 2, Water Faucet = 3. Defaults to 1 when valveParentIrrigationSystem
is setvalveSetDuration
| "VW56" | no* | "valve" | Valve Set Duration - AMn or VWn - Value in Seconds (0 - 3600 sec)
valveGetDuration
| "VW56" | no* | "valve" | Valve Get Duration - AMn or VWn - Value in Seconds (0 - 3600 sec)
valveGetRemainingDuration
| "VW58" | no* | "valve" | Valve Get Remaining Duration - AMn or VWn - Value in Seconds (0 - 3600 sec)
valveSetIsConfiguredOn
| "V5.4" | no* | "valve" | Valve Set Is Configured / Enabled On - Mn or Vn.n
valveSetIsConfiguredOff
| "V5.5" | no* | "valve" | Valve Set Is Configured / Enabled Off - Mn or Vn.n
valveGetIsConfigured
| "V5.6" | no* | "valve" | Valve Get Is Configured / Enabled - Mn or Vn.n
valveParentIrrigationSystem
| "Item-10" | no* | "valve" | Valve parent Irrigation System accessory name, needed to create the valve as a sub-accessory of an Irrigation System
valveZone
| 1 | no* | "valve" | Valve zone, needed when valve is part of an Irrigation System accessory
- Item-11-A: Valve as child from a Irrigation System (Item-10)
- Item-11-B: Valve without
IsConfigured
characteristic - Item-11-C: Valve with
IsConfigured
characteristic - Item-11-D: Valve as minimum without
SetDuration
andIsConfigured
{
"name": "Item-11-A",
"type": "valve",
"valveGetActive": "V5.0",
"valveSetActiveOn": "V5.1",
"valveSetActiveOff": "V5.2",
"valveGetInUse": "V5.3",
"valveType": 1,
"valveSetDuration": "VW56",
"valveGetDuration": "VW56",
"valveGetRemainingDuration": "VW58",
"valveParentIrrigationSystem": "Item-10",
"valveZone": 1
}
{
"name": "Item-11-B",
"type": "valve",
"valveGetActive": "V5.0",
"valveSetActiveOn": "V5.1",
"valveSetActiveOff": "V5.2",
"valveGetInUse": "V5.3",
"valveType": 1,
"valveSetDuration": "VW56",
"valveGetDuration": "VW56",
"valveGetRemainingDuration": "VW58"
}
{
"name": "Item-11-C",
"type": "valve",
"valveGetActive": "V5.0",
"valveSetActiveOn": "V5.1",
"valveSetActiveOff": "V5.2",
"valveGetInUse": "V5.3",
"valveType": 1,
"valveSetDuration": "VW56",
"valveGetDuration": "VW56",
"valveGetRemainingDuration": "VW58",
"valveSetIsConfiguredOn": "V5.4",
"valveSetIsConfiguredOff": "V5.5",
"valveGetIsConfigured": "V5.6"
}
{
"name": "Item-11-D",
"type": "valve",
"valveGetActive": "V5.3",
"valveSetActiveOn": "V5.1",
"valveSetActiveOff": "V5.1",
"valveGetInUse": "V5.3",
"valveType": 1,
"pushButton": 0
}
Fan Configuration
Name | Value | Required | Option for | Notes
------------------------ | ----------------- | -------- | ---------- | ------------------------
fanGet
| "V6.0" | yes* | "fan" | Fan Get - Mn or Vn.n
fanSetOn
| "V6.1" | yes* | "fan" | Fan Set On - Mn or Vn.n
fanSetOff
| "V6.2" | yes* | "fan" | Fan Set Off - Mn or Vn.n
fanGetRotationDirection
| "V6.3" | no* | "fan" | Fan Get Rotation Direction - Mn or Vn.n
fanSetRotationDirectionCW
| "V6.4" | no* | "fan" | Fan Set Rotation Direction to Clockwise - Mn or Vn.n
fanSetRotationDirectionCCW
| "V6.5" | no* | "fan" | Fan Set Rotation Direction to Counter Clockwise - Mn or Vn.n
fanGetRotationSpeed
| "VW60" | no* | "fan" | Fan Get Rotation Speed - AMn or VWn
fanSetRotationSpeed
| "VW62" | no* | "fan" | Fan Set Rotation Speed - AMn or VWn
{
"name": "Item-12",
"type": "fan",
"fanGet": "V6.0",
"fanSetOn": "V6.1",
"fanSetOff": "V6.2",
"fanGetRotationDirection": "V6.3",
"fanSetRotationDirectionCW": "V6.4",
"fanSetRotationDirectionCCW": "V6.5",
"fanGetRotationSpeed": "VW60",
"fanSetRotationSpeed": "VW62"
}
Filter Maintenance Configuration
The Home-App only supports this accessory as an additional feature of a dehumidifier, for example.
Name | Value | Required | Option for | Notes
------------------------ | ----------------- | -------- | ---------- | ------------------------
filterChangeIndication
| "V7.0" | yes* | "filterMaintenance" | Filter Maintenance Get Filter Change Indication - Mn or Vn.n
filterLifeLevel
| "VW64" | no* | "filterMaintenance" | Filter Maintenance Get Filter Life Level - AMn or VWn
filterResetFilterIndication
| "V7.1" | no* | "filterMaintenance" | Filter Maintenance Set Reset Filter Indication - Mn or Vn.n
{
"name": "Item-13",
"type": "filterMaintenance",
"filterChangeIndication": "V7.0",
"filterLifeLevel": "VW64",
"filterResetFilterIndication": "V7.1"
}
Outlet Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
outletGet
| "Q1" | yes* | "outlet" | Outlet Get - Qn, Mn or Vn.n
outletSetOn
| "V1.0" | yes* | "outlet" | Outlet Set On - Mn or Vn.n
outletSetOff
| "V1.1" | yes* | "outlet" | Outlet Set Off - Mn or Vn.noutletGetInUse
| "V1.2" | yes* | "outlet" | Outlet Get In Use - Qn, Mn or Vn.n
{
"name": "Q1",
"type": "outlet",
"outletGet": "Q1",
"outletSetOn": "V1.0",
"outletSetOff": "V1.1"
}
Other Configuration
This accessory can contain other accessories, but does not respond to tapping to turn it on or off. It opens a detailed view of the sub accessories.
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
name
| (custom) | yes | "other" | Name of accessory that will appear in homekit app.type
| "other" | yes | "other" | Type of Accessory: "other"
{
"name": "Ventilation",
"type": "other"
},
{
"name": "Level 1",
"type": "switch",
"switchGet": "Q3",
"switchSetOn": "V3.2",
"switchSetOff": "V4.2",
"parentAccessory": "Ventilation"
},
{
"name": "Level 2",
"type": "switch",
"switchGet": "Q4",
"switchSetOn": "V3.3",
"switchSetOff": "V4.3",
"parentAccessory": "Ventilation"
},
{
"name": "Automatic",
"type": "switch",
"switchGet": "M16",
"switchSetOn": "V3.4",
"switchSetOff": "V4.4",
"parentAccessory": "Ventilation"
},
{
"name": "Supply Air",
"type": "temperatureSensor",
"convertValue": 1,
"temperature": "AM5",
"parentAccessory": "Ventilation"
},
{
"name": "Exhaust Air",
"type": "temperatureSensor",
"convertValue": 1,
"temperature": "AM6",
"parentAccessory": "Ventilation"
}
Light Sensor Configuration
Name | Value | Required | Option for | Notes
------------------- | ---------- | -------- | ---------- | ------------------------
light
| "VW66" | yes* | "lightSensor" | Light Sensor for Current Ambient Light Level in Lux
{
"name": "Sensor-1",
"type": "lightSensor",
"light": "VW66"
}
Motion Sensor Configuration
Name | Value | Required | Option for | Notes
---------------- | ------------------- | -------- | ---------- | ------------------------
motion
| "V8.0" | yes* | "motionSensor" | Motion Sensor
{
"name": "Sensor-2",
"type": "motionSensor",
"motion": "V8.0"
}
Contact Sensor Configuration
Name | Value | Required | Option for | Notes
---------------- | ------------------- | -------- | ---------- | ------------------------
contact
| "V8.1" | yes* | "contactSensor" | Contact Sensor
{
"name": "Sensor-3",
"type": "contactSensor",
"contact": "V8.1"
}
Smoke Sensor Configuration
Name | Value | Required | Option for | Notes
---------------- | ------------------- | -------- | ---------- | ------------------------
smoke
| "V8.2" | yes* | "smokeSensor" | Smoke Sensor
{
"name": "Sensor-4",
"type": "smokeSensor",
"smoke": "V8.2"
}
Temperature Sensor Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
temperature
| "VW68" | yes* | "temperatureSensor" | Temperature Sensor for Current Temperature in °C (-270°C - 100°C!!)
convertValue
| 0 or 1 | no* | "temperatureSensor" | Convert Int in Float, default is: 0. (235 / 10 == 23.5°C)
{
"name": "Sensor-5",
"type": "temperatureSensor",
"convertValue": 1,
"temperature": "VW68"
}
Humidity Sensor Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
humidity
| "VW70" | yes* | "humiditySensor" | Humidity Sensor for Current Relative Humidity in %
convertValue
| 0 or 1 | no* | "humiditySensor" | Convert Int in Float, default is: 0. (456 / 10 == 45.6%rH => 46%rH in Home App)
{
"name": "Sensor-6",
"type": "humiditySensor",
"convertValue": 1,
"humidity": "VW70"
}
Carbon Dioxide Sensor Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
carbonDioxide
| "V9.0" | yes* | "carbonDioxideSensor" | Carbon Dioxide
carbonDioxideLevel
| "VW72" | no* | "carbonDioxideSensor" | Carbon Dioxide Level in ppm
carbonDioxidePeakLevel
| "VW74" | no* | "carbonDioxideSensor" | Carbon Dioxide Peak Level in ppm
{
"name": "Sensor-7",
"type": "carbonDioxideSensor",
"carbonDioxide": "V9.0",
"carbonDioxideLevel": "VW72",
"carbonDioxidePeakLevel": "VW74"
}
Air Quality Sensor Configuration
Name | Value | Required | Option for | Notes
------------------------ | ------------------- | -------- | ---------- | ------------------------
airQuality
| "VW76" | yes* | "airQualitySensor" | Air Quality (0 - 5)
- 0 - Unknown
- 1 - Excellent - CO2 < 800ppm (IDA 1)
- 2 - Good - CO2 = 800 - 1000ppm (IDA 2)
- 3 - Fair - CO2 = 1000 - 1400ppm (IDA 3)
- 4 - Inferior - CO2 = 1400 - 1800ppm (IDA 4)
- 5 - Poor - CO2 > 1800ppm
{
"name": "Sensor-8",
"type": "airQualitySensor",
"airQuality": "VW76"
}
Leak Sensor Configuration
Name | Value | Required | Option for | Notes
---------------- | ------------------- | -------- | ---------- | ------------------------
leak
| "V9.1" | yes* | "leakSensor" | Leak Sensor
waterLevel
| "VW78" | no* | "leakSensor" | Water Level in %
{
"name": "Sensor-9",
"type": "leakSensor",
"leak": "V9.1",
"waterLevel": "VW78"
}
Logging to InfluxDB or Eve App
| Type | Characteristic | InfluxDB | Eve App | |-----------------------|----------------------------------------------------------------------------------------------------|---------------------------------|----------------------------| | Switch | On | yes | yes | | Lightbulb | OnBrightness | yesyes | yesno | | Blind | CurrentPositionPositionStateTargetPosition | yesyesyes | nonono | | Window | CurrentPositionPositionStateTargetPosition | yesyesyes | nonono | | Garage Door | CurrentDoorStateTargetDoorStateObstructionDetected | yesyesyes | nonono | | Thermostat | CurrentHeatingCoolingStateTargetHeatingCoolingStateCurrentTemperatureTargetTemperature | yesyesyesyes | nonoyesyes | | Irrigation System | ActiveProgramModeInUseRemainingDurationWaterLevel | yesyesyesyesyes | nonononono | | Valve | ActiveInUseRemainingDurationSetDurationIsConfigured | yesyesyesyesyes | nonononono | | Fan | OnRotationDirectionRotationSpeed | yesyesyes | nonono | | Filter Maintenance | FilterChangeIndicationFilterLifeLevelResetFilterIndication | yesyesyes | nonono | | Outlet | OnInUse | yesyes | yesno | | Light Sensor | CurrentAmbientLightLevel | yes | no | | Motion Sensor | MotionDetected | yes | yes | | Contact Sensor | ContactSensorState | yes | yes | | Smoke Sensor | SmokeDetected | yes | no | | Temperature Sensor | CurrentTemperature | yes | yes | | Humidity Sensor | CurrentRelativeHumidity | yes | yes | | Carbon Dioxide Sensor | CarbonDioxideDetectedCarbonDioxideLevelCarbonDioxidePeakLevel | yesyesyes | noyesno | | Air Quality Sensor | AirQuality | yes | no | | Leak Sensor | LeakDetectedWaterLevel | yesyes | nono |
Main Configuration
"platforms": [
{
"platform": "LogoPlatform",
"name": "Logo 6",
"ip": "10.0.0.100",
"port": 502,
"updateInterval": 10000,
"debugMsgLog": 1,
"pushButton": 1,
"loggerType": "influxDB",
"loggerInterval": 30000,
"influxDBUrl": "http://10.0.0.99:8086",
"influxDBToken": "qwertzuiopasdfghjklyxcvbnm1234567890",
"influxDBOrg": "Org-Name",
"influxDBBucket": "Bucket-Name",
"devices": [
{
"name": "Logo 6 - Q1",
"type": "switch",
"switchGet": "Q1",
"switchSetOn": "V1.0",
"switchSetOff": "V1.1",
"logging": 1
},
{
"name": "Logo 6 - Q2",
"type": "switch",
"switchGet": "Q2",
"switchSetOn": "V1.2",
"switchSetOff": "V1.3"
},
{
"name": "Logo 6 - Q3",
"type": "switch",
"switchGet": "Q3",
"switchSetOn": "V1.4",
"switchSetOff": "V1.5",
"logging": 1
},
{
"name": "Logo 6 - M1",
"type": "switch",
"switchGet": "M1",
"switchSetOn": "V1.6",
"switchSetOff": "V1.7"
},
{
"name": "Logo 6 - Q4",
"type": "lightbulb",
"lightbulbGet": "Q4",
"lightbulbSetOn": "V2.0",
"lightbulbSetOff": "V2.1",
"lightbulbSetBrightness": "VW20",
"lightbulbGetBrightness": "VW22",
"logging": 1
}
]
},
{
"platform": "LogoPlatform",
"name": "Logo 7",
"interface": "snap7",
"ip": "10.0.0.101",
"logoType": "0BA7",
"localTSAP": "0x2200",
"remoteTSAP": "0x2100",
"updateInterval": 10000,
"debugMsgLog": 1,
"pushButton": 1,
"retryCount": 5,
"devices": [
{
"name": "Logo 7 - Q1",
"type": "switch",
"switchGet": "Q1",
"switchSetOn": "V1.0",
"switchSetOff": "V1.1"
},
{
"name": "Logo 7 - Q2",
"type": "switch",
"switchGet": "Q2",
"switchSetOn": "V1.2",
"switchSetOff": "V1.3"
},
{
"name": "Logo 7 - Q3",
"type": "switch",
"switchGet": "Q3",
"switchSetOn": "V1.4",
"switchSetOff": "V1.5"
},
{
"name": "Logo 7 - M1",
"type": "switch",
"switchGet": "M1",
"switchSetOn": "V1.6",
"switchSetOff": "V1.7"
},
{
"name": "Logo 7 - Q4",
"type": "lightbulb",
"lightbulbGet": "Q4",
"lightbulbSetOn": "V2.0",
"lightbulbSetOff": "V2.1",
"lightbulbSetBrightness": "VW20",
"lightbulbGetBrightness": "VW22"
}
]
}
]
Type of your LOGO
Type | Snap7 | Webserver | ModBus | Cloud | MemoryLayout | LSC
-------- | ----- | --------- | ------ | ----- | ------------ | ------------------------
"0BA7"
| yes | no | no | no | old | 0BA7.Standard
"0BA8"
| yes | yes | no | no | new | LOGO! 8 (0BA8.Standard)
"0BA0"
| yes | yes | yes | no | new | LOGO! 8.1 & 8.2 (LOGO! 8.FS4)
"0BA1"
| yes | yes | yes | yes | new | LOGO! 8.3
Required: yes* - means that this parameter is only required for this particular accessory!
Required: no* - means if no valid LOGO address is specified for this parameter, this characteristic returns the specified value or is deactivated in the accessory!
Test Homebridge-Logo-Platform
- Download or clone Homebridge-Logo-Platform.
- Install:
$ npm install
- Build:
$ npm run build
- Run:
$ /usr/local/bin/homebridge -D -P ~/Homebridge-Logo-Platform/