动态 版块 发帖 消息 我的
Loading...
HadSky
支持原创软件,共创美好明天!
子版块
qq446825518
6
import pandas as pd     #加载 pandas,读 Excel 必须用import pyautoguiimport timeimport keyboardimport datetime# =========================# 辅助函数:RGB转16进制# =========================def rgb2hex(r, g, b):    return "{:02X}{:02X}{:02X}".format(r, g, b)# =========================# 读取 Excel# =========================print("读取 Excel 文件...")df = pd.read_excel(r"D:\按键精灵\更改包装描述.xlsx")  #读取 Excel 并把数据放到 df 里面print("读取完成,共", len(df), "行")print("按 F10 开始脚本,F12 停止...")keyboard.wait("F10")print("脚本开始!")row = 0# =========================# 开始处理每一行# =========================while row < len(df):    # 检查 F12 停止    if keyboard.is_pressed("F12"):        print("检测到 F12,脚本停止")        break    # 读取表中的信息,转换为变量====sku_value, desc_value,ok_value    sku_value = str(df.iloc[row]["SKU"])    desc_value = str(df.iloc[row]["描述"])    ok_value = str(df.iloc[row]["OK"])    # =====================    print("处理第", row, "行...")    # =如果表格中标记了OK就不处理了====    if ok_value == "OK":        print("已 OK,跳过")        row += 1        continue    # =====================    # =====================    # 第 1 步:点击 SKU 输入框(129,160)(所有第一步都是判断坐标的颜色是否一致,否则就一直等待)    # =====================    while True:        r,g,b = pyautogui.pixel(129,160)        color_hex = rgb2hex(r,g,b)        if color_hex == "FFFFFF":            break        print("SKU 输入框颜色不是 FFFFFF,等待中...")        time.sleep(0.5)    pyautogui.click(129,160)    time.sleep(0.3)    pyautogui.typewrite(sku_value, interval=0.05)    #输入变量信息sku_value,并等待0.05秒    # =====================    # 第 2 步:点击搜索按钮(812,133)(所有第一步都是判断坐标的颜色是否一致,否则就一直等待)    # =====================    while True:        r,g,b = pyautogui.pixel(812,133)        color_hex = rgb2hex(r,g,b)        if color_hex == "FFFFFF":            break        print("搜索按钮颜色不是 FFFFFF,等待中...")        time.sleep(0.5)    pyautogui.click(812,133)    time.sleep(0.5)    # =====================    # 第 3 步:点击描述输入框(351,483)(所有第一步都是判断坐标的颜色是否一致,否则就一直等待)    # =====================    while True:        r,g,b = pyautogui.pixel(351,483)        color_hex = rgb2hex(r,g,b)        if color_hex == "FFFFFF":            break        print("描述输入框颜色不是 FFFFFF,等待中...")        time.sleep(0.5)    pyautogui.click(351,483)    time.sleep(0.3)    pyautogui.typewrite(desc_value, interval=0.05)      #输入变量信息desc_value,并等待0.05秒    # =====================    # 第 4 步:键盘按回车    # =====================    pyautogui.press("enter")    time.sleep(0.5)    # =====================    # 第 5 步:点击应用按钮(907,507)(颜色判断 + 报错处理)    # =====================    while True:        # 获取按钮颜色        r,g,b = pyautogui.pixel(907,507)        color_hex = rgb2hex(r,g,b)        success_color = "FFFFFF"  # 预期颜色        if color_hex == success_color:            print("应用按钮点击成功,继续下一步")            break  # 成功,跳出循环        else:            print("点击应用报错,按回车并重试...")            # 第1步:按回车            pyautogui.press("enter")            time.sleep(0.2)            # 第2步:再点击按钮            pyautogui.click(907,509)  # 报错备用坐标            time.sleep(0.5)    # =====================    # 第 6 步:点击保存并重复按钮(661,642)(所有第一步都是判断坐标的颜色是否一致,否则就一直等待)    # =====================    while True:        r,g,b = pyautogui.pixel(661,642)        color_hex = rgb2hex(r,g,b)        if color_hex == "FFFFFF":            break        print("保存并重复按钮颜色不是 FFFFFF,等待中...")        time.sleep(0.5)    pyautogui.click(661,642)    time.sleep(0.5)    # =====================    # 第 7 步:标记 Excel    # =====================    df.at[row, "OK"] = "OK"    print("第", row, "行完成")    row += 1# =====================# 第 8 步:保存结果# =====================# 使用时间戳防止覆盖文件名 = datetime.datetime.now().strftime(r"D:\按键精灵\处理结果_%Y%m%d_%H%M%S.xlsx")df.to_excel(文件名, index=False)print("脚本全部完成!已保存为", 文件名)
 0   0  14天前
