diff --git a/src/app/entity-data/entity-data.component.css b/src/app/entity-data/entity-data.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/entity-data/entity-data.component.html b/src/app/entity-data/entity-data.component.html
new file mode 100644
index 0000000..ef15b2c
--- /dev/null
+++ b/src/app/entity-data/entity-data.component.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
Brightness Command Topic
+
+
+
+
+
Unit of meassurement
+
+
+
+
+
Device Class
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/entity-data/entity-data.component.spec.ts b/src/app/entity-data/entity-data.component.spec.ts
new file mode 100644
index 0000000..cfc7ab7
--- /dev/null
+++ b/src/app/entity-data/entity-data.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { EntityDataComponent } from './entity-data.component';
+
+describe('EntityDataComponent', () => {
+ let component: EntityDataComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [EntityDataComponent]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(EntityDataComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/entity-data/entity-data.component.ts b/src/app/entity-data/entity-data.component.ts
new file mode 100644
index 0000000..19d0276
--- /dev/null
+++ b/src/app/entity-data/entity-data.component.ts
@@ -0,0 +1,152 @@
+import { Component, Input } from '@angular/core';
+import { MQTTEntity } from '../_models/mqtt_base';
+import { EntityService } from '../_services/entity.service';
+import { GeneratorService } from '../_services/generator.service';
+
+@Component({
+ selector: 'app-entity-data',
+ templateUrl: './entity-data.component.html',
+ styleUrl: './entity-data.component.css',
+})
+export class EntityDataComponent {
+ @Input() entity_type: number = 0;
+ @Input() basemodel!: MQTTEntity;
+ constructor(
+ private entityService: EntityService,
+ private generatorService: GeneratorService
+ ) {
+ if (generatorService.selected_entity) {
+ this.basemodel = generatorService.selected_entity;
+ }
+ }
+
+ _entity_name: string = '';
+ _entity_uniq_id: string = '';
+ _entity_stat_t: string = '';
+ _entity_cmd_t: string = '';
+ _entity_bri_cmd_t: string = '';
+ _entity_pl_off: string = '';
+ _entity_pl_on: string = '';
+ _entity_unit_of_meas: string = '';
+ _entity_val_tpl: string = '';
+ _entity_dev_cla: string = '';
+
+ get entity_name() {
+ let base = this.basemodel.getProperty('name');
+ if (base == '') {
+ this.basemodel.setProperty('name', this._entity_name);
+ return this._entity_name;
+ }
+ return base;
+ }
+
+ set entity_name(data: string) {
+ this._entity_name = data;
+ this.basemodel.setProperty('name', data);
+ }
+
+ get entity_uniq_id() {
+ let base = this.basemodel.getProperty('uniq_id');
+ if (base == '') {
+ this.basemodel.setProperty('uniq_id', this._entity_uniq_id);
+ return this._entity_uniq_id;
+ }
+ return base;
+ }
+
+ set entity_uniq_id(data: string) {
+ this._entity_uniq_id = data;
+ this.basemodel.setProperty('uniq_id', data);
+ }
+
+ get entity_stat_t() {
+ let base = this.basemodel.getProperty('stat_t');
+ if (base == 'state/topic') {
+ this.basemodel.setProperty('stat_t', this._entity_stat_t);
+ return this._entity_stat_t;
+ }
+ return base;
+ }
+
+ set entity_stat_t(data: string) {
+ this._entity_stat_t = data;
+ this.basemodel.setProperty('stat_t', data);
+ }
+
+ get entity_cmd_t() {
+ let base = this.basemodel.getProperty('cmd_t');
+ if (base == 'command/topic') {
+ this.basemodel.setProperty('cmd_t', this._entity_cmd_t);
+ return this._entity_cmd_t;
+ }
+ return base;
+ }
+
+ set entity_cmd_t(data: string) {
+ this._entity_cmd_t = data;
+ this.basemodel.setProperty('cmd_t', data);
+ }
+
+ get entity_bri_cmd_t() {
+ let base = this.basemodel.getProperty('bri_cmd_t');
+ if (base == 'brightness/command/topic') {
+ this.basemodel.setProperty('bri_cmd_t', this._entity_bri_cmd_t);
+ return this._entity_bri_cmd_t;
+ }
+ return base;
+ }
+
+ set entity_bri_cmd_t(data: string) {
+ this._entity_bri_cmd_t = data;
+ this.basemodel.setProperty('bri_cmd_t', data);
+ }
+
+ get entity_pl_off() {
+ return this._entity_pl_off;
+ }
+
+ set entity_pl_off(data: string) {
+ this._entity_pl_off = data;
+ this.basemodel.setProperty('pl_off', data);
+ }
+
+ get entity_pl_on() {
+ return this._entity_pl_on;
+ }
+
+ set entity_pl_on(data: string) {
+ this._entity_pl_on = data;
+ this.basemodel.setProperty('pl_on', data);
+ }
+
+ get entity_unit_of_meas() {
+ return this._entity_unit_of_meas;
+ }
+
+ set entity_unit_of_meas(data: string) {
+ this._entity_unit_of_meas = data;
+ this.basemodel.setProperty('unit_of_meas', data);
+ }
+
+ get entity_val_tpl() {
+ return this._entity_val_tpl;
+ }
+
+ set entity_val_tpl(data: string) {
+ this._entity_val_tpl = data;
+ this.basemodel.setProperty('val_tpl', data);
+ }
+
+ get entity_dev_cla() {
+ return this._entity_dev_cla;
+ }
+
+ set entity_dev_cla(data: string) {
+ this._entity_dev_cla = data;
+ this.basemodel.setProperty('dev_cla', data);
+ }
+
+ hasProperty(property: string) {
+ return this.basemodel.attrs.has(property);
+ }
+}
diff --git a/src/app/entity-output/entity-output.component.css b/src/app/entity-output/entity-output.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/entity-output/entity-output.component.html b/src/app/entity-output/entity-output.component.html
new file mode 100644
index 0000000..01cc950
--- /dev/null
+++ b/src/app/entity-output/entity-output.component.html
@@ -0,0 +1 @@
+entity-output works!
diff --git a/src/app/entity-output/entity-output.component.spec.ts b/src/app/entity-output/entity-output.component.spec.ts
new file mode 100644
index 0000000..fea0300
--- /dev/null
+++ b/src/app/entity-output/entity-output.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { EntityOutputComponent } from './entity-output.component';
+
+describe('EntityOutputComponent', () => {
+ let component: EntityOutputComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [EntityOutputComponent]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(EntityOutputComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/entity-output/entity-output.component.ts b/src/app/entity-output/entity-output.component.ts
new file mode 100644
index 0000000..df60952
--- /dev/null
+++ b/src/app/entity-output/entity-output.component.ts
@@ -0,0 +1,10 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'app-entity-output',
+ templateUrl: './entity-output.component.html',
+ styleUrl: './entity-output.component.css'
+})
+export class EntityOutputComponent {
+
+}