diff --git a/src/app/_services/generator.service.ts b/src/app/_services/generator.service.ts index 8293510..6077039 100644 --- a/src/app/_services/generator.service.ts +++ b/src/app/_services/generator.service.ts @@ -16,6 +16,7 @@ export class GeneratorService { @Input() device_id: string = ""; @Input() device_standalone: boolean = false; @Input() upperTopic: string = ""; + @Input() auto_topic: number = 2; updateObserver: EventEmitter = new EventEmitter(); diff --git a/src/app/entity/entity.component.css b/src/app/entity/entity.component.css index e95a034..2f613fb 100644 --- a/src/app/entity/entity.component.css +++ b/src/app/entity/entity.component.css @@ -20,8 +20,4 @@ padding: .25rem .75rem; border-radius: 1rem; /* width: 100%; */ -} - -.buttonOff path{ - fill:#535353; } \ No newline at end of file diff --git a/src/app/entity/entity.component.ts b/src/app/entity/entity.component.ts index 245446c..9309781 100644 --- a/src/app/entity/entity.component.ts +++ b/src/app/entity/entity.component.ts @@ -36,22 +36,31 @@ export class EntityComponent { @Input() entity_val_tpl: string = ""; @Input() entity_dev_cla: string = ""; - updateStateTopic() { - if (!this.auto_stat_t) return - this.state_topic = "" - if (this.generatorService.upperTopic != "") this.state_topic += this.generatorService.upperTopic + "/"; - if (this.entity_type != 0) this.state_topic += entity_types[this.entity_type][0] + "/" - if (this.generatorService.device_name != "") this.state_topic += this.generatorService.device_name + "/" - if (this.entity_name != "" && this.entity_uniq_id != "") this.state_topic += this.entity_name + "_" + this.entity_uniq_id + "/stat" - else if (this.entity_name != "") this.state_topic += this.entity_name + "/stat" - this.state_topic = this.state_topic.toLocaleLowerCase(); + update() { + if (this.generatorService.auto_topic == 2) { + this.state_topic = this.updateTopic('stat'); + this.entity_cmd_t = this.updateTopic('cmd'); + this.entity_bri_cmd_t = this.updateTopic('bri_cmd'); + } } - basemodelProperty(property: string) { - if (this.basemodel?.hasOwnProperty(property)) console.log(property) - return this.basemodel?.stat_t + updateTopic(topic: string) { + let topic_str = join( + '/', + this.generatorService.upperTopic, + entity_types[this.entity_type][0], + this.generatorService.device_name, + this.display_name, + topic + ).toLowerCase(); + return topic_str; } + // basemodelProperty(property: string) { + // if (this.basemodel?.hasOwnProperty(property)) console.log(property) + // return this.basemodel?.stat_t + // } + select_type(event: unknown) { let ent_type = entity_types[event as keyof typeof entity_types] let ent_class = ent_type[1]; @@ -64,7 +73,7 @@ export class EntityComponent { } lockStateTopic(event: any) { - this.auto_stat_t = false; + this.generatorService.auto_topic = 1; } create_entity() { diff --git a/src/app/generator/generator.component.css b/src/app/generator/generator.component.css index f6f266f..4cddcfb 100644 --- a/src/app/generator/generator.component.css +++ b/src/app/generator/generator.component.css @@ -2,4 +2,27 @@ background: #9D9D9D; border-radius: 1rem; padding: 1rem .8rem ; +} + +.customCheckboxContainer{ + display: flex; + flex-direction: row; + gap: .5rem; +} + +.customCheckboxContainer input[type="radio"]{ + display: none; +} + +.customCheckbox{ + width: 100%; + padding: .25rem 0; + text-align: center; + background: #B3B3B3; + transition: background .25s ease-in-out, color .25s ease-in-out; +} + +.customCheckboxContainer input:checked + label{ + background: var(--accent); + color: var(--secondary); } \ No newline at end of file diff --git a/src/app/generator/generator.component.html b/src/app/generator/generator.component.html index 75bad3f..88e5240 100644 --- a/src/app/generator/generator.component.html +++ b/src/app/generator/generator.component.html @@ -23,6 +23,16 @@

Bereich

+

Automatische Topics

+
+ + + + + + +
+ diff --git a/src/app/generator/generator.component.ts b/src/app/generator/generator.component.ts index 0eb97a1..7e9f1f4 100644 --- a/src/app/generator/generator.component.ts +++ b/src/app/generator/generator.component.ts @@ -20,7 +20,18 @@ export class GeneratorComponent { readonly useObject = Object; readonly useRandomString = randomString; + set auto_topic(value: number) { + this.generatorService.auto_topic = value; + console.log(this.generatorService.auto_topic); + } + get auto_topic(): string { + return String(this.generatorService.auto_topic); + } + + log(event:any){ + console.log(Number(event)); + } }