qq446825518
10
进程守护者版本:启动命令:nohup ./smb_guard.sh > /tmp/smb_guard.log 2>&1 &停止守护命令:pkill -f smb_guard.shsmb_guard.sh(守护进程版)#!/bin/bash# =========================================# 宝塔 SMB 守护进程脚本# 功能:# 1. 挂载 SMB 共享# 2. 自动检测挂载状态,如果断开则重连# 3. 输出日志# =========================================# ===== 配置区 =====SMB_IP="IP地址"SMB_USER="用户名"SMB_PASS="密码"SMB_SHARE="smb"  # 共享文件夹目录名称LOCAL_MOUNT="/mnt/smb"   # 挂载到centos目录下的名称SMB_VERSION="3.0"      # SMB 协议版本,可改为2.0或1.0CHECK_INTERVAL=30       # 每隔多少秒检测挂载状态LOG_FILE="/tmp/smb_guard.log"# ==================# 安装cifs-utils(可选)if ! command -v mount.cifs &> /dev/nullthen    echo "$(date) 未安装 cifs-utils,开始安装..." | tee -a $LOG_FILE    if command -v yum &> /dev/null; then        yum install -y cifs-utils | tee -a $LOG_FILE    elif command -v apt &> /dev/null; then        apt update && apt install -y cifs-utils | tee -a $LOG_FILE    else        echo "$(date) 无法自动安装 cifs-utils,请手动安装" | tee -a $LOG_FILE        exit 1    fifi# 创建挂载目录mkdir -p $LOCAL_MOUNT# 守护循环while true; do    if mountpoint -q $LOCAL_MOUNT; then        echo "$(date) SMB 挂载正常: $LOCAL_MOUNT" | tee -a $LOG_FILE    else        echo "$(date) 挂载丢失,重新挂载..." | tee -a $LOG_FILE        mount -t cifs //$SMB_IP/$SMB_SHARE $LOCAL_MOUNT -o username=$SMB_USER,password=$SMB_PASS,vers=$SMB_VERSION,cache=none        if mountpoint -q $LOCAL_MOUNT; then            echo "$(date) ✅ 挂载成功" | tee -a $LOG_FILE        else            echo "$(date) ❌ 挂载失败,请检查网络/用户名/密码" | tee -a $LOG_FILE        fi    fi    sleep $CHECK_INTERVALdone完整脚本:mount_smb.sh终端命令版本 赋予执行权限chmod +x mount_smb.sh ./mount_smb.sh #!/bin/bash # ========================================= # 宝塔 SMB 自动挂载脚本 # 功能: # 1. 挂载 SMB 共享到本地 # 2. 自动检测已有挂载并卸载 # 3. 禁用缓存,保证文件实时刷新 # 4. 列出挂载目录文件 # ========================================= # ===== 配置区 ===== SMB_IP="IP地址" SMB_USER="用户名" SMB_PASS="密码" SMB_SHARE="share" # 文件夹名字 LOCAL_MOUNT="/mnt/smb" # centos挂载显示的目录名字 SMB_VERSION="3.0" # SMB 协议版本,可改为2.0或1.0 # ================== # 安装cifs-utils(可选,如果未安装) if ! command -v mount.cifs &> /dev/null then echo "未安装 cifs-utils,开始安装..." if command -v yum &> /dev/null; then yum install -y cifs-utils elif command -v apt &> /dev/null; then apt update && apt install -y cifs-utils else echo "无法自动安装 cifs-utils,请手动安装" exit 1 fi fi # 创建挂载目录 mkdir -p $LOCAL_MOUNT # 如果已经挂载,先卸载 if mountpoint -q $LOCAL_MOUNT; then echo "检测到已挂载,正在卸载..." umount $LOCAL_MOUNT sleep 1 fi # 挂载 SMB 共享 echo "挂载 SMB 共享..." mount -t cifs //$SMB_IP/$SMB_SHARE $LOCAL_MOUNT -o username=$SMB_USER,password=$SMB_PASS,vers=$SMB_VERSION,cache=none # 检查挂载是否成功 if mountpoint -q $LOCAL_MOUNT; then echo "✅ 挂载成功!挂载目录:$LOCAL_MOUNT" echo "文件列表如下:" ls -l $LOCAL_MOUNT else echo "❌ 挂载失败,请检查用户名/密码/共享名/网络" exit 1 fi # ===== 可选:循环刷新文件列表 ===== # echo "开始循环刷新文件列表,每10秒刷新一次(Ctrl+C停止)" # while true; do # echo "===== 文件列表 $(date) =====" # ls -l $LOCAL_MOUNT # sleep 10 # done 下面是卸载命令: 文件名字 unmount_smb.sh ./unmount_smb.sh #!/bin/bash# =========================================# 宝塔 SMB 卸载脚本# 功能:# 1. 检测挂载# 2. 安全卸载 SMB 挂载目录# =========================================# 挂载目录LOCAL_MOUNT="/mnt/smb"# 检查是否挂载if mountpoint -q $LOCAL_MOUNT; then    echo "检测到挂载,正在卸载..."    umount $LOCAL_MOUNT    if [ $? -eq 0 ]; then        echo "✅ 卸载成功!"    else        echo "❌ 卸载失败,请检查目录是否被占用"    fielse    echo "⚠️ 目录未挂载,无需卸载"fi
 0   0  35天前
