mirror of
https://github.com/MickMake/GoSungrow.git
synced 2025-03-27 18:11:43 +01:00
111 lines
5.8 KiB
Go
111 lines
5.8 KiB
Go
package mmMqtt
|
|
|
|
import "encoding/json"
|
|
|
|
|
|
// {
|
|
// "device": {
|
|
// "connections": [
|
|
// [
|
|
// "cbus_group_address",
|
|
// "0"
|
|
// ]
|
|
// ],
|
|
// "identifiers": [
|
|
// "cbus_bin_sensor_0"
|
|
// ],
|
|
// "manufacturer": "Clipsal",
|
|
// "model": "C-Bus Lighting Application",
|
|
// "name": "C-Bus Light 000",
|
|
// "sw_version": "cmqttd https://github.com/micolous/cbus",
|
|
// "via_device": "cmqttd"
|
|
// },
|
|
// "name": "C-Bus Light 000 (as binary sensor)",
|
|
// "stat_t": "homeassistant/binary_sensor/cbus_0/state",
|
|
// "unique_id": "cbus_bin_sensor_0"
|
|
// }
|
|
|
|
type BinarySensor struct {
|
|
Availability *Availability `json:"availability,omitempty" required:"false"`
|
|
AvailabilityMode string `json:"availability_mode,omitempty" required:"false"`
|
|
AvailabilityTemplate string `json:"availability_template,omitempty" required:"false"`
|
|
AvailabilityTopic string `json:"availability_topic,omitempty" required:"false"`
|
|
Device Device `json:"device,omitempty" required:"false"`
|
|
DeviceClass string `json:"device_class,omitempty" required:"false"`
|
|
EnabledByDefault bool `json:"enabled_by_default,omitempty" required:"false"`
|
|
Encoding string `json:"encoding,omitempty" required:"false"`
|
|
EntityCategory string `json:"entity_category,omitempty" required:"false"`
|
|
ExpireAfter int `json:"expire_after,omitempty" required:"false"`
|
|
ForceUpdate bool `json:"force_update,omitempty" required:"false"`
|
|
Icon string `json:"icon,omitempty" required:"false"`
|
|
JsonAttributesTemplate string `json:"json_attributes_template,omitempty" required:"false"`
|
|
JsonAttributesTopic string `json:"json_attributes_topic,omitempty" required:"false"`
|
|
LastResetValueTemplate string `json:"last_reset_value_template,omitempty" required:"false"`
|
|
Name string `json:"name,omitempty" required:"false"`
|
|
ObjectId string `json:"object_id,omitempty" required:"false"`
|
|
PayloadAvailable string `json:"payload_available,omitempty" required:"false"`
|
|
PayloadNotAvailable string `json:"payload_not_available,omitempty" required:"false"`
|
|
Qos int `json:"qos,omitempty" required:"false"`
|
|
StateClass string `json:"state_class,omitempty" required:"false"`
|
|
StateTopic string `json:"state_topic" required:"true"`
|
|
UniqueId string `json:"unique_id,omitempty" required:"false"`
|
|
UnitOfMeasurement string `json:"unit_of_measurement,omitempty" required:"false"`
|
|
ValueTemplate string `json:"value_template,omitempty" required:"false"`
|
|
|
|
OffDelay int `json:"off_delay,omitempty" required:"false"`
|
|
PayloadOff string `json:"pl_off,omitempty" required:"false"`
|
|
PayloadOn string `json:"pl_on,omitempty" required:"false"`
|
|
}
|
|
type Availability struct {
|
|
PayloadAvailable string `json:"payload_available,omitempty" required:"false"`
|
|
PayloadNotAvailable string `json:"payload_not_available,omitempty" required:"false"`
|
|
Topic string `json:"topic,omitempty" required:"true"`
|
|
ValueTemplate string `json:"value_template,omitempty" required:"false"`
|
|
}
|
|
type SensorState string
|
|
|
|
func (c *BinarySensor) Json() string {
|
|
j, _ := json.Marshal(*c)
|
|
return string(j)
|
|
}
|
|
|
|
|
|
type Sensor struct {
|
|
Availability *Availability `json:"availability,omitempty" required:"false"`
|
|
AvailabilityMode string `json:"availability_mode,omitempty" required:"false"`
|
|
AvailabilityTemplate string `json:"availability_template,omitempty" required:"false"`
|
|
AvailabilityTopic string `json:"availability_topic,omitempty" required:"false"`
|
|
Device Device `json:"device,omitempty" required:"false"`
|
|
DeviceClass string `json:"device_class,omitempty" required:"false"`
|
|
EnabledByDefault bool `json:"enabled_by_default,omitempty" required:"false"`
|
|
Encoding string `json:"encoding,omitempty" required:"false"`
|
|
EntityCategory string `json:"entity_category,omitempty" required:"false"`
|
|
ExpireAfter int `json:"expire_after,omitempty" required:"false"`
|
|
ForceUpdate bool `json:"force_update,omitempty" required:"false"`
|
|
Icon string `json:"icon,omitempty" required:"false"`
|
|
JsonAttributesTemplate string `json:"json_attributes_template,omitempty" required:"false"`
|
|
JsonAttributesTopic string `json:"json_attributes_topic,omitempty" required:"false"`
|
|
LastResetValueTemplate string `json:"last_reset_value_template,omitempty" required:"false"`
|
|
Name string `json:"name,omitempty" required:"false"`
|
|
ObjectId string `json:"object_id,omitempty" required:"false"`
|
|
PayloadAvailable string `json:"payload_available,omitempty" required:"false"`
|
|
PayloadNotAvailable string `json:"payload_not_available,omitempty" required:"false"`
|
|
Qos int `json:"qos,omitempty" required:"false"`
|
|
StateClass string `json:"state_class,omitempty" required:"false"`
|
|
StateTopic string `json:"state_topic" required:"true"`
|
|
UniqueId string `json:"unique_id,omitempty" required:"false"`
|
|
UnitOfMeasurement string `json:"unit_of_measurement,omitempty" required:"false"`
|
|
ValueTemplate string `json:"value_template,omitempty" required:"false"`
|
|
LastReset string `json:"last_reset,omitempty" required:"false"`
|
|
|
|
// StateFunc func() string `json:"-"`
|
|
//
|
|
// UpdateInterval float64 `json:"-"`
|
|
// ForceUpdateMQTT bool `json:"-"`
|
|
}
|
|
|
|
func (c *Sensor) Json() string {
|
|
j, _ := json.Marshal(*c)
|
|
return string(j)
|
|
}
|