123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package deviceStatus
- import (
- "github.com/gogf/gf/database/gredis"
- )
- var StatusKey = map[string]string{
- "1pw4umsiq2hd4w7p7o68k69bb0bnlzw0": "device:split:status:",
- "1umcgk0i6m0ch45z0hbgrf8900k4s576": "device:main:status:",
- "1pw4umsgxzld8kwvsm28ndz2f0dktty8": "device:main:status:",
- "1pw4ums6ty0d5pyua33f65h100yf45z2": "device:ffx:status:",
- "1pw4umsgxzlda7g4p1zcd6v2m0ukxftv": "device:newfan:status:",
- "1pw4umsimu4dcvsvph9iepl300r7d7v9": "device:wifi:status:",
- "1pw4umsgxzldbd8wyvknk623f0e2obdb": "device:fp:status:",
- "1pw4umsgxzld9eikeie2o822g0hy0yyn": "device:th4G:status:",
- "1pw4umsiq2hd4hplv2mhp9mba0l1bv87": "device:twb:status:",
- "1pw4umsgxzldbd6c46r0qpn3e0jekjgj": "device:wj:status:",
- }
- var InfoKey = map[string]string{
- "1pw4umsiq2hd4w7p7o68k69bb0bnlzw0": "device:split:info:",
- "1umcgk0i6m0ch45z0hbgrf8900k4s576": "device:main:info:",
- "1pw4umsgxzld8kwvsm28ndz2f0dktty8": "device:main:info:",
- "1pw4ums6ty0d5pyua33f65h100yf45z2": "device:ffx:info:",
- "1pw4umsgxzlda7g4p1zcd6v2m0ukxftv": "device:newfan:info:",
- "1pw4umsimu4dcvsvph9iepl300r7d7v9": "device:wifi:info:",
- "1pw4umsgxzldbd8wyvknk623f0e2obdb": "device:fp:info:",
- "1pw4umsgxzld9eikeie2o822g0hy0yyn": "device:th4G:info:",
- "1pw4umsiq2hd4hplv2mhp9mba0l1bv87": "device:twb:info:",
- "1pw4umsgxzldbd6c46r0qpn3e0jekjgj": "device:wj:info:",
- }
- var EventKey = map[string]string{
- "1pw4umsiq2hd4w7p7o68k69bb0bnlzw0": "device:split:event:",
- "1umcgk0i6m0ch45z0hbgrf8900k4s576": "device:main:event:",
- "1pw4umsgxzld8kwvsm28ndz2f0dktty8": "device:main:event:",
- "1pw4ums6ty0d5pyua33f65h100yf45z2": "device:ffx:event:",
- "1pw4umsgxzlda7g4p1zcd6v2m0ukxftv": "device:newfan:event:",
- "1pw4umsimu4dcvsvph9iepl300r7d7v9": "device:wifi:event:",
- "1pw4umsgxzldbd8wyvknk623f0e2obdb": "device:fp:event:",
- "1pw4umsgxzld9eikeie2o822g0hy0yyn": "device:th4G:event:",
- "1pw4umsiq2hd4hplv2mhp9mba0l1bv87": "device:twb:event:",
- "1pw4umsgxzldbd6c46r0qpn3e0jekjgj": "device:wj:event:",
- }
- const (
- dataExpires = 7200
- )
- type SplitStatus struct {
- Power int `json:"power"`
- Mode int `json:"mode"`
- FanSpeed int `json:"fan_speed"`
- SetTemp int `json:"set_temp"`
- EnvTemp int `json:"env_temp"`
- EnvCo2 int `json:"env_co2"`
- EnvPm25 int `json:"env_pm25"`
- StatusCode int `json:"status_code"`
- AirMode int `json:"air_mode"`
- AcType int `json:"ac_type"`
- AirType int `json:"air_type"`
- HumType int `json:"hum_type"`
- }
- type DevStatusManager struct {
- redisClient *gredis.Redis
- }
- func NewDevStatusManager(host string, port int) *DevStatusManager {
- red := gredis.New(&gredis.Config{
- Host: host,
- Port: port,
- Db: 14,
- MaxActive: 100,
- })
- mgr := &DevStatusManager{
- redisClient: red,
- }
- return mgr
- }
- func (mgr *DevStatusManager) GetDeviceStatus(id, productId string) (string, error) {
- key := StatusKey[productId] + id
- // get status from redis
- result, err := mgr.redisClient.DoVar("GET", key)
- if err != nil {
- return "", err
- }
- return result.String(), nil
- }
- func (mgr *DevStatusManager) GetDeviceInfo(id, productId string) (string, error) {
- key := InfoKey[productId] + id
- // get status from redis
- result, err := mgr.redisClient.DoVar("GET", key)
- if err != nil {
- return "", err
- }
- return result.String(), nil
- }
- func (mgr *DevStatusManager) GetDeviceStatusByKey(key string) (string, error) {
- // get status from redis
- result, err := mgr.redisClient.DoVar("GET", key)
- if err != nil {
- return "", err
- }
- return result.String(), nil
- }
- func (mgr *DevStatusManager) GetWeatherInfo(location string) (string, error) {
- key := "weather:city:" + location
- result, err := mgr.redisClient.DoVar("GET", key)
- if err != nil {
- return "", err
- }
- return result.String(), nil
- }
- func (mgr *DevStatusManager) SetWeatherInfo(location string, info string) error {
- key := "weather:city:" + location
- _, err := mgr.redisClient.DoVar("SET", key, info)
- if err != nil {
- return err
- }
- _, err = mgr.redisClient.Do("EXPIRE", key, 3600)
- if err != nil {
- return err
- }
- return nil
- }
- func (mgr *DevStatusManager) GetDeviceEvent(id, productId string) (string, error) {
- key := EventKey[productId] + id
- result, err := mgr.redisClient.DoVar("GET", key)
- if err != nil {
- return "", err
- }
- return result.String(), nil
- }
|