homebridge-logo-platform
Version:
This is a Siemens LOGO! Platform Plugin.
864 lines (842 loc) • 30.4 kB
JSON
{
"pluginAlias": "LogoPlatform",
"pluginType": "platform",
"singular": false,
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string",
"required": true,
"default": "LOGO 1"
},
"interface": {
"title": "Interface for communication, default is: modbus.",
"type": "string",
"default": "modbus",
"oneOf": [
{ "title": "Modbus", "enum": ["modbus"] },
{ "title": "Snap7", "enum": ["snap7"] }
]
},
"ip": {
"title": "IP Address",
"type": "string",
"required": true,
"default": "10.0.0.100",
"format": "ipv4"
},
"port": {
"title": "ModBus Port",
"type": "number",
"placeholder": "502",
"description": "Only required for ModBus interface."
},
"logoType": {
"title": "Must be set to the Type of your LOGO!",
"type": "string",
"default": "switch",
"oneOf": [
{ "title": "0BA7 [0BA7.Standard]", "enum": ["0BA7"] },
{ "title": "0BA8 [LOGO! 8 (0BA8.Standard)]", "enum": ["0BA8"] },
{ "title": "0BA0 [LOGO! 8.1 & 8.2 (LOGO! 8.FS4)]", "enum": ["0BA0"] },
{ "title": "0BA1 [LOGO! 8.3]", "enum": ["0BA1"] }
],
"description": "Only required for Snap7 interface."
},
"localTSAP": {
"title": "Must be set to the local TSAP of your LOGO!, default is: '0x1200'.",
"type": "String",
"placeholder": "0x1200",
"description": "Only required for Snap7 interface."
},
"remoteTSAP": {
"title": "Must be set to the remote TSAP of your LOGO!, default is: 0x2200'.",
"type": "String",
"placeholder": "0x2200",
"description": "Only required for Snap7 interface."
},
"queueInterval": {
"title": "Interval to send queries from Plugin to LOGO!, in milliseconds, default is: 100. Range: 100 - 1000",
"type": "number",
"placeholder": "100"
},
"queueSize": {
"title": "Number of items to be hold in send/receive queue, default is: 100. Range: 100 - 1000",
"type": "number",
"placeholder": "100"
},
"updateInterval": {
"title": "Auto Update Interval in milliseconds, 0 = Off, Range: 0 - ...",
"type": "number",
"placeholder": "10000"
},
"debugMsgLog": {
"title": "Debug Msg Log (On / Off), Range: 0 - 1",
"type": "number",
"placeholder": "0"
},
"retryCount": {
"title": "Retry count for sending the queries messages, default is: 5, Range: 0 - ...",
"type": "number",
"placeholder": "5"
},
"pushButton": {
"title": "If e.g. the network input in the LOGO! a hardware button on the LOGO! simulated, default is: 0. (For all Accessories.), Range: 0 - 1",
"type": "number",
"placeholder": "0"
},
"loggerType": {
"title": "Activates Logging, default is: no Logging (none).",
"type": "string",
"placeholder": "none",
"oneOf": [
{ "title": "no Logging", "enum": ["none"] },
{ "title": "InfluxDB", "enum": ["influxDB"] },
{ "title": "Fakegato", "enum": ["fakegato"] }
]
},
"loggerInterval": {
"title": "Logging Interval in milliseconds, default is: 300000 (5min)",
"type": "number",
"placeholder": "300000",
"description": "Only required for Logging to InfluxDB."
},
"influxDBUrl": {
"title": "IP-Address and Port for InfluxDB",
"type": "string",
"placeholder": "http://10.0.0.99:8086",
"description": "Only required for Logging to InfluxDB."
},
"influxDBToken": {
"title": "InfluxDB API token",
"type": "string",
"placeholder": "API Token",
"description": "Only required for Logging to InfluxDB."
},
"influxDBOrg": {
"title": "InfluxDB organization ID",
"type": "string",
"placeholder": "Org",
"description": "Only required for Logging to InfluxDB."
},
"influxDBBucket": {
"title": "InfluxDB bucket name",
"type": "string",
"placeholder": "Bucket",
"description": "Only required for Logging to InfluxDB."
},
"devices": {
"title": "Devices",
"type": "object",
"required": true,
"properties": {
"name": {
"title": "Name",
"type": "string",
"required": true,
"default": "Accessory 1"
},
"type": {
"title": "Accessory or Sensor Type",
"type": "string",
"default": "switch",
"oneOf": [
{ "title": "Switch", "enum": ["switch"] },
{ "title": "Lightbulb", "enum": ["lightbulb"] },
{ "title": "Blind", "enum": ["blind"] },
{ "title": "Window", "enum": ["window"] },
{ "title": "Garage Door Oppener", "enum": ["garagedoor"] },
{ "title": "Thermostat", "enum": ["thermostat"] },
{ "title": "Irrigation System", "enum": ["irrigationSystem"] },
{ "title": "Valve", "enum": ["valve"] },
{ "title": "Fan", "enum": ["fan"] },
{ "title": "Filter Maintenance", "enum": ["filterMaintenance"] },
{ "title": "Outlet", "enum": ["outlet"] },
{ "title": "Light Sensor", "enum": ["lightSensor"] },
{ "title": "Motion Sensor", "enum": ["motionSensor"] },
{ "title": "Contact Sensor", "enum": ["contactSensor"] },
{ "title": "Smoke Sensor", "enum": ["smokeSensor"] },
{ "title": "Temperature Sensor", "enum": ["temperatureSensor"] },
{ "title": "Humidity Sensor", "enum": ["humiditySensor"] },
{ "title": "Carbon Dioxide Sensor", "enum": ["carbonDioxideSensor"] },
{ "title": "Air Quality Sensor", "enum": ["airQualitySensor"] },
{ "title": "Leak Sensor", "enum": ["leakSensor"] },
{ "title": "Watchdog", "enum": ["watchdog"] }
],
"required": true
},
"debugMsgLog": {
"title": "Debug Msg Log (On / Off), Range: 0 - 1",
"type": "number",
"placeholder": "0"
},
"pushButton": {
"title": "Push Button (On / Off), Range: 0 - 1",
"type": "number",
"placeholder": "0"
},
"logging": {
"title": "Activates Logging only for this Accessory, default is: 0, Range: 0 - 1",
"type": "number",
"placeholder": "0"
},
"parentAccessory": {
"title": "Parent accessory name, needed to create this accessory as a sub-accessory of an other accessory. Not for Valve, IrrigationSystem and Other",
"type": "string",
"placeholder": ""
},
"switchGet": {
"title": "Switch Get (Required)",
"type": "string",
"placeholder": "Q1",
"condition": {
"functionBody": "return model.devices.type == 'switch';"
}
},
"switchSetOn": {
"title": "Switch Set On (Required)",
"type": "string",
"placeholder": "V1.0",
"condition": {
"functionBody": "return model.devices.type == 'switch';"
}
},
"switchSetOff": {
"title": "Switch Set Off (Required)",
"type": "string",
"placeholder": "V1.1",
"condition": {
"functionBody": "return model.devices.type == 'switch';"
}
},
"lightbulbGet": {
"title": "Lightbulb Get (Required)",
"type": "string",
"placeholder": "Q4",
"condition": {
"functionBody": "return model.devices.type == 'lightbulb';"
}
},
"lightbulbSetOn": {
"title": "Lightbulb Set On (Required)",
"type": "string",
"placeholder": "V7.0",
"condition": {
"functionBody": "return model.devices.type == 'lightbulb';"
}
},
"lightbulbSetOff": {
"title": "Lightbulb Set Off (Required)",
"type": "string",
"placeholder": "V7.1",
"condition": {
"functionBody": "return model.devices.type == 'lightbulb';"
}
},
"lightbulbSetBrightness": {
"title": "Lightbulb Set Brightness (Required)",
"type": "string",
"placeholder": "VW70",
"condition": {
"functionBody": "return model.devices.type == 'lightbulb';"
}
},
"lightbulbGetBrightness": {
"title": "Lightbulb Get Brightness (Required)",
"type": "string",
"placeholder": "VW72",
"condition": {
"functionBody": "return model.devices.type == 'lightbulb';"
}
},
"blindSetTargetPos": {
"title": "Blind Set Target Pos (Required)",
"type": "string",
"placeholder": "VW26",
"condition": {
"functionBody": "return model.devices.type == 'blind';"
}
},
"blindGetTargetPos": {
"title": "Blind Get Target Pos (Required)",
"type": "string",
"placeholder": "VW26",
"condition": {
"functionBody": "return model.devices.type == 'blind';"
}
},
"blindGetPos": {
"title": "Blind Get Pos (Required)",
"type": "string",
"placeholder": "VW28",
"condition": {
"functionBody": "return model.devices.type == 'blind';"
}
},
"blindGetState": {
"title": "Blind Get State (Required)",
"type": "string",
"placeholder": "VW30",
"condition": {
"functionBody": "return model.devices.type == 'blind';"
}
},
"blindConvertValue": {
"title": "Blind Convert Value (Not Required)",
"type": "number",
"placeholder": "0",
"condition": {
"functionBody": "return model.devices.type == 'blind';"
}
},
"windowSetTargetPos": {
"title": "Window Set Target Pos (Required)",
"type": "string",
"placeholder": "VW32",
"condition": {
"functionBody": "return model.devices.type == 'window';"
}
},
"windowGetTargetPos": {
"title": "Window Get Target Pos (Required)",
"type": "string",
"placeholder": "VW34",
"condition": {
"functionBody": "return model.devices.type == 'window';"
}
},
"windowGetPos": {
"title": "Window Get Pos (Required)",
"type": "string",
"placeholder": "VW34",
"condition": {
"functionBody": "return model.devices.type == 'window';"
}
},
"windowGetState": {
"title": "Window Get State (Required)",
"type": "string",
"placeholder": "VW36",
"condition": {
"functionBody": "return model.devices.type == 'window';"
}
},
"windowConvertValue": {
"title": "Window Convert Value (Not Required)",
"type": "number",
"placeholder": "0",
"condition": {
"functionBody": "return model.devices.type == 'window';"
}
},
"garagedoorGetState": {
"title": "Garagedoor Get State (Required)",
"type": "string",
"placeholder": "VW40",
"condition": {
"functionBody": "return model.devices.type == 'garagedoor';"
}
},
"garagedoorGetTargetState": {
"title": "Garagedoor Get Target State (Required)",
"type": "string",
"placeholder": "VW40",
"condition": {
"functionBody": "return model.devices.type == 'garagedoor';"
}
},
"garagedoorSetTargetState": {
"title": "Garagedoor Set Target State (Required)",
"type": "string",
"placeholder": "VW38",
"condition": {
"functionBody": "return model.devices.type == 'garagedoor';"
}
},
"garagedoorObstruction": {
"title": "Garagedoor Obstruction (Not Required)",
"type": "string",
"placeholder": "V3.0",
"condition": {
"functionBody": "return model.devices.type == 'garagedoor';"
}
},
"thermostatGetHCState": {
"title": "Thermostat Get HC State (Required)",
"type": "string",
"placeholder": "VW42",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"thermostatGetTargetHCState": {
"title": "Thermostat Get Target HC State (Required)",
"type": "string",
"placeholder": "VW44",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"thermostatSetTargetHCState": {
"title": "Thermostat Set Target HC State (Required)",
"type": "string",
"placeholder": "VW46",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"thermostatGetTemp": {
"title": "Thermostat Get Temp (Required)",
"type": "string",
"placeholder": "VW48",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"thermostatGetTargetTemp": {
"title": "Thermostat Get Target Temp (Required)",
"type": "string",
"placeholder": "VW50",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"thermostatSetTargetTemp": {
"title": "Thermostat Set Target Temp (Required)",
"type": "string",
"placeholder": "VW52",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"thermostatTempDisplayUnits": {
"title": "Thermostat Temp Display Units (Required)",
"type": "number",
"placeholder": "0",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"thermostatConvertValue": {
"title": "Thermostat Convert Value (Not Required)",
"type": "number",
"placeholder": "0",
"condition": {
"functionBody": "return model.devices.type == 'thermostat';"
}
},
"irrigationSystemGetActive": {
"title": "Irrigation System Get Active (Required)",
"type": "string",
"placeholder": "V4.0",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"irrigationSystemSetActiveOn": {
"title": "Irrigation System Set Active On (Required)",
"type": "string",
"placeholder": "V4.1",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"irrigationSystemSetActiveOff": {
"title": "Irrigation System Set Active Off (Required)",
"type": "string",
"placeholder": "V4.2",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"irrigationSystemGetProgramMode": {
"title": "Irrigation System Get Program Mode (Required)",
"type": "string",
"placeholder": "VW54",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"irrigationSystemGetInUse": {
"title": "Irrigation System Get InUse (Required)",
"type": "string",
"placeholder": "V4.3",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"irrigationSystemGetRemainingDuration": {
"title": "Irrigation System Get RemainingDuration (Not Required)",
"type": "string",
"placeholder": "VW56",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"irrigationSystemGetWaterLevel": {
"title": "Irrigation System Get WaterLevel (Not Required)",
"type": "string",
"placeholder": "VW58",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"irrigationSystemAutoUpdate": {
"title": "Irrigation System Auto Update (Not Required)",
"type": "string",
"placeholder": "1",
"condition": {
"functionBody": "return model.devices.type == 'irrigationSystem';"
}
},
"valveGetActive": {
"title": "Valve Get Active (Required)",
"type": "string",
"placeholder": "V5.0",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveSetActiveOn": {
"title": "Valve Set Active On (Required)",
"type": "string",
"placeholder": "V5.1",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveSetActiveOff": {
"title": "Valve Set Active Off (Required)",
"type": "string",
"placeholder": "V5.2",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveGetInUse": {
"title": "Valve Get InUse (Required)",
"type": "string",
"placeholder": "V5.3",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveType": {
"title": "Valve Type (Required)",
"type": "number",
"placeholder": "0",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveSetDuration": {
"title": "Valve Set Duration (Not Required)",
"type": "string",
"placeholder": "VW56",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveGetDuration": {
"title": "Valve Get Duration (Not Required)",
"type": "string",
"placeholder": "VW56",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveGetRemainingDuration": {
"title": "Valve Get Remaining Duration (Not Required)",
"type": "string",
"placeholder": "VW58",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveSetIsConfiguredOn": {
"title": "Valve Set Is Configured On - Enabled (Not Required)",
"type": "string",
"placeholder": "V5.4",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveSetIsConfiguredOff": {
"title": "Valve Set Is Configured Off - Enabled (Not Required)",
"type": "string",
"placeholder": "V5.4",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveGetIsConfigured": {
"title": "Valve Get Is Configured - Enabled (Not Required)",
"type": "string",
"placeholder": "V5.5",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveParentIrrigationSystem": {
"title": "Valve parent Irrigation System accessory (Not Required)",
"type": "string",
"placeholder": "IrrigationSystem1",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"valveZone": {
"title": "Valve zone, needed when valve is part of an Irrigation System accessory (Not Required)",
"type": "string",
"placeholder": "IrrigationSystem1",
"condition": {
"functionBody": "return model.devices.type == 'valve';"
}
},
"fanGet": {
"title": "Fan Get (Required)",
"type": "string",
"placeholder": "V6.0",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"fanSetOn": {
"title": "Fan Set On (Required)",
"type": "string",
"placeholder": "V6.1",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"fanSetOff": {
"title": "Fan Set Off (Required)",
"type": "string",
"placeholder": "V6.2",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"fanGetRotationDirection": {
"title": "Fan Get Rotation Direction (Not Required)",
"type": "string",
"placeholder": "V6.3",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"fanSetRotationDirectionCW": {
"title": "Fan Set Rotation Direction CW (Not Required)",
"type": "string",
"placeholder": "V6.4",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"fanSetRotationDirectionCCW": {
"title": "Fan Set Rotation Direction CCW (Not Required)",
"type": "string",
"placeholder": "V6.5",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"fanGetRotationSpeed": {
"title": "Fan Get Rotation Speed (Not Required)",
"type": "string",
"placeholder": "VW60",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"fanSetRotationSpeed": {
"title": "Fan Set Rotation Speed (Not Required)",
"type": "string",
"placeholder": "VW62",
"condition": {
"functionBody": "return model.devices.type == 'fan';"
}
},
"filterChangeIndication": {
"title": "Filter Change Indication (Required)",
"type": "string",
"placeholder": "V7.0",
"condition": {
"functionBody": "return model.devices.type == 'filterMaintenance';"
}
},
"filterLifeLevel": {
"title": "Filter Life Level (Not Required)",
"type": "string",
"placeholder": "VW64",
"condition": {
"functionBody": "return model.devices.type == 'filterMaintenance';"
}
},
"filterResetFilterIndication": {
"title": "Filter Reset Filter Indication (Not Required)",
"type": "string",
"placeholder": "V7.1",
"condition": {
"functionBody": "return model.devices.type == 'filterMaintenance';"
}
},
"outletGet": {
"title": "Outlet Get (Required)",
"type": "string",
"placeholder": "Q1",
"condition": {
"functionBody": "return model.devices.type == 'outlet';"
}
},
"outletSetOn": {
"title": "Outlet Set On (Required)",
"type": "string",
"placeholder": "V1.0",
"condition": {
"functionBody": "return model.devices.type == 'outlet';"
}
},
"outletSetOff": {
"title": "Outlet Set Off (Required)",
"type": "string",
"placeholder": "V1.1",
"condition": {
"functionBody": "return model.devices.type == 'outlet';"
}
},
"light": {
"title": "Light (Required)",
"type": "string",
"placeholder": "VW66",
"condition": {
"functionBody": "return model.devices.type == 'lightSensor';"
}
},
"motion": {
"title": "Motion (Required)",
"type": "string",
"placeholder": "V8.0",
"condition": {
"functionBody": "return model.devices.type == 'motionSensor';"
}
},
"contact": {
"title": "Contact (Required)",
"type": "string",
"placeholder": "V8.1",
"condition": {
"functionBody": "return model.devices.type == 'contactSensor';"
}
},
"smoke": {
"title": "Smoke (Required)",
"type": "string",
"placeholder": "V8.2",
"condition": {
"functionBody": "return model.devices.type == 'smokeSensor';"
}
},
"temperature": {
"title": "Temperature (Required)",
"type": "string",
"placeholder": "VW68",
"condition": {
"functionBody": "return model.devices.type == 'temperatureSensor';"
}
},
"humidity": {
"title": "Humidity (Required)",
"type": "string",
"placeholder": "VW70",
"condition": {
"functionBody": "return model.devices.type == 'humiditySensor';"
}
},
"convertValue": {
"title": "Convert Value (Not Required)",
"type": "number",
"placeholder": "0",
"condition": {
"functionBody": "return ((model.devices.type == 'temperatureSensor') || (model.devices.type == 'humiditySensor'));"
}
},
"carbonDioxide": {
"title": "Carbon Dioxide (Required)",
"type": "string",
"placeholder": "V9.0",
"condition": {
"functionBody": "return model.devices.type == 'carbonDioxideSensor';"
}
},
"carbonDioxideLevel": {
"title": "Carbon Dioxide Level (Not Required)",
"type": "string",
"placeholder": "VW72",
"condition": {
"functionBody": "return model.devices.type == 'carbonDioxideSensor';"
}
},
"carbonDioxidePeakLevel": {
"title": "Carbon Dioxide Peak Level (Not Required)",
"type": "string",
"placeholder": "VW74",
"condition": {
"functionBody": "return model.devices.type == 'carbonDioxideSensor';"
}
},
"airQuality": {
"title": "Air Quality (Required)",
"type": "string",
"placeholder": "V7.0",
"condition": {
"functionBody": "return model.devices.type == 'airQualitySensor';"
}
},
"leak": {
"title": "Leak (Required)",
"type": "string",
"placeholder": "V9.1",
"condition": {
"functionBody": "return model.devices.type == 'leakSensor';"
}
},
"waterLevel": {
"title": "Water Level (Not Required)",
"type": "string",
"placeholder": "VW78",
"condition": {
"functionBody": "return model.devices.type == 'leakSensor';"
}
},
"watchdog": {
"title": "Watchdog (Required)",
"type": "string",
"placeholder": "VW79",
"condition": {
"functionBody": "return model.devices.type == 'watchdog';"
}
},
"expectedValue": {
"title": "Expected Value (Required)",
"type": "string",
"placeholder": "1234",
"condition": {
"functionBody": "return model.devices.type == 'watchdog';"
}
},
"disconnect": {
"title": "Disconnect (Not Required)",
"type": "string",
"placeholder": "0",
"condition": {
"functionBody": "return model.devices.type == 'watchdog';"
}
}
}
}
}
}
}