Fork of the espurna firmware for `mhsw` switches
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

350 lines
10 KiB

6 years ago
  1. //--------------------------------------------------------------------------------
  2. // PROGMEM definitions
  3. //--------------------------------------------------------------------------------
  4. //--------------------------------------------------------------------------------
  5. // Reset reasons
  6. //--------------------------------------------------------------------------------
  7. PROGMEM const char custom_reset_hardware[] = "Hardware button";
  8. PROGMEM const char custom_reset_web[] = "Reboot from web interface";
  9. PROGMEM const char custom_reset_terminal[] = "Reboot from terminal";
  10. PROGMEM const char custom_reset_mqtt[] = "Reboot from MQTT";
  11. PROGMEM const char custom_reset_rpc[] = "Reboot from RPC";
  12. PROGMEM const char custom_reset_ota[] = "Reboot after successful OTA update";
  13. PROGMEM const char custom_reset_http[] = "Reboot from HTTP";
  14. PROGMEM const char custom_reset_nofuss[] = "Reboot after successful NoFUSS update";
  15. PROGMEM const char custom_reset_upgrade[] = "Reboot after successful web update";
  16. PROGMEM const char custom_reset_factory[] = "Factory reset";
  17. PROGMEM const char* const custom_reset_string[] = {
  18. custom_reset_hardware, custom_reset_web, custom_reset_terminal,
  19. custom_reset_mqtt, custom_reset_rpc, custom_reset_ota,
  20. custom_reset_http, custom_reset_nofuss, custom_reset_upgrade,
  21. custom_reset_factory
  22. };
  23. //--------------------------------------------------------------------------------
  24. // Capabilities
  25. //--------------------------------------------------------------------------------
  26. PROGMEM const char espurna_modules[] =
  27. #if ALEXA_SUPPORT
  28. "ALEXA "
  29. #endif
  30. #if API_SUPPORT
  31. "API "
  32. #endif
  33. #if BROKER_SUPPORT
  34. "BROKER "
  35. #endif
  36. #if BUTTON_SUPPORT
  37. "BUTTON "
  38. #endif
  39. #if DEBUG_SERIAL_SUPPORT
  40. "DEBUG_SERIAL "
  41. #endif
  42. #if DEBUG_TELNET_SUPPORT
  43. "DEBUG_TELNET "
  44. #endif
  45. #if DEBUG_UDP_SUPPORT
  46. "DEBUG_UDP "
  47. #endif
  48. #if DEBUG_WEB_SUPPORT
  49. "DEBUG_WEB "
  50. #endif
  51. #if DOMOTICZ_SUPPORT
  52. "DOMOTICZ "
  53. #endif
  54. #if ENCODER_SUPPORT
  55. "ENCODER "
  56. #endif
  57. #if HOMEASSISTANT_SUPPORT
  58. "HOMEASSISTANT "
  59. #endif
  60. #if I2C_SUPPORT
  61. "I2C "
  62. #endif
  63. #if INFLUXDB_SUPPORT
  64. "INFLUXDB "
  65. #endif
  66. #if IR_SUPPORT
  67. "IR "
  68. #endif
  69. #if LED_SUPPORT
  70. "LED "
  71. #endif
  72. #if LLMNR_SUPPORT
  73. "LLMNR "
  74. #endif
  75. #if MDNS_CLIENT_SUPPORT
  76. "MDNS_CLIENT "
  77. #endif
  78. #if MDNS_SERVER_SUPPORT
  79. "MDNS_SERVER "
  80. #endif
  81. #if MQTT_SUPPORT
  82. "MQTT "
  83. #endif
  84. #if NETBIOS_SUPPORT
  85. "NETBIOS "
  86. #endif
  87. #if NOFUSS_SUPPORT
  88. "NOFUSS "
  89. #endif
  90. #if NTP_SUPPORT
  91. "NTP "
  92. #endif
  93. #if RFM69_SUPPORT
  94. "RFM69 "
  95. #endif
  96. #if RF_SUPPORT || defined(ITEAD_SONOFF_RFBRIDGE)
  97. "RF "
  98. #endif
  99. #if SCHEDULER_SUPPORT
  100. "SCHEDULER "
  101. #endif
  102. #if SENSOR_SUPPORT
  103. "SENSOR "
  104. #endif
  105. #if SPIFFS_SUPPORT
  106. "SPIFFS "
  107. #endif
  108. #if SSDP_SUPPORT
  109. "SSDP "
  110. #endif
  111. #if TELNET_SUPPORT
  112. "TELNET "
  113. #endif
  114. #if TERMINAL_SUPPORT
  115. "TERMINAL "
  116. #endif
  117. #if THERMOSTAT_SUPPORT
  118. "THERMOSTAT "
  119. #endif
  120. #if THERMOSTAT_DISPLAY_SUPPORT
  121. "THERMOSTAT_DISPLAY "
  122. #endif
  123. #if THINGSPEAK_SUPPORT
  124. "THINGSPEAK "
  125. #endif
  126. #if UART_MQTT_SUPPORT
  127. "UART_MQTT "
  128. #endif
  129. #if WEB_SUPPORT
  130. "WEB "
  131. #endif
  132. "";
  133. //--------------------------------------------------------------------------------
  134. // Sensors
  135. //--------------------------------------------------------------------------------
  136. #if SENSOR_SUPPORT
  137. PROGMEM const char espurna_sensors[] =
  138. #if AM2320_SUPPORT
  139. "AM2320_I2C "
  140. #endif
  141. #if ANALOG_SUPPORT
  142. "ANALOG "
  143. #endif
  144. #if BH1750_SUPPORT
  145. "BH1750 "
  146. #endif
  147. #if BMP180_SUPPORT
  148. "BMP180 "
  149. #endif
  150. #if BMX280_SUPPORT
  151. "BMX280 "
  152. #endif
  153. #if CSE7766_SUPPORT
  154. "CSE7766 "
  155. #endif
  156. #if DALLAS_SUPPORT
  157. "DALLAS "
  158. #endif
  159. #if DHT_SUPPORT
  160. "DHTXX "
  161. #endif
  162. #if DIGITAL_SUPPORT
  163. "DIGITAL "
  164. #endif
  165. #if ECH1560_SUPPORT
  166. "ECH1560 "
  167. #endif
  168. #if EMON_ADC121_SUPPORT
  169. "EMON_ADC121 "
  170. #endif
  171. #if EMON_ADS1X15_SUPPORT
  172. "EMON_ADX1X15 "
  173. #endif
  174. #if EMON_ANALOG_SUPPORT
  175. "EMON_ANALOG "
  176. #endif
  177. #if EVENTS_SUPPORT
  178. "EVENTS "
  179. #endif
  180. #if GEIGER_SUPPORT
  181. "GEIGER "
  182. #endif
  183. #if GUVAS12SD_SUPPORT
  184. "GUVAS12SD "
  185. #endif
  186. #if HLW8012_SUPPORT
  187. "HLW8012 "
  188. #endif
  189. #if MHZ19_SUPPORT
  190. "MHZ19 "
  191. #endif
  192. #if MICS2710_SUPPORT
  193. "MICS2710 "
  194. #endif
  195. #if MICS5525_SUPPORT
  196. "MICS5525 "
  197. #endif
  198. #if NTC_SUPPORT
  199. "NTC "
  200. #endif
  201. #if PMSX003_SUPPORT
  202. "PMSX003 "
  203. #endif
  204. #if PULSEMETER_SUPPORT
  205. "PULSEMETER "
  206. #endif
  207. #if PZEM004T_SUPPORT
  208. "PZEM004T "
  209. #endif
  210. #if SDS011_SUPPORT
  211. "SDS011 "
  212. #endif
  213. #if SENSEAIR_SUPPORT
  214. "SENSEAIR "
  215. #endif
  216. #if SHT3X_I2C_SUPPORT
  217. "SHT3X_I2C "
  218. #endif
  219. #if SI7021_SUPPORT
  220. "SI7021 "
  221. #endif
  222. #if SONAR_SUPPORT
  223. "SONAR "
  224. #endif
  225. #if TMP3X_SUPPORT
  226. "TMP3X "
  227. #endif
  228. #if V9261F_SUPPORT
  229. "V9261F "
  230. #endif
  231. #if VEML6075_SUPPORT
  232. "VEML6075 "
  233. #endif
  234. #if VL53L1X_SUPPORT
  235. "VL53L1X "
  236. #endif
  237. #if EZOPH_SUPPORT
  238. "EZOPH "
  239. #endif
  240. "";
  241. PROGMEM const unsigned char magnitude_decimals[] = {
  242. 0,
  243. 1, 0, 2, // THP
  244. 3, 0, 0, 0, 0, 0, 0, 0, // Power decimals
  245. 0, 0, 0, // analog, digital, event
  246. 0, 0, 0, // PM
  247. 0, 0,
  248. 0, 0, 3, // UVA, UVB, UVI
  249. 3, 0,
  250. 4, 4, // Geiger Counter decimals
  251. 0,
  252. 0, 0, 0, 3 // NO2, CO, Ohms, pH
  253. };
  254. PROGMEM const char magnitude_unknown_topic[] = "unknown";
  255. PROGMEM const char magnitude_temperature_topic[] = "temperature";
  256. PROGMEM const char magnitude_humidity_topic[] = "humidity";
  257. PROGMEM const char magnitude_pressure_topic[] = "pressure";
  258. PROGMEM const char magnitude_current_topic[] = "current";
  259. PROGMEM const char magnitude_voltage_topic[] = "voltage";
  260. PROGMEM const char magnitude_active_power_topic[] = "power";
  261. PROGMEM const char magnitude_apparent_power_topic[] = "apparent";
  262. PROGMEM const char magnitude_reactive_power_topic[] = "reactive";
  263. PROGMEM const char magnitude_power_factor_topic[] = "factor";
  264. PROGMEM const char magnitude_energy_topic[] = "energy";
  265. PROGMEM const char magnitude_energy_delta_topic[] = "energy_delta";
  266. PROGMEM const char magnitude_analog_topic[] = "analog";
  267. PROGMEM const char magnitude_digital_topic[] = "digital";
  268. PROGMEM const char magnitude_event_topic[] = "event";
  269. PROGMEM const char magnitude_pm1dot0_topic[] = "pm1dot0";
  270. PROGMEM const char magnitude_pm2dot5_topic[] = "pm2dot5";
  271. PROGMEM const char magnitude_pm10_topic[] = "pm10";
  272. PROGMEM const char magnitude_co2_topic[] = "co2";
  273. PROGMEM const char magnitude_lux_topic[] = "lux";
  274. PROGMEM const char magnitude_uva_topic[] = "uva";
  275. PROGMEM const char magnitude_uvb_topic[] = "uvb";
  276. PROGMEM const char magnitude_uvi_topic[] = "uvi";
  277. PROGMEM const char magnitude_distance_topic[] = "distance";
  278. PROGMEM const char magnitude_hcho_topic[] = "hcho";
  279. PROGMEM const char magnitude_geiger_cpm_topic[] = "ldr_cpm"; // local dose rate [Counts per minute]
  280. PROGMEM const char magnitude_geiger_sv_topic[] = "ldr_uSvh"; // local dose rate [µSievert per hour]
  281. PROGMEM const char magnitude_count_topic[] = "count";
  282. PROGMEM const char magnitude_no2_topic[] = "no2";
  283. PROGMEM const char magnitude_co_topic[] = "co";
  284. PROGMEM const char magnitude_resistance_topic[] = "resistance";
  285. PROGMEM const char magnitude_ph_topic[] = "ph";
  286. PROGMEM const char* const magnitude_topics[] = {
  287. magnitude_unknown_topic, magnitude_temperature_topic, magnitude_humidity_topic,
  288. magnitude_pressure_topic, magnitude_current_topic, magnitude_voltage_topic,
  289. magnitude_active_power_topic, magnitude_apparent_power_topic, magnitude_reactive_power_topic,
  290. magnitude_power_factor_topic, magnitude_energy_topic, magnitude_energy_delta_topic,
  291. magnitude_analog_topic, magnitude_digital_topic, magnitude_event_topic,
  292. magnitude_pm1dot0_topic, magnitude_pm2dot5_topic, magnitude_pm10_topic,
  293. magnitude_co2_topic, magnitude_lux_topic,
  294. magnitude_uva_topic, magnitude_uvb_topic, magnitude_uvi_topic,
  295. magnitude_distance_topic, magnitude_hcho_topic,
  296. magnitude_geiger_cpm_topic, magnitude_geiger_sv_topic,
  297. magnitude_count_topic,
  298. magnitude_no2_topic, magnitude_co_topic, magnitude_resistance_topic, magnitude_ph_topic
  299. };
  300. PROGMEM const char magnitude_empty[] = "";
  301. PROGMEM const char magnitude_celsius[] = "°C";
  302. PROGMEM const char magnitude_fahrenheit[] = "°F";
  303. PROGMEM const char magnitude_percentage[] = "%";
  304. PROGMEM const char magnitude_hectopascals[] = "hPa";
  305. PROGMEM const char magnitude_amperes[] = "A";
  306. PROGMEM const char magnitude_volts[] = "V";
  307. PROGMEM const char magnitude_watts[] = "W";
  308. PROGMEM const char magnitude_kw[] = "kW";
  309. PROGMEM const char magnitude_joules[] = "J";
  310. PROGMEM const char magnitude_kwh[] = "kWh";
  311. PROGMEM const char magnitude_ugm3[] = "µg/m³";
  312. PROGMEM const char magnitude_ppm[] = "ppm";
  313. PROGMEM const char magnitude_lux[] = "lux";
  314. PROGMEM const char magnitude_distance[] = "m";
  315. PROGMEM const char magnitude_mgm3[] = "mg/m³";
  316. PROGMEM const char magnitude_geiger_cpm[] = "cpm"; // Counts per Minute: Unit of local dose rate (Geiger counting)
  317. PROGMEM const char magnitude_geiger_sv[] = "µSv/h"; // µSievert per hour: 2nd unit of local dose rate (Geiger counting)
  318. PROGMEM const char magnitude_resistance[] = "ohm";
  319. PROGMEM const char* const magnitude_units[] = {
  320. magnitude_empty, magnitude_celsius, magnitude_percentage,
  321. magnitude_hectopascals, magnitude_amperes, magnitude_volts,
  322. magnitude_watts, magnitude_watts, magnitude_watts,
  323. magnitude_percentage, magnitude_joules, magnitude_joules,
  324. magnitude_empty, magnitude_empty, magnitude_empty,
  325. magnitude_ugm3, magnitude_ugm3, magnitude_ugm3,
  326. magnitude_ppm, magnitude_lux,
  327. magnitude_empty, magnitude_empty, magnitude_empty,
  328. magnitude_distance, magnitude_mgm3,
  329. magnitude_geiger_cpm, magnitude_geiger_sv, // Geiger counter units
  330. magnitude_empty, //
  331. magnitude_ppm, magnitude_ppm, // NO2 & CO2
  332. magnitude_resistance,
  333. magnitude_empty // pH
  334. };
  335. #endif