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

 找回密码
 立即注册
查看: 24001|回复: 15

[求助] esphome怎么上传电池电量到homeassistant?

[复制链接]

1

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
发表于 2021-6-30 15:23:37 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 Romias 于 2021-6-30 15:24 编辑

硬件是老王那个4.9元的8266(光合未来的),刷了esphome。这个电池通过一个4..7k、一个1k电阻分压连接到了adc引脚,

目前我用下面的代码可以正常获取电池电压并上传
sensor:
  - platform: adc
    pin: A0
    name: "Battery1"
    update_interval: 10min
    filters:
      - offset: 0.0
      - multiply: 5.7
但是怎么能转换成电量,并且显示到homeassistant的电量里?(如图) 微信图片_20210630152407.png



最佳答案

查看完整内容

你没完全理解我的意思 你的想法是没错的,可以实现,折算成百分比、在esphome的配置里加上 就可以了。 我是说我的那个模块,其中一个传感器加上了这个(我是在c++代码里加的),其实是另一个设备的电池电量,它给误解成esp模块的电量了。。。不过也没关系
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-6-30 15:23:38 | 显示全部楼层
Romias 发表于 2021-6-30 16:00
原来不是电源电量啊,我刚玩ha,还分不太清啥是啥

你没完全理解我的意思

你的想法是没错的,可以实现,折算成百分比、在esphome的配置里加上
device_class: battery

就可以了。

我是说我的那个模块,其中一个传感器加上了这个(我是在c++代码里加的),其实是另一个设备的电池电量,它给误解成esp模块的电量了。。。不过也没关系
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-6-30 15:44:25 来自手机 | 显示全部楼层
本帖最后由 XCray 于 2021-6-30 15:58 编辑

esphome里有了,加上api:,在ha那边可以自动发现、配置一下自然就可以看到了呀。
哦,你想在设备那地方显示啊,把名字改成battery level啥的、把量纲改成百分比
最关键的,要把device_class明确宣布出来,就像我这个:
batt.png

其实我这个电量并不是esp模块的电源电量,而是蓝牙门锁的电量,按说显示在这儿并不是正确做法。。。

回复

使用道具 举报

1

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
 楼主| 发表于 2021-6-30 16:00:35 | 显示全部楼层
XCray 发表于 2021-6-30 15:44
esphome里有了,加上api:,在ha那边可以自动发现、配置一下自然就可以看到了呀。
哦,你想在设备那地方显 ...

原来不是电源电量啊,我刚玩ha,还分不太清啥是啥
回复

使用道具 举报

1

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
 楼主| 发表于 2021-6-30 16:35:25 | 显示全部楼层
XCray 发表于 2021-6-30 15:23
你没完全理解我的意思

你的想法是没错的,可以实现,折算成百分比、在esphome的配置里加上

哈哈哈现在完全懂了!
回复

使用道具 举报

1

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
 楼主| 发表于 2021-6-30 22:20:39 | 显示全部楼层
XCray 发表于 2021-6-30 15:23
你没完全理解我的意思

你的想法是没错的,可以实现,折算成百分比、在esphome的配置里加上

打扰一下,我的没效果,电量那里还是不显示,帮我看看代码哪里不对?
  - platform: adc
    pin: A0
    name: "battery_level"
    unit_of_measurement: "%"
    update_interval: 10min
    device_class: battery
    state_class: measurement
    filters:
      - lambda: return x * 570 - 320;
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-6-30 22:35:57 | 显示全部楼层
本帖最后由 XCray 于 2021-6-30 22:38 编辑
Romias 发表于 2021-6-30 22:20
打扰一下,我的没效果,电量那里还是不显示,帮我看看代码哪里不对?

代码好像也没啥问题。

自己检查一下,引脚号、过滤器是否正确?你曾经获得过具体数值吗?

测量单位、state_class这些不用声明,默认的就可以。
另外,你指定了10分钟刷新,也许就得等连接后等10分钟。

别忘了在HA里得正确添加这个节点才行(开发者工具那儿看看是不是有一个sensor.battery_level的实体?状态是啥?)。
回复

使用道具 举报

1

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
 楼主| 发表于 2021-7-1 08:53:18 | 显示全部楼层
XCray 发表于 2021-6-30 22:35
代码好像也没啥问题。

自己检查一下,引脚号、过滤器是否正确?你曾经获得过具体数值吗?

在仪表盘的卡片、查看设备的地方,一直能正常看到已转换成百分比的电量,在esphome的后台也能看到获取的原始电压和转换后的数据。只是不显示在咱们之前说的那个位置。
我的直观感受是:device_class: battery这句没起作用,有没有这句没区别。您说可以不写单位,但是我不写单位他就默认是V。
啊,无奈了
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-7-1 10:15:19 | 显示全部楼层
Romias 发表于 2021-7-1 08:53
在仪表盘的卡片、查看设备的地方,一直能正常看到已转换成百分比的电量,在esphome的后台也能看到获取的 ...

不,你肯定是哪儿没弄对!你再仔细想想、检查检查。
最关键的就是device_class: battery这句。

默认单位是V的device_class是voltage。

我特意用手上的模块为你做了个测试,结果毫无疑问。

配置:
sensor:
  - platform: adc
    pin: VCC
    name: "vccSL"
    device_class: battery
    filters: 
      - lambda: return x/3.43*100;

效果: batt.png
因为我这个模块并非电池供电,所以我用的VCC,电源引脚。电压比3.43V略高,所以电量超过了100%,不过不影响理解。


回复

使用道具 举报

1

主题

12

帖子

56

积分

注册会员

Rank: 2

积分
56
金钱
44
HASS币
0
 楼主| 发表于 2021-7-1 11:45:16 | 显示全部楼层
XCray 发表于 2021-7-1 10:15
不,你肯定是哪儿没弄对!你再仔细想想、检查检查。
最关键的就是device_class: battery这句。

感谢帮我测试。我也觉得问题就出在device_class: battery,我再试试
能不能看一下你的esphome页面的终端返回的信息?我的是这样:
esphomelog.png
忽略我离谱的数字,测试的时候lamda没改。
然后您的版本分别是?

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 13:29 , Processed in 0.877626 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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