最全Linux centos9环境基于k8s(k3s)搭建HomeAssistant,并接入米家官方XiaoMiHome插件

article/2025/7/20 19:27:54

背景

环境

1、linux centos 9(该环境的ip可以被你的其他设备访问到,例如你可以用windows访问到家里的服务器)

2、k3s集群已完成部署,参考:国内k3s环境搭建-CSDN博客

3、HA部署方式采用容器化部署

概念

1、k3s:k8s的轻量化发布版本,容器编排管理平台,可以很方便的部署应用(包括HA应用),并且具有很强的故障恢复等容灾能力,并且可以将HA应用配置服务化管理

2、HA:智能家居管理平台,可以方便接入各家智能设备(当前主要考虑接入米家)

配置步骤

1、拉取HA镜像

拉取稳定版本的HA镜像(官方地址:ghcr.io/home-assistant/home-assistant:stable

国内备份镜像:(国内镜像备份拉取查询网站:https://docker.aityp.com/,查询上面官方的镜像是否存在,选择对应架构,当前为x86_64的centos 9)

# crictl pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/home-assistant/home-assistant:stable
Image is up to date for sha256:bb85a3c4daccce652deb5b0a3a64749ed315cf6d263c98e01c1558ae744d762a

查看镜像是否拉取成功:

# crictl images
IMAGE                                                                            TAG                    IMAGE ID            SIZE
**ghcr.io/home-assistant/home-assistant**                                            stable                 c1eff36acdd78       590MB
registry.cn-hangzhou.aliyuncs.com/rancher/klipper-helm                           v0.8.4-build20240523   0c1204a22f132       94.4MB
registry.cn-hangzhou.aliyuncs.com/rancher/klipper-lb                             v0.4.7                 edc812b8e25d0       4.78MB
registry.cn-hangzhou.aliyuncs.com/rancher/local-path-provisioner                 v0.0.27                c451116631150       17.8MB
registry.cn-hangzhou.aliyuncs.com/rancher/mirrored-coredns-coredns               1.10.1                 ead0a4a53df89       16.2MB
registry.cn-hangzhou.aliyuncs.com/rancher/mirrored-library-traefik               2.10.7                 ee69e8120b64a       43.2MB
registry.cn-hangzhou.aliyuncs.com/rancher/mirrored-metrics-server                v0.7.0                 b9a5a1927366a       19.4MB
registry.cn-hangzhou.aliyuncs.com/rancher/mirrored-pause                         3.6                    6270bb605e12e       301kB
**swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/home-assistant/home-assistant**   stable                 bb85a3c4daccc       521MB

2、配置deployment

deployment是k8s管理平台中一种pod部署器,具有自动恢复、负载均衡等特性,可以很好的适配HA这种需要持续运行应用的部署

对应deployment文件内容如下:

# cat deploy_ha.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:name: homeassistant
spec:replicas: 1selector:matchLabels:app: homeassistanttemplate:metadata:labels:app: homeassistantspec:hostNetwork: true  # This ensures the container uses the host network (similar to `network_mode: host` in Docker Compose)containers:- name: homeassistantimage: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/home-assistant/home-assistant:stablevolumeMounts:- name: config-volumemountPath: /config- name: localtimemountPath: /etc/localtimereadOnly: true- name: dbusmountPath: /run/dbusreadOnly: trueports:- containerPort: 8123volumes:- name: config-volumehostPath:path: **/home/ha_config**type: Directory- name: localtimehostPath:path: /etc/localtimetype: File- name: dbushostPath:path: /run/dbustype: DirectoryOrCreate

其中加粗的这个地方的配置/home/ha_config,可以按照自己当前的环境进行修改,这个目录就是HA运行的时候存储信息以及配置的目录,可以简单理解为安装目录

部署pod:

kubectl apply -f deploy_ha.yaml

查看pod是否已经成功运行起来:(HA pod的状态为running即可)

 #  kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS        RESTARTS   AGE
**default       homeassistant-5dcc949887-2tqkv            1/1     Running**       0          3h38m
kube-system   coredns-58c9946f4-njxqz                   1/1     Running       0          44d
kube-system   coredns-58c9946f4-rvq8x                   1/1     Terminating   0          167d
kube-system   local-path-provisioner-6d79b7444c-4hkvt   1/1     Terminating   0          167d
kube-system   local-path-provisioner-6d79b7444c-hkz7v   1/1     Running       0          44d
kube-system   metrics-server-5bbb74b77-7kn5q            1/1     Running       0          44d
kube-system   metrics-server-5bbb74b77-xcl8b            0/1     Terminating   0          167d
kube-system   svclb-traefik-1be5d357-lgn5h              2/2     Running       0          44d
kube-system   svclb-traefik-1be5d357-w4m9x              2/2     Running       0          167d
kube-system   traefik-57c89d7764-2ckfn                  1/1     Running       0          44d
kube-system   traefik-57c89d7764-jszjh                  1/1     Terminating   0          167d

配置服务:

k8s集群的应用如果不配置服务,集群内的应用是无法被访问的,因此需要配置service,将应用的能力暴露出去,对应的服务配置文件内容如下:

# cat srv_ha.yaml 
apiVersion: v1
kind: Service
metadata:name: homeassistant
spec:type: NodePort  ports:- port: 8123targetPort: 8123nodePort: 30000selector:app: homeassistant

注意:

  • 该服务的类型是NodePort意味着集群外部的机器可以通过“节点IP:端口”来访问集群内部的应用,其中端口就是参数中nodePort的参数30000(范围只能是:30000-32767)
  • 前面两个port的参数分别是:port表示主机暴露给应用的端口,targetPort表示应用暴露给集群的端口,一般这两个参数都是一样的
  • 至于为什么是8123,则是因为HA应用默认暴露的端口就是8123
  • selector:则是将这个服务绑定到指定的deployment应用上,我们这里就是homeassistant

部署service命令:

kubectl apply -f srv_ha.yaml

查看service是否部署成功:

# kubectl get svc -A
NAMESPACE     NAME             TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE
**default       homeassistant    NodePort       10.43.114.143   <none>           8123:30000/TCP**               4h40m
default       kubernetes       ClusterIP      10.43.0.1       <none>           443/TCP                      167d
kube-system   kube-dns         ClusterIP      10.43.0.10      <none>           53/UDP,53/TCP,9153/TCP       167d
kube-system   metrics-server   ClusterIP      10.43.208.91    <none>           443/TCP                      167d
kube-system   traefik          LoadBalancer   10.43.32.56     192.168.101.24   80:32373/TCP,443:32371/TCP   167d

3、配置HA

参考官方配置步骤:Onboarding Home Assistant - Home Assistant

(1)浏览器登录HA网址:http://ip:30000/,这里的ip为k8s的master节点的ip地址,端口就是服务暴露的30000这个端口

(2)选择创建HA账户

(3)创建自己的用户名和密码

(4)选择位置(用于显示温度、天气、货币等等)

(5)选择你想要共享的数据(可以不共享)

(6)直接选择完成

4、配置HACS

HACS是一个第三方的插件商店,可以安装很多关于智能家居的插件或者应用,比如米家等

安装可以参考:https://zhuanlan.zhihu.com/p/400985801、https://hacs.xyz/docs/use/download/download/#to-download-hacs

当前环境安装配置步骤如下:

(1)进入容器

kubectl exec -it homeassistant-5dcc949887-89s27 -c homeassistant -- /bin/bash

homeassistant-5dcc949887-89s27为pod名称,homeassistant为容器名称

(2)执行命令

wget --no-check-certificate -O - <https://get.hacs.xyz> | bash -

但是可能遇到如下报错:

--2024-12-25 21:49:15--  <https://get.hacs.xyz/>
Resolving get.hacs.xyz (get.hacs.xyz)... 104.26.6.112, 2606:4700:20::681a:770, 2606:4700:20::681a:670, ...
Connecting to get.hacs.xyz (get.hacs.xyz)|104.26.6.112|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: <https://raw.githubusercontent.com/hacs/get/main/get> [following]
--2024-12-25 21:49:17--  <https://raw.githubusercontent.com/hacs/get/main/get>
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0, ::
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... connected.
WARNING: The certificate of ‘raw.githubusercontent.com’ is not trusted.
WARNING: The certificate of ‘raw.githubusercontent.com’ doesn't have a known issuer.
The certificate's owner does not match hostname ‘raw.githubusercontent.com’
HTTP request sent, awaiting response... 404 Not Found
2024-12-25 21:49:17 ERROR 404: Not Found.

由于这个步骤实际上就是执行一下安装脚本,因此可以将脚本内容直接保存在容器目录下,直接bash执行也是可以的,脚本内容如下:

# cat install_hacs.sh#!/bin/bash
# wget -O - <https://get.hacs.xyz> | bash -
function run() {set -eRED_COLOR='\\033[0;31m'GREEN_COLOR='\\033[0;32m'GREEN_YELLOW='\\033[1;33m'NO_COLOR='\\033[0m'declare haPathdeclare -a paths=("$PWD""$PWD/config""/config""/homeassistant""$HOME/.homeassistant""/usr/share/hassio/homeassistant")declare currentVersiondeclare currentYeardeclare currentMonthdeclare currentPatchdeclare targetVersiondeclare targetYeardeclare targetMonthdeclare targetPatchfunction info () { echo -e "${GREEN_COLOR}INFO: $1${NO_COLOR}";}function warn () { echo -e "${GREEN_YELLOW}WARN: $1${NO_COLOR}";}function error () { echo -e "${RED_COLOR}ERROR: $1${NO_COLOR}"; if [ "$2" != "false" ]; then exit 1;fi; }function checkRequirement () {if [ -z "$(command -v "$1")" ]; thenerror "'$1' is not installed"fi}checkRequirement "wget"checkRequirement "unzip"info "Trying to find the correct directory..."for path in "${paths[@]}"; doif [ -n "$haPath" ]; thenbreakfiif [ -f "$path/.HA_VERSION" ]; thenhaPath="$path"fidoneif [ -n "$haPath" ]; theninfo "Found Home Assistant configuration directory at '$haPath'"cd "$haPath" || error "Could not change path to $haPath"if [ ! -d "$haPath/custom_components" ]; theninfo "Creating custom_components directory..."mkdir "$haPath/custom_components"fiinfo "Changing to the custom_components directory..."cd "$haPath/custom_components" || error "Could not change path to $haPath/custom_components"info "Downloading HACS"rm -f "$haPath/custom_components/hacs.zip"wget "<https://github.com/hacs/integration/releases/latest/download/hacs.zip>"if [ -d "$haPath/custom_components/hacs" ]; thenwarn "HACS directory already exist, cleaning up..."rm -R "$haPath/custom_components/hacs"fiinfo "Creating HACS directory..."mkdir "$haPath/custom_components/hacs"info "Unpacking HACS..."unzip "$haPath/custom_components/hacs.zip" -d "$haPath/custom_components/hacs" >/dev/null 2>&1echoinfo "Verifying versions"targetVersion=$(sed -n -e '/^MINIMUM_HA_VERSION/p' "$haPath/custom_components/hacs/const.py" | cut -d '"' -f 2)currentVersion=$(cat "$haPath/.HA_VERSION")info "Current version is ${currentVersion}, minimum version is ${targetVersion}"targetYear=$(echo "${targetVersion}" | cut -d "." -f 1)currentYear=$(echo "${currentVersion}" | cut -d "." -f 1)if [ "${currentVersion}" == "2023.12.0" ]; thenrm -R "$haPath/custom_components/hacs"rm -f "$haPath/custom_components/hacs.zip"error "HACS will not work on version 2023.12.0 of Home Assistant, upgrade to 2023.12.1 (or newer) before re-running this script."fiif [ "${currentYear}" -lt "${targetYear}" ]; thenrm -R "$haPath/custom_components/hacs"rm -f "$haPath/custom_components/hacs.zip"error "Version ${currentVersion} is not new enough, needs at least ${targetVersion}"fiif [ "${currentYear}" == "${targetYear}" ]; thentargetMonth=$(echo "${targetVersion}" | cut -d "." -f 2)currentMonth=$(echo "${currentVersion}" | cut -d "." -f 2)if [ "${currentMonth}" -lt "${targetMonth}" ]; thenrm -R "$haPath/custom_components/hacs"rm -f "$haPath/custom_components/hacs.zip"error "Version ${currentVersion} is not new enough, needs at least ${targetVersion}"fiif [ "${currentMonth}" == "${targetMonth}" ]; thentargetPatch=$(echo "${targetVersion}" | cut -d "." -f 3)currentPatch=$(echo "${currentVersion}" | cut -d "." -f 3)if [ "${currentPatch}" -lt "${targetPatch}" ]; thenrm -R "$haPath/custom_components/hacs"rm -f "$haPath/custom_components/hacs.zip"error "Version ${currentVersion} is not new enough, needs at least ${targetVersion}"fififiechoinfo "Removing HACS zip file..."rm -f "$haPath/custom_components/hacs.zip"info "Installation complete."echoinfo "Remember to restart Home Assistant before you configure it"elseechoerror "Could not find the directory for Home Assistant" falseecho "Manually change the directory to the root of your Home Assistant configuration"echo "With the user that is running Home Assistant"echo "and run the script again"exit 1fi
}run

(3)运行命令:(实际上就是在安装目录下创建了个custom_components目录,然后将HACS插件的压缩包下载并解压到了那个目录 ,如果网络实在有问题,也可以手动下载资源的进行操作)

# bash install_hacs.sh 
INFO: Trying to find the correct directory...
INFO: Found Home Assistant configuration directory at '/config'
INFO: Creating custom_components directory...
INFO: Changing to the custom_components directory...
INFO: Downloading HACS
Connecting to github.com (20.205.243.166:443)
Connecting to github.com (20.205.243.166:443)
Connecting to objects.githubusercontent.com (185.199.110.133:443)
saving to 'hacs.zip'
hacs.zip             100% |***************************************************************************************| 16.0M  0:00:00 ETA
'hacs.zip' saved
INFO: Creating HACS directory...
INFO: Unpacking HACS...INFO: Verifying versions
INFO: Current version is 2024.6.4, minimum version is 2024.4.1INFO: Removing HACS zip file...
INFO: Installation complete.INFO: Remember to restart Home Assistant before you configure it

(4)重启HA应用pod

直接将pod删除即可,k8s会自动拉起来pod,即可认为完成了一次重启

# kubectl delete pod homeassistant-5dcc949887-89s27

再次查看pod,发现新的pod已经被拉起来了

# kubectl get pods -A

(5)配置HACS(当前环境语言为简体中文,其他语言可能会不能匹配上)

由于HACS的插件库都来源于github上的项目,因此需要github进行授权才能访问这些库

路径:配置→设备与服务→添加集成(右下角)→搜索HACS,选择并添加HACS→全选接受协议→github授权→完成

主界面左下角

第二个

添加集成弹出的选项框中进行搜索

全选

1、当前环境需要能够访问github,并且当前你已经登录了github;2、点击蓝色连接进行授权;3、将下面的授权码填入你打开的授权页面

确认授权

配置完成

5、配置XIAOMI HOME

可以参考小米官方github说明:ha_xiaomi_home/doc/README_zh.md at main · XiaoMi/ha_xiaomi_home · GitHub

(1)如果上述步骤一切正常,那么你的HA主界面的侧边栏应该已经存在了HACS这个选项卡

(2)点击选择HACS

(3)点击右上角的三个点,并选择custom repositories

在弹出的选项卡中填入:Repository: **https://github.com/XiaoMi/ha_xiaomi_home.git**

选择Type:Category or Type: Integration

点击ADD,这个时候HACS的页面下面就会出现新的应用了:

(4)选择XiaomiHome进行下载

(5)配置xiaomihome

下载完成之后,还是在之前的添加集成的位置,添加xiaomihome:

配置→设备与服务→添加集成(右下角)→搜索xiaomi

(6)使用小米账号进行登录授权

进行授权的时候会弹出页面,有一个蓝色的链接:

点击蓝色的链接(注意,一定需要是从这个蓝色链接进入的网页,因为点击了之后授权才会触发webhook)

弹出来的页面输入登录小米的账号,进行授权

然后发现授权的网页无法打开,是因为这个网页的默认url的开头是:http://homeassistant.local:8123

需要在浏览器页面的网址栏,将这个ip和端口改成当前HA实际的IP和端口,即登录HA的IP和端口30000,然后再回车,即可成功授权

授权完成之后回到HA页面点击确认即可


http://www.hkcw.cn/article/qxrNZQVjRH.shtml

相关文章

Git 使用全指南

Git 使用全指南 第一部分&#xff1a;核心概念 什么是 Git&#xff1f; 一个分布式版本控制系统 (DVCS)。目标&#xff1a; 跟踪文件变化、协作开发、回溯历史、管理不同开发线&#xff08;分支&#xff09;。核心思想&#xff1a; 每个开发者都有完整的仓库副本&#xff08;包…

Leetcode 269. 火星词典

1.题目基本信息 1.1.题目描述 现有一种使用英语字母的外星文语言&#xff0c;这门语言的字母顺序与英语顺序不同。 给定一个字符串列表 words &#xff0c;作为这门语言的词典&#xff0c;words 中的字符串已经 按这门新语言的字母顺序进行了排序 。 请你根据该词典还原出此…

若依框架-Feign的应用

代码资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90945836 1.背景 若依的微服务框架&#xff0c;少不了各微服务之间的接口调用&#xff0c;以下是采用feign来进行微服务之间的方法调用。 2.案例说明 在system模块下的某个接口&#xff0c;调用factory&am…

印度奥迪沙邦一巴士翻车 50余人被困 紧急救援展开

6月2日,一辆巴士在印度东部奥迪沙邦的山路上发生翻车事故,车内50多名乘客被困。事故发生在当天清晨,巴士在下坡过程中于弯道上失去平衡,导致车辆失控。事故发生后,当地村民和紧急救援人员迅速展开救援行动,当地政府也派出救援队赶往现场。目前,官方尚未公布具体的伤亡情…

从4小时到20分钟 青岛港科技升级货物“秒通关”

作为中国北方重要的国际航运枢纽,青岛港的航线通达全球700多个港口,一季度集装箱吞吐量同比增速达到了7.4%。在当下复杂多变的国际贸易形势下,这座港口如何找准方向为外贸企业“保驾护航”?港口“流量”剧增折射外贸新机遇在山东港口青岛港前湾港区,这艘前往美国东部的集装…

Flannel MAC地址冲突导致Pod 跨节点通信异常

问题背景 客户在扩容 Kubernetes 节点后&#xff0c;发现部分服务 Pod 跨节点通信异常&#xff0c;表现为&#xff1a; • Pod 间通信间歇性失败&#xff1b; • 某些业务服务异常或响应慢&#xff1b; • 怀疑是网络问题引起的。 问题排查 1️⃣ 初步排查网络路由信息 我们…

[前端计算机网络]资源加载过程的详细性能信息浏览器加载资源的全过程

资源加载过程的详细性能信息 基于 PerformanceResourceTiming 对象对页面中某个资源加载过程的详细性能信息进行采集与封装&#xff0c;并结合了计算机网络中的请求生命周期进行度量。 export function observeEvent():void{const type"resource";const entryHand…

德布劳内将接受那不勒斯体检 加盟在即

据报道,德布劳内将加盟那不勒斯。预计他将在比利时国家队比赛结束后接受那不勒斯的体检。上月公布的比利时世预赛名单中包括了德布劳内。比利时队将在世预赛中先后对阵北马其顿和威尔士,其中与威尔士的比赛将于本月10日北京时间2点45分开球。现年33岁的德布劳内在今夏合同到期…

《在人间》是2025最难看懂的剧吗 烧脑剧情挑战观众

《在人间》这部剧集让艺绽君感到难以评价。这种“难评”并非贬义,而是因为观剧过程中真实地感受到了大脑爆炸、脑细胞死了不少,只能用一个相对中立的词汇来形容这部“神剧”。《在人间》共8集,隶属于爱奇艺的微尘剧场,这一剧场以短小精悍的作品著称。主创团队中有知名导演兼…

警方辟谣北京有人高空撒一千万:不是故意的,系工人施工碰倒钱箱 干活不慎掉落

5月29日,北京昌平区住总万科天地一带发生了一起撒钱事件。有市民发帖称,有人在楼上撒了一千万元。视频画面显示,空中飘着几张纸币,一些市民在楼下接钱。次日,北京七里渠派出所工作人员表示,当事人是因为工作时不小心掉落了钱,并提醒市民不要听信网络谣言。至于掉落的金钱…

96岁老兵走失找回 曾为陈毅元帅送信 抗战英雄平安归家

6月2日,山东省济宁市一救援队成功找回了走失的96岁高龄抗战老兵吕企荣老人,老人身体无碍。吕企荣家住泗水县济河街道何家庄村。5月31日早晨7时许,老人从家中步行到村北侧的小公园遛弯,直到中午都没有回家。家属通过监控发现,老人沿着城区北侧万象城附近道路一直向北走,直…

地磁暴雷暴大风与暴雨交织登场 双预警齐发

6月2日6时,中央气象台发布暴雨蓝色预警和强对流天气蓝色预警,覆盖福建、广东、广西等十余省份。中国气象局国家空间天气监测预警中心指出,6月1日至3日可能连续发生地磁暴,6月2日左右,我国北部有机会出现较为明显的极光,部分地区甚至有出现红绿复合极光的可能。预计6月2日…

6月1日起 新疆伊尔克什坦口岸试行24小时货运通关

6月1日,新疆伊尔克什坦口岸货运通道正式启动为期6个月的24小时通关试行。随着首批出入境货车有序通关,该口岸成为中国首个面向吉尔吉斯斯坦实行24小时货运通关的公路口岸。伊尔克什坦口岸位于新疆克孜勒苏柯尔克孜自治州乌恰县,是我国最西端的陆路口岸。口岸主要出口日用百货…

美防长炒作中国威胁论难获东盟支持 东盟强调战略自主

在新加坡举行的第22届香格里拉对话会上,美国国防部长赫格塞思极力渲染所谓的“中国威胁”,以迫使盟国增加军费开支。然而,东盟国家的国防部长们强调了“战略自主”的概念。菲律宾国防部长吉尔伯特特奥多罗表示,菲律宾作为美国的条约盟友,并非没有战略自主的棋子。他虽然仍…

Python 训练营打卡 Day 32-官方文档的阅读

我们已经掌握了相当多的机器学习和python基础知识&#xff0c;现在面对一个全新的官方库&#xff0c;看看是否可以借助官方文档的写法了解其如何使用 我们以pdpbox这个机器学习解释性库来介绍如何使用官方文档 以鸢尾花三分类项目来演示如何查看官方文档 import pandas as pd…

USB子系统和type-c接口快速理解

USB子系统 USB硬件基础 在了解LINUX 的USB驱动之前&#xff0c;我们肯定是要了解相关硬件内容的&#xff0c;如下给出了三种常用的USB接口。 特性 Type A (2.0) Type A 3.0 Type C 接口形状 长方形&#xff0c;单向插入 与 Type A 2.0 相同 椭圆形&#xff0c;可双…

DQN和DDQN(进阶版)

来源&#xff1a; *《第五章 深度强化学习 Q网络》.ppt --周炜星、谢文杰 一、前言 Q表格、Q网络与策略函数 Q表格是有限的离散的&#xff0c;而神经网络可以是无限的。 对于动作有限的智能体来说&#xff0c;使用Q网络获得当下状态的对于每个动作的 状态-动作值 。那么 a…

新视讯影视官网入口,影视动漫在线播放网站

新视讯影视是一个免费为广大追剧迷提供在线播放服务的影视平台&#xff0c;深受众多影视爱好者的喜爱。它涵盖了大量免费的VIP电视剧资源、最新上映的大片、好看的综艺节目以及动漫视频&#xff0c;是一个播放速度快、资源多的免费影视网站。用户无需注册或登录&#xff0c;即可…

张家界溶洞垃圾已清运2.7吨 排污事件引发关注

近日,有网友反映张家界市慈利县一处天然溶洞遭到人为排污,导致溶洞被污染。相关话题引发了广泛关注。据慈利县融媒体中心6月1日发布的最新视频,经过7天的努力,杨家坡溶洞内的垃圾已清理打捞出2.7吨。相关视频显示,溶洞内垃圾正在被装袋并通过吊机吊出,旁边已经摆放着大量…

杭州机场迎首批入境旅客 免签新政促便利

6月1日下午,杭州口岸迎来了首批享受免签新政的南美洲旅客。为便利中外人员往来,中方决定扩大免签国家范围,自2025年6月1日起至2026年5月31日,巴西、阿根廷、智利、秘鲁、乌拉圭五个国家持普通护照的人员来华经商、旅游观光、探亲访友、交流访问或过境不超过30天,可免办签证…