qq446825518
43
1.shift+m,隐藏铺铜2.shift+b,取消当前的铺铜
 0   0  109天前
qq446825518
48
1.AMS1117-3.32.0,0805贴片电容,0805 100NF 0.1UF 10% 25V ,0805的封装3.贴片电阻,有常见的几种封装,0603 0805 1206贴片电阻4.发光二极管0402 0603 0805 1206
 0   0  110天前
qq446825518
55
在HA中,有的显示的状态不满意可以先在开发者工具,状态,先查看实体的ID,我这边已这个实体ID为例:binary_sensor.mx_21f_gan_ying_qi状态是 on on,在真实的实体显示的是:“已触发”,(让他显示“有人”)off,显示的是:“未触发”  (让他显示“无人”)在configuration.yaml改template:         # 这个是定义模板的意思  - sensor:        # 我们自己创建的模板,状态你说了算      - name: "MX-21F 感应器美化"    # 你自己自定义一个新的传感器名字(你界面上会看到)        unique_id: "mx21f_status_sensor"   # 建议添加唯一ID,便于以后维护,也是自己写一个虚拟ID        state: >-          {% if is_state('binary_sensor.mx_21f_gan_ying_qi', 'on') %}    #真ID:binary_sensor.mx_21f_gan_ying_qi            有人          {% elif is_state('binary_sensor.mx_21f_gan_ying_qi', 'off') %}   #真ID:binary_sensor.mx_21f_gan_ying_qi            无人          {% else %}            未知         #两种状态都不对时,显示其他的参数,自己定义名字            {% endif %}        icon: mdi:motion-sensor   # 图标(可选)保存重启即可
 0   0  152天前
qq446825518
67
mqtt:  binary_sensor:    - name: "煤气报警"      state_topic: "home/esp8266/gas/status"      payload_on: "ALERT"      payload_off: "OK"      device_class: gas    - name: "MX-21F 感应器"      state_topic: "home/esp8266/mx21f"      payload_on: "on"      payload_off: "off"      device_class: motion    - name: "水浸报警"      state_topic: "home/esp8266/water/status"      payload_on: "LEAK"      payload_off: "DRY"      device_class: moisturedevice_class: motion 这个值,决定了状态翻译成什么
 0   0  153天前
qq446825518
164
编辑下面是订阅主题的格式模板及意思configuration.yamlswitch: - platform: mqtt (协议是走的MQTT协议) name: "ESP8266 GPIO2" (这里是定义你这个设备在HA系统中显示的名字,可以自己定义名称) state_topic: "home/esp8266/gpio2" (这个主题是你代码的主题名称,必须跟你代码的一样,) command_topic: "home/esp8266/gpio2/set" (这是 HA 发送命令控制 ESP8266 的主题。) payload_on: "ON" (控制 ESP8266 的命令,分别为 ON 和 OFF,默认就行) payload_off: "OFF" (控制 ESP8266 的命令,分别为 ON 和 OFF,默认就行) qos: 1(消息的 QoS 等级。这里设置为 1,表示消息至少发送一次,默认就行) retain: false当设置为 false 时,表示 MQTT 服务器不会保存该消息,即当 ESP8266 断开连接重新连接时,不会自动恢复之前的状态。如果设置为 true,则 MQTT 服务器会保留该消息,这意味着即使设备断开连接,再次连接时会接收到最新的消息,从而恢复到之前的状态。模板样式:switch:  - platform: mqtt    name: "ESP8266 GPIO2"    state_topic: "home/esp8266/gpio2"    command_topic: "home/esp8266/gpio2/set"    payload_on: "ON"    payload_off: "OFF"    qos: 1    retain: false
 0   0  161天前
qq446825518
250
centos7利用EasyTier的组网方式,使用 Web 控制台,设置开机自启的两种方式1,第一种方式,使用宝塔的守护者进程来启动。 下载安装 easytier-linux-x86_64-v2.3.2.zip文件解压到opt目录下。打开进程守护者。选择好进程目录/opt/easytier-linux-x86_64/启动命令:nohup ./easytier-core -w 你的用户名你想全面一点可以这样写sudo ./easytier-core -w <你的用户名> --machine-id <你的设备ID号,连接了在web后台可以看到> --hostname <自己定义主机名>然后在后台https://easytier.cn/web#/auth登录配置即可2,第二种方式,下载安装 easytier-linux-x86_64-v2.3.2.zip文件解压到opt目录下使用命令设置开机自启动在/etc/rc.local修改cd /opt/easytier-linux-x86_64nohup ./easytier-core -i 你想分配的虚拟IP地址 --network-name 你的用户名 --network-secret 你的密码 --peers tcp://你搭建的服务器ip:11010 > /dev/null 2>&1 &
 0   0  162天前
guest
登录之后更精彩~
我的小伙伴
Powered by HadSky 7.1.1
© 2015-2025 PuYueTian
您的IP:216.73.216.38,2025-12-06 11:20:39,Processed in 0.04953 second(s).
Powered by HadSky
© 2012 - 2022 壹素天财 版权所有