outputs.ino 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. void PC_pwrSwitchShort() {
  2. Serial.println("do pwrSwitchShort");
  3. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "cmdRes");
  4. mqttclient.publish(tmp_topic_pub, "PC_POWER", mqtt_outRetain);
  5. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "PC-POWER");
  6. mqttclient.publish(tmp_topic_pub, "ON", mqtt_outRetain);
  7. digitalWrite(PIN_OUT_POWERSW, OUT_POWERSW_ONSTATE);
  8. pwrSwitchStateOn=true;
  9. pwrSwitchOnAt=millis();
  10. pwrSwitchOffAfter=300;
  11. }
  12. void PC_pwrSwitchHold() {
  13. Serial.println("do pwrSwitchHold");
  14. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "cmdRes");
  15. mqttclient.publish(tmp_topic_pub, "PC_POWER_H", mqtt_outRetain);
  16. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "PC-POWER-HOLD");
  17. mqttclient.publish(tmp_topic_pub, "ON", mqtt_outRetain);
  18. digitalWrite(PIN_OUT_POWERSW, OUT_POWERSW_ONSTATE);
  19. pwrSwitchStateOn=true;
  20. pwrSwitchOnAt=millis();
  21. pwrSwitchOffAfter=5000;
  22. }
  23. void PC_pwrSwitchOffAfterTimeout() {
  24. if(pwrSwitchStateOn) {
  25. if( (millis() - pwrSwitchOnAt) > pwrSwitchOffAfter ) {
  26. digitalWrite(PIN_OUT_POWERSW, !OUT_POWERSW_ONSTATE);
  27. pwrSwitchStateOn=false;
  28. pwrSwitchOffAfter=0;
  29. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "PC-POWER");
  30. mqttclient.publish(tmp_topic_pub, "OFF", mqtt_outRetain);
  31. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "PC-POWER-HOLD");
  32. mqttclient.publish(tmp_topic_pub, "OFF", mqtt_outRetain);
  33. }
  34. }
  35. }
  36. void PC_resSwitch() {
  37. Serial.println("do resSwitch");
  38. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "cmdRes");
  39. mqttclient.publish(tmp_topic_pub, "PC_RESET", mqtt_outRetain);
  40. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "PC-RESET");
  41. mqttclient.publish(tmp_topic_pub, "ON", mqtt_outRetain);
  42. digitalWrite(PIN_OUT_RESETSW, OUT_RESETSW_ONSTATE);
  43. resSwitchStateOn=true;
  44. resSwitchOnAt=millis();
  45. resSwitchOffAfter=500;
  46. }
  47. void PC_resSwitchOffAfterTimeout() {
  48. if(resSwitchStateOn) {
  49. if( (millis() - resSwitchOnAt) > resSwitchOffAfter ) {
  50. digitalWrite(PIN_OUT_RESETSW, !OUT_RESETSW_ONSTATE);
  51. sprintf(tmp_topic_pub, "%s/%s", mqtt_topic_out, "PC-RESET");
  52. mqttclient.publish(tmp_topic_pub, "OFF", mqtt_outRetain);
  53. resSwitchStateOn=false;
  54. resSwitchOffAfter=0;
  55. }
  56. }
  57. }
  58. void PC_toOn() {
  59. if(PCstate != 1) PC_pwrSwitchShort();
  60. }
  61. void PC_toSleep() {
  62. if(PCstate == 1) PC_pwrSwitchShort();
  63. }