export again
This commit is contained in:
@ -58,7 +58,7 @@ function RelayBoxHomekitExport(itemId: string, stateTopicPre: string, feedbackTo
|
||||
function RelayBoxOpenHABExport(itemId: string, stateTopicPre: string, feedbackTopicPre: string, conflictTopicPre: string, itemNames: string[]) : string[] {
|
||||
let o : string[] = []
|
||||
itemNames.forEach((label: string, index: number) => {
|
||||
o.push(`Switch ${itemId}${index} "${label} "{mqtt=">[localbroker:${stateTopicPre}/${index}:command:*:default],<[localbroker:${feedbackTopicPre}/${index}:state:default]"}`)
|
||||
o.push(`Switch ${itemId}${index} "${label}" {mqtt=">[localbroker:${stateTopicPre}/${index}:command:*:default],<[localbroker:${feedbackTopicPre}/${index}:state:default]"}`)
|
||||
})
|
||||
return o
|
||||
}
|
||||
|
101
src/main.ts
101
src/main.ts
@ -26,14 +26,15 @@ import { RelayBoxThing } from './RelayBox'
|
||||
|
||||
logger.info("Dispatcher starting")
|
||||
|
||||
let allLabeledItems : Array<AItem> = new Array<AItem>()
|
||||
let allLabeledItems : Array<AItem> = new Array()
|
||||
|
||||
|
||||
// Anna -----------------------------------------------------------------------------------------------------
|
||||
// Anna Aquarium 14665044 24 1 14665041 24 1
|
||||
let aquariumLight = new M433SwitchItem('1st', 'Anna', 'AquariumLight', 'Aquariumlicht', '14665044 24 1', '14665041 24 1')
|
||||
aquariumLight.start()
|
||||
allLabeledItems.concat(aquariumLight)
|
||||
allLabeledItems.push(aquariumLight)
|
||||
|
||||
|
||||
let aquariumLightCron = new Cron('aquariumLightCron', aquariumLight, [
|
||||
{cronTime: '00 00 07 * * 1-5', output: 'ON'},
|
||||
@ -48,16 +49,16 @@ aquariumLightCron.start()
|
||||
// Anna Bett 14668116 24 1 14668113 24 1
|
||||
let annaBedLight = new M433SwitchItem('1st', 'Anna', 'BedLight', 'Bettlicht Anna', '14668116 24 1', '14668113 24 1')
|
||||
annaBedLight.start()
|
||||
allLabeledItems.concat(annaBedLight)
|
||||
allLabeledItems.push(annaBedLight)
|
||||
|
||||
|
||||
let windowContactAnna1st = new MaxWindowContact('1st', 'Anna', 'WindowContact', 'Fenster Anna', 20)
|
||||
windowContactAnna1st.start()
|
||||
allLabeledItems.concat(windowContactAnna1st)
|
||||
allLabeledItems.push(windowContactAnna1st)
|
||||
|
||||
let thermostatAnna1st = new MaxThermostat('1st', 'Anna', 'Thermostat', 'Thermostat Anna', 21, [windowContactAnna1st])
|
||||
thermostatAnna1st.start()
|
||||
allLabeledItems.concat(thermostatAnna1st)
|
||||
allLabeledItems.push(thermostatAnna1st)
|
||||
|
||||
let thermostatAnna1stCron = new Cron('thermostatAnna1stCron', thermostatAnna1st, [
|
||||
{cronTime: '00 05 06 * * *', output: '23.0'},
|
||||
@ -75,103 +76,103 @@ thermostatAnna1stCron.start()
|
||||
// Matthias Stehlampen 7 24 1 6 24 1
|
||||
let matthiasStandLights = new M433SwitchItem('1st', 'Matthias', 'StandLight', 'Stehlampen Matthias', '7 24 1', '6 24 1')
|
||||
matthiasStandLights.start()
|
||||
allLabeledItems.concat(matthiasStandLights)
|
||||
allLabeledItems.push(matthiasStandLights)
|
||||
|
||||
// Matthias Bett 15 24 1 14 24 1
|
||||
let matthiasBedLight = new M433SwitchItem('1st', 'Matthias', 'BedLight', 'Bettlicht Matthias', '15 24 1', '14 24 1')
|
||||
matthiasBedLight.start()
|
||||
allLabeledItems.concat(matthiasBedLight)
|
||||
allLabeledItems.push(matthiasBedLight)
|
||||
|
||||
// Matthias Lautsprecher 11 24 1 10 24 1
|
||||
let matthiasSpeaker = new M433SwitchItem('1st', 'Matthias', 'Speaker', 'Lautsprecher Matthias', '11 24 1', '10 24 1', 'outlet')
|
||||
matthiasSpeaker.start()
|
||||
allLabeledItems.concat(matthiasSpeaker)
|
||||
allLabeledItems.push(matthiasSpeaker)
|
||||
|
||||
// Esszimmer ------------------------------------------------------------------------------------------------
|
||||
// Esszimmer kleine Lampe 69653 24 1 69652 24 1
|
||||
let diningRoomSmallLight = new M433SwitchItem('Gnd', 'DiningRoom', 'SmallLight', 'kleine Lampe Esszimmer', '69653 24 1', '69652 24 1')
|
||||
diningRoomSmallLight.start()
|
||||
allLabeledItems.concat(diningRoomSmallLight)
|
||||
allLabeledItems.push(diningRoomSmallLight)
|
||||
|
||||
// Esszimmer Stehlampe 86037 24 1 86036 24 1
|
||||
let diningRoomStandLight = new M433SwitchItem('Gnd', 'DiningRoom', 'StandLight', 'Stehlampe Esszimmer', '86037 24 1', '86036 24 1')
|
||||
diningRoomStandLight.start()
|
||||
allLabeledItems.concat(diningRoomStandLight)
|
||||
allLabeledItems.push(diningRoomStandLight)
|
||||
|
||||
// Esszimmer Schranklicht 65813 24 1 65812 24 1
|
||||
let diningRoomCupboardLight = new M433SwitchItem('Gnd', 'DiningRoom', 'CupboardLight', 'Schranklicht Esszimmer', '65813 24 1', '65812 24 1')
|
||||
diningRoomCupboardLight.start()
|
||||
allLabeledItems.concat(diningRoomCupboardLight)
|
||||
allLabeledItems.push(diningRoomCupboardLight)
|
||||
|
||||
// Esszimmer Regallicht
|
||||
let diningRoomShelfLight = new UrlSwitchItem('Gnd', 'DiningRoom', 'ShelfLight', 'Regallicht Esszimmer', 'http://regallampe/dv?dv=1023', 'http://regallampe/dv?dv=0')
|
||||
diningRoomShelfLight.start()
|
||||
allLabeledItems.concat(diningRoomShelfLight)
|
||||
allLabeledItems.push(diningRoomShelfLight)
|
||||
|
||||
let diningRoomNaehkaestchenLight = new HueColorBulbItem('Gnd', 'DiningRoom', 'NaehkaestchenLight', 'Lampe Naehkaestchen', 15)
|
||||
diningRoomNaehkaestchenLight.start()
|
||||
allLabeledItems.concat(diningRoomNaehkaestchenLight)
|
||||
allLabeledItems.push(diningRoomNaehkaestchenLight)
|
||||
|
||||
// Wohnzimmer -----------------------------------------------------------------------------------------------
|
||||
// Wohnzimmer grosse Lampe 65557 24 1 65556 24 1
|
||||
let livingRoomLargeLight = new M433SwitchItem('Gnd', 'LivingRoom', 'LargeLight', 'große Lampe Wohnzimmer', '65557 24 1', '65556 24 1')
|
||||
livingRoomLargeLight.start()
|
||||
allLabeledItems.concat(livingRoomLargeLight)
|
||||
allLabeledItems.push(livingRoomLargeLight)
|
||||
|
||||
// Wohnzimmer kleine Lampe 87061 24 1 87060 24 1
|
||||
let livingRoomSmallLight = new M433SwitchItem('Gnd', 'LivingRoom', 'SmallLight', 'kleine Lampe Wohnzimmer', '87061 24 1', '87060 24 1')
|
||||
livingRoomSmallLight.start()
|
||||
allLabeledItems.concat(livingRoomSmallLight)
|
||||
allLabeledItems.push(livingRoomSmallLight)
|
||||
|
||||
// Wohnzimmer Sterne 69909 24 1 69908 24 1
|
||||
let livingRoomStars = new M433SwitchItem('Gnd', 'LivingRoom', 'Stars', 'Sterne Wohnzimmer', '69909 24 1', '69908 24 1')
|
||||
livingRoomStars.start()
|
||||
allLabeledItems.concat(livingRoomStars)
|
||||
allLabeledItems.push(livingRoomStars)
|
||||
|
||||
// Wohnzimmer kleine Stehlampe 81941 24 1 81940 24 1
|
||||
let livingRoomStandLight = new M433SwitchItem('Gnd', 'LivingRoom', 'StandLight', 'Stehlampe Wohnzimmer', '81941 24 1', '81940 24 1')
|
||||
livingRoomStandLight.start()
|
||||
allLabeledItems.concat(livingRoomStandLight)
|
||||
allLabeledItems.push(livingRoomStandLight)
|
||||
|
||||
|
||||
// Flur -----------------------------------------------------------------------------------------------------
|
||||
// Flur Schreibtisch 83221 24 1 83220 24 1
|
||||
let hallwayDeskLight = new M433SwitchItem('Gnd', 'Hallway', 'DeskLight', 'Schreibtischlampe Flur', '83221 24 1', '83220 24 1')
|
||||
hallwayDeskLight.start()
|
||||
allLabeledItems.concat(hallwayDeskLight)
|
||||
allLabeledItems.push(hallwayDeskLight)
|
||||
|
||||
// Flur Stehlampe 8704914 24 5 8793154 24 5
|
||||
let hallwayStandLight = new M433SwitchItem('Gnd', 'Hallway', 'StandLight', 'Stehlampe Flur', '8704914 24 5', '8793154 24 5')
|
||||
hallwayStandLight.start()
|
||||
allLabeledItems.concat(hallwayStandLight)
|
||||
allLabeledItems.push(hallwayStandLight)
|
||||
|
||||
// Flur Schranklicht 66581 24 1 66580 24 1
|
||||
let hallwayWardrobeLight = new M433SwitchItem('Gnd', 'Hallway', 'WardrobeLight', 'Schranklicht Flur', '66581 24 1', '66580 24 1')
|
||||
hallwayWardrobeLight.start()
|
||||
allLabeledItems.concat(hallwayWardrobeLight)
|
||||
allLabeledItems.push(hallwayWardrobeLight)
|
||||
|
||||
|
||||
// Küche ----------------------------------------------------------------------------------------------------
|
||||
// Küche Fensterbank 66837 24 1 66836 24 1
|
||||
let kitchenWindowLight = new M433SwitchItem('Gnd', 'Kitchen', 'WindowLight', 'Fensterbanklicht Küche', '66837 24 1', '66836 24 1')
|
||||
kitchenWindowLight.start()
|
||||
allLabeledItems.concat(kitchenWindowLight)
|
||||
allLabeledItems.push(kitchenWindowLight)
|
||||
|
||||
// Küche Deckenlampe 82197 24 1 82196 24 1
|
||||
let kitchenCeilingLight = new M433SwitchItem('Gnd', 'Kitchen', 'CeilingLight', 'Deckenlampe Küche', '82197 24 1', '82196 24 1')
|
||||
kitchenCeilingLight.start()
|
||||
allLabeledItems.concat(kitchenCeilingLight)
|
||||
allLabeledItems.push(kitchenCeilingLight)
|
||||
|
||||
|
||||
// Schlafzimmer ---------------------------------------------------------------------------------------------
|
||||
// Schlafzimmer Wolfgangs Seite 13976916 24 1 13976913 24 1
|
||||
let bedRoomWolfgangsSide = new M433SwitchItem('1st', 'BedRoom', 'WolfgangsSide', 'Wolfgangs Seite Schlafzimmer', '13976916 24 1', '13976913 24 1')
|
||||
bedRoomWolfgangsSide.start()
|
||||
allLabeledItems.concat(bedRoomWolfgangsSide)
|
||||
allLabeledItems.push(bedRoomWolfgangsSide)
|
||||
|
||||
let bedRoomWolfgangBedLight = new HueColorBulbItem('1st', 'BedRoom', 'WolfgangBedLight', 'Bettlicht', 16)
|
||||
bedRoomWolfgangBedLight.start()
|
||||
allLabeledItems.concat(bedRoomWolfgangBedLight)
|
||||
allLabeledItems.push(bedRoomWolfgangBedLight)
|
||||
|
||||
let bedRoomWolfgangBedLightDimmerAdaptor = new DimmerAdaptor('1st', 'BedRoom', 'WolfgangBedLight')
|
||||
bedRoomWolfgangBedLightDimmerAdaptor.start()
|
||||
@ -183,28 +184,28 @@ touchSwitchMultiButtonThing.start()
|
||||
// Schlafzimmer Pattys Seite 13980756 24 1 13980753 24 1
|
||||
let bedRoomPattysSide = new M433SwitchItem('1st', 'BedRoom', 'PattysSide', 'Pattys Seite Schlafzimmer', '13980756 24 1', '13980753 24 1')
|
||||
bedRoomPattysSide.start()
|
||||
allLabeledItems.concat(bedRoomPattysSide)
|
||||
allLabeledItems.push(bedRoomPattysSide)
|
||||
|
||||
// Schlafzimmer Fensterbank 13979988 24 1 13979985 24 1
|
||||
let bedRoomWindowLight = new M433SwitchItem('1st', 'BedRoom', 'WindowLight', 'Fensterbanklicht Schlafzimmer', '13979988 24 1', '13979985 24 1')
|
||||
bedRoomWindowLight.start()
|
||||
allLabeledItems.concat(bedRoomWindowLight)
|
||||
allLabeledItems.push(bedRoomWindowLight)
|
||||
|
||||
|
||||
|
||||
let windowContactBedroomStreet1st = new MaxWindowContact('1st', 'Bedroom', 'WindowContactStreet', 'Fenster Schlafzimmer Strasse', 17)
|
||||
windowContactBedroomStreet1st.start()
|
||||
allLabeledItems.concat(windowContactBedroomStreet1st)
|
||||
allLabeledItems.push(windowContactBedroomStreet1st)
|
||||
let windowContact1BedroomGarden1st = new MaxWindowContact('1st', 'Bedroom', 'WindowContact1Garden', 'Fenster Schlafzimmer 1 Garten', 18)
|
||||
windowContact1BedroomGarden1st.start()
|
||||
allLabeledItems.concat(windowContact1BedroomGarden1st)
|
||||
allLabeledItems.push(windowContact1BedroomGarden1st)
|
||||
let windowContact2BedroomGarden1st = new MaxWindowContact('1st', 'Bedroom', 'WindowContact2Garden', 'Fenster Schlafzimmer 2 Garten', 22)
|
||||
windowContact2BedroomGarden1st.start()
|
||||
allLabeledItems.concat(windowContact2BedroomGarden1st)
|
||||
allLabeledItems.push(windowContact2BedroomGarden1st)
|
||||
|
||||
let thermostatBedroom1st = new MaxThermostat('1st', 'Bedroom', 'Thermostat', 'Thermostat Schlafzimmer', 19, [windowContact1BedroomGarden1st, windowContact2BedroomGarden1st, windowContactBedroomStreet1st])
|
||||
thermostatBedroom1st.start()
|
||||
allLabeledItems.concat(thermostatBedroom1st)
|
||||
allLabeledItems.push(thermostatBedroom1st)
|
||||
|
||||
let thermostatBedroom1stCron = new Cron('thermostatBedroom1stCron', thermostatBedroom1st, [
|
||||
{cronTime: '00 01 06 * * 1-5', output: '19.0'},
|
||||
@ -226,7 +227,7 @@ let dayLightScene = new LightScene('Gnd', 'Hallway', 'DayLight', 'DayLight',
|
||||
[]
|
||||
)
|
||||
dayLightScene.start()
|
||||
allLabeledItems.concat(dayLightScene)
|
||||
allLabeledItems.push(dayLightScene)
|
||||
|
||||
let ecoLightScene = new LightScene('Gnd', 'Hallway', 'EcoLight', 'EcoLight',
|
||||
[
|
||||
@ -240,7 +241,7 @@ let ecoLightScene = new LightScene('Gnd', 'Hallway', 'EcoLight', 'EcoLight',
|
||||
]
|
||||
)
|
||||
ecoLightScene.start()
|
||||
allLabeledItems.concat(ecoLightScene)
|
||||
allLabeledItems.push(ecoLightScene)
|
||||
|
||||
let ecoSwitch = new MaxEcoSwitch('Gnd', 'Hallway', 'EcoSwitch', 'EcoSwitch', 6, dayLightScene, ecoLightScene)
|
||||
ecoSwitch.start()
|
||||
@ -256,17 +257,17 @@ let morningLightScene = new LightScene('Gnd', 'Hallway', 'MorningLight', 'Mornin
|
||||
]
|
||||
)
|
||||
morningLightScene.start()
|
||||
allLabeledItems.concat(morningLightScene)
|
||||
allLabeledItems.push(morningLightScene)
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------------------------------------
|
||||
let windowContactBathroomGnd = new MaxWindowContact('Gnd', 'Bathroom', 'WindowContact', 'Fenster Bad unten', 7)
|
||||
windowContactBathroomGnd.start()
|
||||
allLabeledItems.concat(windowContactBathroomGnd)
|
||||
allLabeledItems.push(windowContactBathroomGnd)
|
||||
|
||||
let thermostatBathroomGnd = new MaxThermostat('Gnd', 'Bathroom', 'Thermostat', 'Thermostat Bad unten', 4, [windowContactBathroomGnd])
|
||||
thermostatBathroomGnd.start()
|
||||
allLabeledItems.concat(thermostatBathroomGnd)
|
||||
allLabeledItems.push(thermostatBathroomGnd)
|
||||
|
||||
let thermostatBathroomGndCron = new Cron('thermostatBathroomGndCron', thermostatBathroomGnd, [
|
||||
{cronTime: '00 02 06 * * 1-5', output: '21.0'},
|
||||
@ -280,11 +281,11 @@ thermostatBathroomGndCron.start()
|
||||
|
||||
let windowContactBathroom1st = new MaxWindowContact('1st', 'Bathroom', 'WindowContact', 'Fenster Bad oben', 2)
|
||||
windowContactBathroom1st.start()
|
||||
allLabeledItems.concat(windowContactBathroom1st)
|
||||
allLabeledItems.push(windowContactBathroom1st)
|
||||
|
||||
let thermostatBathroom1st = new MaxThermostat('1st', 'Bathroom', 'Thermostat', 'Thermostat Bad oben', 3, [windowContactBathroom1st])
|
||||
thermostatBathroom1st.start()
|
||||
allLabeledItems.concat(thermostatBathroom1st)
|
||||
allLabeledItems.push(thermostatBathroom1st)
|
||||
|
||||
let thermostatBathroom1stCron = new Cron('thermostatBathroom1stCron', thermostatBathroom1st, [
|
||||
{cronTime: '00 00 06 * * 1-5', output: '21.0'},
|
||||
@ -299,21 +300,21 @@ thermostatBathroom1stCron.start()
|
||||
|
||||
let windowContactKitchen1 = new MaxWindowContact('Gnd', 'Kitchen', 'WindowContact1', 'Fenster Küche Garten', 11)
|
||||
windowContactKitchen1.start()
|
||||
allLabeledItems.concat(windowContactKitchen1)
|
||||
allLabeledItems.push(windowContactKitchen1)
|
||||
let windowContactKitchen2 = new MaxWindowContact('Gnd', 'Kitchen', 'WindowContact2', 'Fenster Küche Terassentür Garten', 10)
|
||||
windowContactKitchen2.start()
|
||||
allLabeledItems.concat(windowContactKitchen2)
|
||||
allLabeledItems.push(windowContactKitchen2)
|
||||
let windowContactKitchen3 = new MaxWindowContact('Gnd', 'Kitchen', 'WindowContact3', 'Fenster Küche Straße 1', 12)
|
||||
windowContactKitchen3.start()
|
||||
allLabeledItems.concat(windowContactKitchen3)
|
||||
allLabeledItems.push(windowContactKitchen3)
|
||||
let windowContactKitchen4 = new MaxWindowContact('Gnd', 'Kitchen', 'WindowContact4', 'Fenster Küche Straße 2', 13)
|
||||
windowContactKitchen4.start()
|
||||
allLabeledItems.concat(windowContactKitchen4)
|
||||
allLabeledItems.push(windowContactKitchen4)
|
||||
|
||||
let thermostatKitchen = new MaxThermostat('Gnd', 'Kitchen', 'Thermostat', 'Thermostat Küche', 14, [
|
||||
windowContactKitchen1, windowContactKitchen2, windowContactKitchen3, windowContactKitchen4])
|
||||
thermostatKitchen.start()
|
||||
allLabeledItems.concat(thermostatKitchen)
|
||||
allLabeledItems.push(thermostatKitchen)
|
||||
|
||||
let thermostatKitchenCron = new Cron('thermostatKitchenCron', thermostatKitchen, [
|
||||
{cronTime: '00 00 06 * * 1-5', output: '19.0'},
|
||||
@ -329,7 +330,7 @@ let relayBox = new RelayBoxThing('base', 'labor', 'relaybox', 'IoT/Command/Relay
|
||||
"Küche", "Herd", "Waschküche"
|
||||
])
|
||||
relayBox.start()
|
||||
allLabeledItems.concat(relayBox)
|
||||
allLabeledItems.push(relayBox)
|
||||
|
||||
// ----------------------------------------------------------------------------------------------------------
|
||||
let testFourButton = new HomematicFourButtonThing('Gnd', 'Hallway', 'TestButton', 9, [
|
||||
@ -372,8 +373,8 @@ testScene.start()
|
||||
let homekitObject : { [key:string]:{} } = {}
|
||||
let openhabList : string[] = []
|
||||
|
||||
logger.info("allLabeledItems")
|
||||
logger.info(JSON.stringify(allLabeledItems))
|
||||
// logger.info("allLabeledItems")
|
||||
// logger.info(JSON.stringify(allLabeledItems))
|
||||
|
||||
allLabeledItems.forEach((item: AItem) => {
|
||||
let exportData : ExportType|null = item.exportItem()
|
||||
@ -381,7 +382,15 @@ allLabeledItems.forEach((item: AItem) => {
|
||||
if ('id' in exportData['homekit']) {
|
||||
homekitObject[exportData['homekit']['id']] = exportData['homekit']['object']
|
||||
}
|
||||
openhabList.concat(exportData['openhab'])
|
||||
if (exportData['openhab'] instanceof Array) {
|
||||
let da : string[] = exportData['openhab'] as string[]
|
||||
da.forEach((o: string) => openhabList.push(o))
|
||||
} else {
|
||||
let da : string = exportData['openhab'] as string
|
||||
openhabList.push(da)
|
||||
}
|
||||
// logger.info("openHabList")
|
||||
// logger.info(JSON.stringify(openhabList))
|
||||
}
|
||||
})
|
||||
fs.writeFileSync(config.dict.homekitFile, JSON.stringify(homekitObject, null, 4))
|
||||
|
Reference in New Issue
Block a user