diff --git a/src/udi/ENVDB.uditest b/src/udi/ENVDB.uditest index ad5498a..bdbe407 100644 --- a/src/udi/ENVDB.uditest +++ b/src/udi/ENVDB.uditest @@ -1,6 +1,6 @@ -PGUSER="uditest" +PGUSER="udi-hottis" PGHOST=`kubectl get services traefik -n system -o jsonpath="{.status.loadBalancer.ingress[0].ip}"` -PGPASSWORD=`kubectl get secrets uditest-db-cred -n udi-test -o jsonpath="{.data.PGPASSWORD}" | base64 --decode` +PGPASSWORD=`kubectl get secrets default-udi-db-cred -n udi -o jsonpath="{.data.PGPASSWORD}" | base64 --decode` PGSSLMODE=require PGDATABASE="uditest" export PGUSER PGHOST PGPASSWORD PGSSLMODE PGDATABASE diff --git a/src/udi/config-test.json b/src/udi/config-test.json index ecc68f5..d31c720 100644 --- a/src/udi/config-test.json +++ b/src/udi/config-test.json @@ -4,72 +4,6 @@ "tlsEnable": "false" }, "topicMappings": [ - { - "topics": [ "IoT/PV/Values" ], - "handler": "PV", - "id": "PV", - "config": { - "attributes": { - } - } - }, - { - "topics": [ "IoT/MBGW3/Measurement" ], - "handler": "MBGW3", - "id": "MBGW3", - "config": { - "attributes": { - } - } - }, - { - "topics": [ "dt1/ai/periodic/1" ], - "handler": "DT1T", - "id": "DT1T.0", - "config": { - "attributes": { - "Application": "Temperature Wago", - "Device": "Freezer", - "HardLow": "-273", - "SoftLow": "-50", - "SoftHigh": "20", - "HardHigh": "100" - } - } - }, - { - "topics": [ "dt1/ai/periodic/3" ], - "handler": "DT1T", - "id": "DT1T.1", - "config": { - "attributes": { - "Application": "Temperature Wago", - "Device": "Outdoor", - "HardLow": "-273", - "SoftLow": "-60", - "SoftHigh": "60", - "HardHigh": "100" - } - } - }, - { - "topics": [ "IoT/OneWireGW/Bus 1/#" ], - "handler": "SVER", - "id": "SVER0", - "config": { - "databaseConnStr": "", - "attributes": { - "application": "Temperature Heating", - "payloadRegex": "(\\d+(\\.\\d+)?)\\s*([^0-9\\s]\\S*)", - "deviceFrom": "topic", - "devicePart": "3", - "valueFrom": "payload", - "valuePart": "1", - "unitFrom": "payload", - "unitPart": "3" - } - } - }, { "topics": [ "NR/Multisensor/+/Temperatur" ], "handler": "SVEJ", @@ -85,46 +19,18 @@ } }, { - "topics": [ "NR/Multisensor/+/Feuchte" ], + "topics": [ "zigbee2mqtt/+" ], "handler": "SVEJ", "id": "SVEJ1", "config": { "databaseConnStr": "", "attributes": { - "application": "Humidity Multisensor", - "deviceSelector": "T:2", - "valueSelector": "J:$.CurrentRelativeHumidity", - "unitSelector": "C:%" - } - } - }, - { - "topics": [ "shellyplusht/+/status/temperature:0" ], - "handler": "SVEJ", - "id": "SVEJ2", - "config": { - "databaseConnStr": "", - "attributes": { - "application": "Temperature Shelly Plus HT", - "deviceSelector": "T:1", - "valueSelector": "J:$.tC", + "application": "Temperature Multisensor", + "deviceSelector": "L:1", + "valueSelector": "J:$.temperature", "unitSelector": "C:°C" } } - }, - { - "topics": [ "shellyplusht/+/status/humidity:0" ], - "handler": "SVEJ", - "id": "SVE4", - "config": { - "databaseConnStr": "", - "attributes": { - "application": "Humidity Shelly Plus HT", - "deviceSelector": "T:1", - "valueSelector": "J:$.rh", - "unitSelector": "C:%" - } - } } ], "archiver": { diff --git a/src/udi/database/database.go b/src/udi/database/database.go index c04f804..8374e31 100644 --- a/src/udi/database/database.go +++ b/src/udi/database/database.go @@ -70,5 +70,27 @@ func (self *DatabaseHandle) GetDeviceByLabelAndApplication(applicationLabel stri return &device, nil } +func (self *DatabaseHandle) GetDeviceByLabel(deviceLabel string) (*Device, error) { + if ! self.initialized { + err := fmt.Errorf("Database connection not initialized") + return nil, err + } + + var device Device + result := self.dbh. + Preload("Application"). + Preload("DeviceType"). + Where("devices.label = ?", deviceLabel). + First(&device) + + if result.Error != nil { + err := fmt.Errorf("Query failed: %s", result.Error) + return nil, err + } + + return &device, nil +} + +