|
|
@@ -112,7 +112,7 @@ func (m *SceneService) SubmitAction(args rpcs.ArgsSubmitSceneAction, reply *rpcs
|
|
|
}
|
|
|
scene.Status = 1
|
|
|
m.scenes.Set(scene.Id, scene)
|
|
|
- return m.saveSceneRedis(scene)
|
|
|
+ return m.updateSceneStatus(scene)
|
|
|
case "stop":
|
|
|
err = srv.Stop(scene.Id)
|
|
|
if err != nil {
|
|
|
@@ -121,7 +121,7 @@ func (m *SceneService) SubmitAction(args rpcs.ArgsSubmitSceneAction, reply *rpcs
|
|
|
}
|
|
|
scene.Status = 0
|
|
|
m.scenes.Set(scene.Id, scene)
|
|
|
- return m.saveSceneRedis(scene)
|
|
|
+ return m.updateSceneStatus(scene)
|
|
|
case "do":
|
|
|
j := gjson.New(scene.Config)
|
|
|
err = m.doAction(scene.Id, j.GetString("actions"))
|
|
|
@@ -163,6 +163,19 @@ func (m *SceneService) saveSceneRedis(scene SceneInfo) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
+func (m *SceneService) updateSceneStatus(scene SceneInfo) error {
|
|
|
+ sceneArgs := rpcs.ArgsScene{
|
|
|
+ Key: fmt.Sprintf("scene:%s:%s", scene.SceneType, scene.Id),
|
|
|
+ Status: scene.Status,
|
|
|
+ }
|
|
|
+ sceneReply := rpcs.ReplyEmptyResult{}
|
|
|
+ err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.UpdateSceneStatus", sceneArgs, &sceneReply)
|
|
|
+ if err != nil {
|
|
|
+ server.Log.Errorf("save scene error: Id: %s, error: %v", scene.Id, err)
|
|
|
+ }
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
func (m *SceneService) delSceneRedis(scene SceneInfo) error {
|
|
|
sceneArgs := rpcs.ArgsScene{
|
|
|
Key: fmt.Sprintf("scene:%s:%s", scene.SceneType, scene.Id),
|