deviceStatus.go 1.4 KB

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