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

 找回密码
 立即注册
楼主: inevitab

[经验分享] 用 esp8266 最小系统板实现 DDNS (不免费)

[复制链接]

5

主题

87

帖子

427

积分

中级会员

Rank: 3Rank: 3

积分
427
金钱
340
HASS币
0
发表于 2024-4-2 16:54:13 | 显示全部楼层
inevitab 发表于 2024-4-2 16:12
这个是什么意思呢? 有了ddns,所有需要用到ip的地方改用域名就行,不用管ip是多少。 ...

如果能直接把IP发回HA的话,那部分组件就可以直接调用这个IP而不用从域名上兜一圈了,毕竟域名还是要花钱的,而IP不用啊
回复

使用道具 举报

5

主题

44

帖子

726

积分

高级会员

Rank: 4

积分
726
金钱
682
HASS币
0
发表于 2024-4-2 17:55:20 | 显示全部楼层
学习 学习
回复

使用道具 举报

43

主题

202

帖子

925

积分

高级会员

Rank: 4

积分
925
金钱
723
HASS币
0
 楼主| 发表于 2024-4-2 19:06:46 | 显示全部楼层
1252 发表于 2024-4-2 16:54
如果能直接把IP发回HA的话,那部分组件就可以直接调用这个IP而不用从域名上兜一圈了,毕竟域名还是要花钱 ...

你的意思是 esp8266  和 HA 不在同一个地方? 那么这两个地方至少要有一个地方有固定公网ip才可以。
回复

使用道具 举报

5

主题

87

帖子

427

积分

中级会员

Rank: 3Rank: 3

积分
427
金钱
340
HASS币
0
发表于 2024-4-2 21:40:21 | 显示全部楼层
inevitab 发表于 2024-4-2 19:06
你的意思是 esp8266  和 HA 不在同一个地方? 那么这两个地方至少要有一个地方有固定公网ip才可以。 ...

对呀,就是这个时候才有DDNS或者类似功能的需求。

不过一般来说,HA所在地会有动态公网IP和配套的DDNS,就是可以保证可以用域名访问到HA(也就意味着可以用MQTT的方式实现对HA发送信息),但是8266这边就未必了,基本上智能保证会有公网IP但是往往不会固定
回复

使用道具 举报

43

主题

202

帖子

925

积分

高级会员

Rank: 4

积分
925
金钱
723
HASS币
0
 楼主| 发表于 2024-4-3 00:40:43 | 显示全部楼层
1252 发表于 2024-4-2 21:40
对呀,就是这个时候才有DDNS或者类似功能的需求。

不过一般来说,HA所在地会有动态公网IP和配套的DDNS, ...

理论上可以,并且应该是不难的,只是我才学了几天HA和esp8266,还没学到这个方面,哈哈
回复

使用道具 举报

5

主题

87

帖子

427

积分

中级会员

Rank: 3Rank: 3

积分
427
金钱
340
HASS币
0
发表于 2024-4-3 21:34:20 | 显示全部楼层
inevitab 发表于 2024-4-3 00:40
理论上可以,并且应该是不难的,只是我才学了几天HA和esp8266,还没学到这个方面,哈哈 ...

因为查IP其实访问一个网址就能做到比如:

https://ifconfig.me/

https://sipv4.com/

https://ipinfo.io/

所以不知道可否用ESPHOME写个程序,让8266发送一条HTTP请求,然后把返回的结果显示出来——或者是用MQTT的方式发送给HA,这样就可以让HA实现对IP的显示
回复

使用道具 举报

43

主题

202

帖子

925

积分

高级会员

Rank: 4

积分
925
金钱
723
HASS币
0
 楼主| 发表于 2024-4-3 22:45:06 | 显示全部楼层
1252 发表于 2024-4-3 21:34
因为查IP其实访问一个网址就能做到比如:

https://ifconfig.me/

"用MQTT的方式发送给HA,在HA面板上显示出来" 我主要是不懂这个
回复

使用道具 举报

5

主题

87

帖子

427

积分

中级会员

Rank: 3Rank: 3

积分
427
金钱
340
HASS币
0
发表于 2024-4-3 23:34:03 | 显示全部楼层
inevitab 发表于 2024-4-3 22:45
"用MQTT的方式发送给HA,在HA面板上显示出来" 我主要是不懂这个

就是当获取了IP地址之后,这个数据是否可以作为一个sensor存在(或许是一个text sensor?这个不太懂了),如果可以,那就可以和普通传感器一样走MQTT发回给HA了,那HA的面板上就可以和其它显示什么温度湿度之类的一样,显示出这个8266所在地的IP地址了。
回复

使用道具 举报

0

主题

21

帖子

326

积分

中级会员

Rank: 3Rank: 3

积分
326
金钱
305
HASS币
0
发表于 2024-4-4 07:23:42 | 显示全部楼层
学习学习……
回复

使用道具 举报

43

主题

202

帖子

925

积分

高级会员

Rank: 4

积分
925
金钱
723
HASS币
0
 楼主| 发表于 2024-5-2 19:17:45 | 显示全部楼层
1252 发表于 2024-4-2 15:39
忽然想到个问题:这种是否可以实现把目前的公网IP通过MQTT的形式发回HA,或者在WEB界面上直接显示呢? ...

我终于学会这个了


esphome:
  name: "test"
  friendly_name: "test"

esp8266:
  board: esp12e

captive_portal:

logger:

mqtt:
  broker: !secret mqtt_ip
  username: !secret mqtt_username
  password: !secret mqtt_password
        
ota:
  password: "xxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "test Fallback Hotspot"
    password: ""

http_request:
  id: http_request_data
  timeout: 20s

text_sensor:
  - platform: template
    name: "IP"
    id: ip
    lambda: |-
      return {"正在获取..."};
    update_interval: never

interval:
  - interval: 5min
    then:
      - http_request.get:
          url: "https://myip.ipip.net/json"
          verify_ssl: false
          on_response:
            then:
              - lambda: |-
                  json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
                      id(ip).publish_state(root["data"]["ip"]);
                  });

显示效果:

屏幕截图 2024-05-02 191654.png



回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 02:12 , Processed in 0.362247 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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