如何从多个调用特定的嵌套函数

问题描述

我有一个名为 kasaScenes函数和特定的嵌套“场景”函数,它们根据我需要激活的“场景”执行 POST。 (例如:scenetooColdscenetooHot 等)。因此,稍后在该过程中,将传感器的温度与阈值进行比较,如果它满足特定标准(例如:如果 sensor.temperature

function kasaScenes() {

  function scenetooCold() {
    post_content_gAC = '{"method":"passthrough","params":{"deviceid":"' + gACID + '","requestData":"{\\"system\\":{\\"set_relay_state\\":{\\"state\\":' + stateOff + '}}}","token":"' + kasa_token + '"}}';
    post_content_gExhaust = '{"method":"passthrough","params":{"deviceid":"' + gExhaustID + '","token":"' + kasa_token + '"}}';
    post_content_gFans = '{"method":"passthrough","params":{"deviceid":"' + gFansID + '","requestData":"{\\"system\\":{\\"set_relay_state\\":{\\"state\\":' + stateOn + '}}}","token":"' + kasa_token + '"}}';
    post_content_gHeater = '{"method":"passthrough","params":{"deviceid":"' + gHeaterID + '","token":"' + kasa_token + '"}}';
    post_content_gCeiling = '{"method":"passthrough","params":{"deviceid":"' + gCeilingID + '","token":"' + kasa_token + '"}}';
    //<~POST Return~>
    returnValue_gAC = KumoApp.httpCallExternal(post_url,"POST",post_content_gAC);
    returnValue_gExhaust = KumoApp.httpCallExternal(post_url,post_content_gExhaust);
    returnValue_gFans = KumoApp.httpCallExternal(post_url,post_content_gFans);
    returnValue_gHeater = KumoApp.httpCallExternal(post_url,post_content_gHeater);
    returnValue_gCeiling = KumoApp.httpCallExternal(post_url,post_content_gCeiling);

  }

  function scenetooHot() {
    post_content_gAC = '{"method":"passthrough",post_content_gCeiling);

  }

  function scenenormalTemp() {
    post_content_gCeiling = '{"method":"passthrough",post_content_gHeater);

  }

  function scenetooWet() {
    post_content_gCeiling = '{"method":"passthrough","token":"' + kasa_token + '"}}';
    post_content_gDehumidifier = '{"method":"passthrough","params":{"deviceid":"' + gDehumidifierID + '","token":"' + kasa_token + '"}}';
    post_content_gHumidifier = '{"method":"passthrough","params":{"deviceid":"' + gHumidifierID + '","token":"' + kasa_token + '"}}';
    //<~POST Return~>
    returnValue_gCeiling = KumoApp.httpCallExternal(post_url,post_content_gCeiling);
    returnValue_gExhaust = KumoApp.httpCallExternal(post_url,post_content_gFans);
    returnValue_gDehumidifier = KumoApp.httpCallExternal(post_url,post_content_gDehumidifier);
    returnValue_gHumidifier = KumoApp.httpCallExternal(post_url,post_content_gHumidifier);

  }
}

解决方法

我通过使用@Barmar 提出的建议得到了答案。我不知道在哪里可以标记这个答案。

我按照他的建议从外部函数内部调用内部函数。