deviceStatus.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package deviceStatus
  2. import (
  3. "github.com/gogf/gf/database/gredis"
  4. )
  5. const (
  6. KeyPrefix = "status:device:"
  7. dataExpires = 7200
  8. )
  9. type SplitStatus struct {
  10. Power int `json:"power"`
  11. Mode int `json:"mode"`
  12. FanSpeed int `json:"fan_speed"`
  13. SetTemp int `json:"set_temp"`
  14. EnvTemp int `json:"env_temp"`
  15. EnvCo2 int `json:"env_co2"`
  16. EnvPm25 int `json:"env_pm25"`
  17. StatusCode int `json:"status_code"`
  18. AirMode int `json:"air_mode"`
  19. AcType int `json:"ac_type"`
  20. AirType int `json:"air_type"`
  21. HumType int `json:"hum_type"`
  22. }
  23. type DevStatusManager struct {
  24. redisClient *gredis.Redis
  25. }
  26. func NewDevStatusManager(host string, port int) *DevStatusManager {
  27. red := gredis.New(&gredis.Config{
  28. Host: host,
  29. Port: port,
  30. Db: 14,
  31. MaxActive: 100,
  32. })
  33. mgr := &DevStatusManager{
  34. redisClient: red,
  35. }
  36. return mgr
  37. }
  38. func (mgr *DevStatusManager) GetDeviceStatus(id string) (string, error) {
  39. key := KeyPrefix + id
  40. // get status from redis
  41. result, err := mgr.redisClient.DoVar("GET", key)
  42. if err != nil {
  43. return "", err
  44. }
  45. return result.String(), nil
  46. }