RZL: Simplify config a bit by using template for tasmota topics

This commit is contained in:
Ranlvor 2018-08-04 15:50:14 +02:00
parent 8feb40a30b
commit 032056b2e3
Signed by untrusted user who does not match committer: Ranlvor
GPG key ID: 5E12D04750EF6F8E
2 changed files with 21 additions and 34 deletions

View file

@ -3,7 +3,7 @@ import type { Config } from "config/flowtypes";
import * as types from "config/types";
import { hex, rgb, rgba, rainbow } from "config/colors";
import { mdi, rawMdi, mdiBattery } from "config/icon";
import { esper_topics, esper_statistics, floalt, tradfri_remote } from "./utils";
import { esper_topics, esper_statistics, floalt, tradfri_remote, tasmota } from "./utils";
import * as onkyo from "./onkyo";
@ -26,17 +26,6 @@ const config: Config = {
},
defaultValue: "off"
},
snackbar: {
state: {
name: "stat/sonoff6/POWER",
type: types.option({ ON: "on", OFF: "off" })
},
command: {
name: "cmnd/sonoff6/power",
type: types.option({ on: "ON", off: "OFF" })
},
defaultValue: "off"
},
twinkle: {
state: {
name: "/service/openhab/out/pca301_twinkle/state",
@ -81,17 +70,6 @@ const config: Config = {
},
defaultValue: "off"
},
olymp_printer: {
state: {
name: "stat/sonoff2/POWER",
type: types.option({ ON: "on", OFF: "off" })
},
command: {
name: "cmnd/sonoff2/power",
type: types.option({ on: "ON", off: "OFF" })
},
defaultValue: "off"
},
flyfry: {
state: {
name: "/service/openhab/out/wifi_flyfry/state",
@ -149,17 +127,6 @@ const config: Config = {
},
defaultValue: ""
},
infoscreen: {
state: {
name: "stat/sonoff7/POWER",
type: types.option({ ON: "on", OFF: "off" })
},
command: {
name: "cmnd/sonoff7/power",
type: types.option({ on: "ON", off: "OFF" })
},
defaultValue: "off"
},
projector: {
state: {
name: "/service/beamer/state",
@ -243,6 +210,11 @@ const config: Config = {
defaultValue: "0"
}
},
//Tasmota-Dosen
tasmota.topics(2, "olymp_printer"),
tasmota.topics(6, "snackbar"),
tasmota.topics(7, "infoscreen"),
//Kuechen-Floalts
floalt.topics("65537"),
floalt.topics("65538"),

View file

@ -42,6 +42,21 @@ export const esper_topics = (chip_id: string, name: string) => ({
}
});
export const tasmota = {
topics: (id: string, name: string) => ({
[name]: {
state: {
name: `stat/sonoff${id}/POWER`,
type: types.option({ ON: "on", OFF: "off" })
},
command: {
name: `cmnd/sonoff${id}/power`,
type: types.option({ on: "ON", off: "OFF" })
},
defaultValue: "off"
}
})
}
export const floalt = {
color: (light_id: string) => `floalt_${light_id}_color`,
brightness: (light_id: string) => `floalt_${light_id}_brightness`,