首页 > 技术随笔

Home Assistant 接入 CHNT DDSU666 电表实战

Home Assistant 接入 CHNT DDSU666 电表实战 前情提要 最近发现家庭电费一直高居不下,需要搞清楚电能在各房间、各路设备之间的流向分布,于是决定把电表数据拉进 Home Assistant 做可视化与自动化。前一篇文章已经讲过如何完成 CHNT DDSU666 的初始化协议切换,本文继续沿着这条线,聚焦在网关与 Home Assistant 侧的实际配置。 网关准备与串口对齐 使用 485 转 WiFi 网关时,务必让串口和链路参数与电表保持一致,避免在透明传输过程中出现丢帧: 串口参数设为 9600 / 8 / 1 / NONE 报文打包间隔设为 0 ms 报...

正泰DDSU666单相导轨电表协议切换指南

正泰DDSU666单相导轨电表协议切换指南 概述 最近在家折腾IoT设备,希望基于Home Assistant构建一个完整的家庭能源监控链路,于是入手了多块485电表和485转WiFi网关。电表默认工作在DLT645规约下,与现有的Modbus采集链路不兼容,因此需要先完成协议切换。本文记录正泰DDSU666单相导轨电表从DLT645协议切换到Modbus RTU(485)协议的操作方法。 操作步骤 1. 获取电表地址 按下电表面板按钮,查看并记录电表地址信息: L地址(低位):例如 L131566 H地址(高位):例如 H250812 2. 构建切换报文 2.1 报文模板 FE F...

三星 PM9A1 固态硬盘固件翻车拯救记 | 刷错固件了!

三星 PM9A1 固态硬盘固件翻车拯救记 一次「专业人士都说没救了」的 NVMe SSD 起死回生实录 前情提要:一个悲伤的故事 事情是这样的。 某天,我决定给我的 1TB 三星 PM9A1 升级一下固件,毕竟官方说新固件修复了0E问题,防止固态报废。 然后我就手贱选错了固件包。 1TB 的盘,刷了 2TB 的固件。 结果可想而知——硬盘当场去世,BIOS 里都看不到了。整个人直接傻掉。 于是我找到了「专业数据恢复人士」,对方研究了半天,给出了专业意见: "这盘没救了,只能搬颗粒。" 搬颗粒的意思就是把 NAND 闪存芯片从原来的 PCB 上拆下来,焊接到 S...

1Panel PHP 时区排障记录:Typecho 日志超前 8 小时的修复过程🛠️

1Panel PHP 时区排障记录:Typecho 日志超前 8 小时的修复过程🛠️ 🔍 最近在排查 Typecho 站点的安全策略时,发现一个异常情况:Access 与 Fail2ban 的日志时间比实际时间快了整整 8 小时,在追踪这个问题的过程中,依次确认了宿主机、容器以及 PHP-FPM 的配置,最终才让日志时间回到正常值。记录如下,方便后续快速复盘。 前情提要 🧭 Typecho 后台的 Fail2ban 控制台显示“最后检测”时间比真实时间快 8 小时,同时 Nginx access 日志也是“未来时间”。这意味着从宿主、容器到 PHP-FPM 的时区设置没有统一,导致日...

理解动态规划思想

前言 最近和朋友聊天,说起DP问题,想到大学时候学长上来一通“状态转移函数”把我们讲懵了,于是尝试写个入门笔记。 DP思想 通俗来说,动态规划解决问题的方法,就是当系统处于任何一个状态C,你去穷举所有状态A,然后把可能从A到达C的情况全部找出来,并从中获得最优解即可。所以,所谓的“状态转移方程”就是存在一条边从状态A到状态C,这条边的代价。简而言之,动态规划主要思想就是自底向上、局部最优到全局最优,通过计算每个子结构的最优解,求出总体结构的最优解。其目的是解决通过自顶向下的算法(如递归),带来的子结构重复计算,导致时间复杂度指数级上升的问题。 入门示例 桌上有 1kg、8kg、11kg...

记一次LUA逻辑查错:查看LUA函数闭包内变量状态

今天好不容易偶然重现了一个渲染队列总是跳过一个渲染元素的问题,这问题一直存在但是却一直无法稳定重现。 拿到环境后开始分析问题,首先要知道这个对象有没有进渲染队列,可是渲染队列在导出接口的闭包内外界无法访问。 立马想到debug库,利用多次调用debug.getupvalue层层进入闭包,最终成功拿到了队列数据,发现对象在队列中,从而定位问题出在分帧渲染逻辑,跳转到响应代码位置问题迎刃而解。 local function getupval(f, k) local i = 1 while true do local n, v = debug.getupvalu...

最新文章

最近回复