ESPEasy系统变量详解:从基础到高级应用

ESPEasy系统变量详解:从基础到高级应用

ESPEasy Easy MultiSensor device based on ESP8266/ESP32 ESPEasy 项目地址: https://gitcode.com/gh_mirrors/es/ESPEasy

什么是ESPEasy系统变量

ESPEasy系统变量是预定义的变量集合,它们提供了访问设备状态、环境信息和系统参数的便捷方式。这些变量以百分号(%)包围的形式使用,可以在规则、模板和显示配置中调用,极大地增强了ESPEasy的灵活性和功能性。

系统变量分类与应用

1. 设备基本信息变量

这些变量提供了设备的基本标识和状态信息:

  • %sysname%:设备在Web界面中配置的名称
  • %unit%:设备单元编号(整数)
  • %unit_0%:3位数字格式的设备单元编号(如001)
  • %mac%:设备的MAC地址
  • %mac_int%:MAC地址的整数表示(仅后24位)
  • %board_name%:设备主板描述信息

应用场景:在MQTT主题或HTTP请求中使用这些变量可以创建唯一的设备标识,便于在多设备环境中区分数据来源。

2. 时间日期相关变量

ESPEasy提供了丰富的时间格式选项:

  • 基础时间变量:

    • %systime%:当前时间(HH:MM:SS)
    • %lcltime%:完整日期时间(YYYY-MM-DD HH:MM:SS)
    • %unixtime%:Unix时间戳
  • 格式化选项:

    • %syshour_0%:补零的小时(01-23)
    • %sysmonth_s%:月份缩写(Jan-Dec)
    • %sysweekday_s%:星期缩写(Sun-Sat)
  • 日出日落计算:

    • %sunrise%/%sunset%:支持偏移计算(如%sunrise+30m%)
    • %s_sunrise%:日出秒数(自午夜起)

专业提示:在光照控制规则中,可以使用%sunrise+30m%这样的表达式来实现日出后30分钟才关闭灯光的逻辑。

3. 网络状态变量

  • %ip%:当前IP地址
  • %ssid%:连接的WiFi名称
  • %rssi%:WiFi信号强度(dBm)
  • %iswifi%:WiFi连接状态(位掩码)
  • %ismqtt%:MQTT连接状态

调试技巧:通过监控%iswifi%的值可以判断WiFi连接的不同阶段,对于网络问题诊断很有帮助。

4. 系统运行状态变量

  • %uptime%:运行时间(分钟)
  • %uptime_ms%:运行时间(毫秒)
  • %bootcause%:启动原因代码
  • %vcc%:电源电压(VCC版本固件专用)
  • %fs_free%:文件系统剩余空间

重要提示%bootcause%可以帮助判断设备重启原因,在异常重启后采取相应措施。

标准转换函数

ESPEasy内置了多种实用的转换函数:

  1. 单位转换

    • %c_c2f%(20.4):摄氏转华氏
    • %c_ms2Bft%(5.1):风速(m/s)转蒲福风级
  2. 环境计算

    • %c_dew_th%(18.6,67):根据温湿度计算露点
    • %c_alt_pres_sea%(850,1000):根据气压计算海拔
  3. 时间格式化

    • %c_m2dh%(1900):分钟转"天小时"格式
    • %c_s2dhms%(100000):秒转"天小时分钟秒"格式
  4. 设备网络信息

    • %c_u2ip%(1,0):根据单元号获取IP
    • %c_utype%(1):获取设备类型代码

应用实例:在气象站项目中,可以使用%c_dew_th%([temp#T],[humidity#H])直接计算并显示露点温度。

任务公式的高级应用

ESPEasy允许在任务中使用公式进行数据处理:

  1. 基本运算

    (%value%*9/5)+32  // 摄氏转华氏
    
  2. 引用其他任务值

    %c_dew_th%(%value%,[bme#H])  // 使用BME280的湿度值计算露点
    
  3. FIR滤波器实现

    %pvalue% + (%value%-%pvalue%)/4  // 权重0.25的简单滤波器
    

工程建议:对于波动较大的传感器数据,使用FIR滤波器可以平滑数据,但要注意滤波系数与响应速度的平衡。

最佳实践与注意事项

  1. 变量类型注意

    • 部分变量输出字符串,不能直接用于数值比较
    • 文档中标记为"Float output"的变量可用于数学运算
  2. 性能考虑

    • 复杂的公式计算会增加处理负担
    • 频繁调用的规则中应避免过多转换运算
  3. 调试技巧

    • 在规则中使用logentry命令输出变量值进行调试
    • 利用Web界面中的系统变量页面查看实时值
  4. 兼容性提示

    • 部分功能需要特定版本的固件支持
    • 某些转换函数是后期添加的,需确认固件版本

通过熟练掌握ESPEasy系统变量和转换函数,您可以构建出更加智能和灵活的物联网解决方案,充分发挥ESPEasy平台的潜力。

ESPEasy Easy MultiSensor device based on ESP8266/ESP32 ESPEasy 项目地址: https://gitcode.com/gh_mirrors/es/ESPEasy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜薇剑Dale

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值