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) }