『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 370|回复: 5

[技术探讨] ai问问来协助写程序,好像挺不错。

[复制链接]

2

主题

28

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
金钱
246
HASS币
0
发表于 2024-3-11 15:43:42 | 显示全部楼层 |阅读模式
我的问题简单描述如下:
使用 esphome平台 生成如下 yaml文件,请实现如下要求:
有两个继电器,其中一个为A ,另外一个为B
当A及B为1时 C等于3
当A为0 B为1时 C等于2
当 A及B均为0时 C等于1


AI问问回答如下:
在ESPHome中,你可以使用模板或lambda函数来根据其他传感器的状态动态地设置某个传感器的值。然而,ESPHome并没有直接提供“如果...那么...”这样的条件语句来设置传感器的值。但你可以使用`switch`语句或者`if`语句在lambda函数中来达到类似的效果。

以下是一个ESPHome YAML配置文件的示例,其中定义了两个继电器(假设为GPIO引脚)以及一个计算得出的传感器C,其值基于A和B的状态:

```yaml
esphome:
  name: relay_controller
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# 假设GPIO 2和GPIO 4分别连接到继电器A和B
gpio:
  - pin: GPIO2
    mode: OUTPUT
    id: relay_a
  - pin: GPIO4
    mode: OUTPUT
    id: relay_b

# 定义一个传感器C,它将根据A和B的状态动态地设置值
sensor:
  - platform: template
    id: sensor_c
    name: "Sensor C"
    unit_of_measurement: "Unit"
    accuracy_decimals: 0
    value_template: >
      {{%
        int a_state = id(relay_a).state;
        int b_state = id(relay_b).state;
        int c_value;
        if (a_state == 1 && b_state == 1) {
          c_value = 3;
        } else if (a_state == 0 && b_state == 1) {
          c_value = 2;
        } else if (a_state == 0 && b_state == 0) {
          c_value = 1;
        } else {
          c_value = 0; // 如果A或B的状态不是0或1,则C的值为0(或者你可以选择其他的默认值)
        }
        return c_value;
      %}}

# 你可以添加其他配置,比如自动化、API等
```

在这个配置中,我们定义了两个继电器`relay_a`和`relay_b`,它们分别连接到GPIO2和GPIO4。然后,我们定义了一个模板传感器`sensor_c`,它的值是基于`relay_a`和`relay_b`的状态来计算的。

在`value_template`部分,我们使用了Jinja2模板引擎的语法来编写条件逻辑。我们检查`relay_a`和`relay_b`的状态,并根据这些状态来设置`sensor_c`的值。

请注意,你需要将`wifi`部分的SSID和密码替换为你自己的网络凭据,并且根据你的硬件和ESPHome版本调整`esphome`和`board`部分的配置。此外,你可能还需要根据你的实际GPIO引脚分配情况来调整`gpio`部分的配置。

要应用此配置文件,你需要将它保存为一个`.yaml`文件,然后使用ESPHome工具将其上传到你的设备上。

=------- 还不错吧。
回复

使用道具 举报

2

主题

28

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
金钱
246
HASS币
0
 楼主| 发表于 2024-3-11 15:45:09 | 显示全部楼层
话说他是思考的,还是拼凑出来的。
回复

使用道具 举报

109

主题

1580

帖子

4992

积分

元老级技术达人

积分
4992
金钱
3407
HASS币
30
发表于 2024-3-11 16:09:27 | 显示全部楼层
kabala56 发表于 2024-3-11 15:45
话说他是思考的,还是拼凑出来的。

简单思考
回复

使用道具 举报

50

主题

1300

帖子

4892

积分

论坛DIY达人

积分
4892
金钱
3592
HASS币
20
发表于 2024-3-11 17:28:51 | 显示全部楼层
你不觉得这配置是无法编译的吗?
回复

使用道具 举报

41

主题

1288

帖子

5312

积分

论坛元老

Rank: 8Rank: 8

积分
5312
金钱
4019
HASS币
20
发表于 2024-3-11 20:59:29 | 显示全部楼层
不懂的人,觉得ai是万能的,实际全是错的,语法,懂的人,用ai写架构
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

50

主题

244

帖子

4300

积分

元老级技术达人

积分
4300
金钱
4046
HASS币
80
发表于 2024-3-12 01:54:50 | 显示全部楼层
jjcs 发表于 2024-3-11 20:59
不懂的人,觉得ai是万能的,实际全是错的,语法,懂的人,用ai写架构

用来写简单的脚本合适
没意思,跑路了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 15:40 , Processed in 0.052171 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表