首页
壁纸
关于
推荐
战略合作
Google
主题Joe
Search
1
涂鸦设备本地化接入(涂鸦电表)
13 阅读
2
CentOS 定时同步指定文件到ftp
6 阅读
3
laydate输入日期年月日时分,以十分钟为间隔,不需要秒
5 阅读
4
记一次Django_cas_ng数据库migrate错误
5 阅读
5
Centos7 安装python3并配置pip
4 阅读
运维
Windows
Linux
MacOS
Android
vmware
开发
Python
Go
Html
Electron
智家
HomeAssistant
ESPhome
Unraid
群晖
网络相关
登录
Search
标签搜索
运维
Linux
Python
django
智能家居
Nginx
MACos
brew
layui
cas
群晖
nas
zabbix
vim
JDK
sonar
jenkins
Nexus
转发
mysql
Ruike
累计撰写
29
篇文章
累计收到
109
条评论
首页
栏目
运维
Windows
Linux
MacOS
Android
vmware
开发
Python
Go
Html
Electron
智家
HomeAssistant
ESPhome
Unraid
群晖
网络相关
页面
壁纸
关于
推荐
战略合作
Google
主题Joe
搜索到
5
篇与
的结果
2023-09-21
Windows远程登录提醒
由于RDP远程桌面功能非常方便,但又存在较高风险,只能通过提高安全防护,避免造成损失。本文记录一种邮件提醒远程登陆的方法和过程。工作原理:1.利用windows的计划任务功能,当远程登陆的时候,调用指定的程序;2.此处调用的是python脚本,利用python来完成发送邮件的功能;3.在python脚本中调用一个EXE小程序来获取登陆信息(用户名,客户端名称等信息)————————————————原文链接:https://blog.csdn.net/qq446252221/article/details/112810295一、获取远程登陆信息第一步:写一个EXE小工具,获取远程登陆信息使用C语言编写,通过win32底层API读取客户端信息;并把信息打印到标准输出以便后面python读取。这个方法不能获取到准确的客户端IP地址,这里的IP地址其实是内网地址。暂时还没有找到如何获取客户端公网IP的办法。完整的C语言源码如下(只支持Windows Vista及以上系统版本):#include <stdio.h> #include <Windows.h> #include <wtsapi32.h> #pragma comment(lib, "wtsapi32.lib") static const char *af_str[]= { "AF_UNSPEC", "AF_UNIX", "AF_INET", "AF_IMPLINK", "AF_PUP", "AF_CHAOS", "AF_IPX", "AF_NS", "AF_ISO", "AF_OSI", "AF_ECMA", "AF_DATAKIT", "AF_CCITT", "AF_SNA", "AF_DECnet", "AF_DLI", "AF_LAT", "AF_HYLINK", "AF_APPLETALK", "AF_NETBIOS", "AF_VOICEVIEW", "AF_FIREFOX", "AF_UNKNOWN1", "AF_BAN", }; void main(void) { DWORD cbReturned; PWTSCLIENTA pData; if(WTSQuerySessionInformationA(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSClientInfo, (LPSTR*)&pData, &cbReturned)) { printf("UserName:%s\r\n", pData->UserName); printf("ClientName:%s\r\n", pData->ClientName); printf("ClientBuildNumber:%d\r\n", pData->ClientBuildNumber); printf("ClientAddressFamily:%s\r\n", af_str[pData->ClientAddressFamily]); printf("ClientAddress(raw):%d.%d.%d.%d\r\n", pData->ClientAddress[0],pData->ClientAddress[1],pData->ClientAddress[2],pData->ClientAddress[3]); printf("ClientAddress(str):%ls\r\n", pData->ClientAddress); WTSFreeMemory(pData); return; } printf("WTSQuerySessionInformationA Failed!\r\n"); printf("Error:%08X\r\n", GetLastError()); //system("pause"); } 二、发送提醒第二步:写一个python脚本,调用上面的小工具,并读取输出,然后发送通知,这里使用了企微的群机器人#!/usr/bin/env python3 # _*_ coding: utf-8 _*_ # @Author : Ruike # @Time : 2023/9/21 16:35 # @File : rdp_notice.py # @Project :获取RDP登陆信息,并发企微提醒 import subprocess import requests import datetime import re # 设备名称 DEVICE = "xxxx" # 企微机器人KEY KEY = "xxxxxx" # 指定EXE小工具的路径 RDPINFO_EXEPATH = "rdp_info.exe" # 获取登陆信息 def get_login_info(): out = subprocess.check_output(RDPINFO_EXEPATH, timeout=3) context = out.decode("utf8") if 'Error:' not in context: key_list = ('登录用户', '设备名称', '设备序号', '地址系列', '设备IP(raw)', '设备IP(str)') datas = re.findall(r":(.*?)\n", context) data_len = len(datas) if len(key_list) == data_len: context = '' for i in range(data_len): context += "%s: %s\n" % (key_list[i], datas[i]) else: # 如果匹配不上,直接使用替换法 keys = { 'UserName': '登录用户', 'ClientName': '设备名称', 'ClientBuildNumber': '设备序号', 'ClientAddressFamily': '地址系列', 'ClientAddress(raw)': '设备IP(raw)', 'ClientAddress(str)': '设备IP(str)' } for k, v in keys.items(): context = context.replace(k, v) else: # 如果有异常或其它情况,直接原数据返回 pass return context # 企业微信机器人 def send_groupbot(key, content): bot_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=%s" % key datas = { "msgtype": "text", "text": { "content": content, } } req = requests.post(bot_url, json=datas, auth=('Content-Type', 'application/json')) return req.text # 程序入口 if __name__ == '__main__': time_str = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') info_str = get_login_info() msg = "%s被登陆提醒\n%s\n登录时间:%s" % (DEVICE, info_str, time_str) send_groupbot(KEY, msg) 三、配置触发在windows计划任务里面添加任务,当远程登陆时调用我们的python脚本。1.打开“计算机管理”,找到"任务计划程序",点击“创建任务”2.名称随便写,比如“远程登陆提醒”3.设置“触发器”,如下图所示,选择“当连接到用户会话时”,“远程计算机的连接”触发器执行条件记得需要将exe和py文件放在同个目录最后点击“确定”,计划任务就添加好了。四、微信通知企微可以做微信插件通知,登录企微后台-我的企业-微信插件,按照提示关注即可。微信端可以自己看到的消息类型是text和图文消息。
2023年09月21日
4 阅读
0 评论
0 点赞
2023-07-18
Node-Red自动化重载应用
前言:因通过Media集成的热水器会不定期不可用,导致Homekit或自动化失效,故需要监控并重载集成,以保证其可靠性使用NR自动化重载总览热水器状态监控节点,状态为unavailable重载热水器集成节点其中,Data为{"entry_id": "xxxx"}entry_id 需在/config/.storage/core.entity_registry 中找到对应设备的 config_entry_id
2023年07月18日
4 阅读
27 评论
0 点赞
2023-03-27
涂鸦设备本地化接入(涂鸦电表)
记录deviceID 6cf84a03f2bb7af2e0g0lh设备key v!Wk2=mcM/IfQTgR一、安装localtuyaHACS可以直接搜索安装项目地址分享(感谢rospogrigio大神)https://github.com/rospogrigio/localtuya(其实github上也说得很清楚了,这边帮忙整理转译下)二、localTuya配置1、设置涂鸦平台账号并在其中添加设备注册登录https://iot.tuya.com选择云开发-->进入云开发-->创建云项目按照实际填写项目信息记得加上设备状态通知的API,开通授权创建后进入项目,设备--关联涂鸦APP账号--添加APP账号--打开APP扫码绑定绑定后可以在该账号管理下,关联你账号下的设备添加需要的设备即可2、添加local tuya集成点击添加集成--搜索local tuya按下图添加3个参数三、本地设备接入添加后的localtuya点击选项--Add a new device就会看到你的设备,选择要添加的设备,就能自动获取到该设备的ip和key,此设备记得DHCP固定IP。按需选择提交(一般默认值即可,需要详细解释可看github链接)然后,按需选择需要添加的设备实体类型,开关一般是switch,传感器或数值是sensor未添加完成所有实体前请不要勾上Do not add any more entlties,才能继续添加下一个直到添加完所有实体,再勾选保存,即可完成此设备添加。如果漏了实体,后续可以删掉该设备重新上述添加流程然后选择该实体的ID,点击下拉可以看到为添加的实体状态或数值,可以参照APP里面设备的数据来确认此IDScaling Factor是缩放比例,假如你在app看到的数值为12.34,在HA看到ID的为1234,那缩放比例就是0.01四、附已知的涂鸦设备实体1、炬为轨道电能表ID名称单位类型比例1开关-switch-18电流ACurrent0.00119功率WPower0.0120电压VVoltage0.01102费用RMBCost0.001123总功耗kWhEnergy0.001133频率HZFrequency0.01134功率因数PFPower Factor0.01135电表温度℃Temperature1更多设备,欢迎各位大佬补充
2023年03月27日
13 阅读
0 评论
0 点赞
2020-06-09
小米扫地机加入homekit教程
一、Token的获取:小米Wifi智能家居需要获取32位的token才可以接入HA下面大概说一下IOS获取Token的方法,Android的更容易一些,可以自行了解。苹果手机安装米家App, 登录小米账号并确定设备已绑定已初始化安装itunce, 不加密备份手机安装iBackup Viewer,打开你刚才的备份选最后面的选择Raw Files,右上角切好Tree View视图,找到AppDomain-com.xiaomi.mihome,选择右边的Documents/xxxx_mihome.sqlite,点击右上角Export导出文件电脑上使用Navicat等数据库软件打开导出的Sqlite文件,找到表ZDEVICE,可以查看对应的ZNAME或ZMODEL找到你需要加入设备的ZTOKEN(ios上是96位)在这个网页上将96位Token转成32位: 00000000000000000000000000000000 将最终获取到的Token保存起来。注意,每次重置Wifi或设备,Token都会变,到时候请重新获取。二、接入HomeAssistant:1、 编辑 configuration.yaml文件,加入如下配置:vacuum: - platform: xiaomi_miio name: 'robot' host: 192.168.1.x # 你的扫地机IP token: 53xxxxxx74 # 上面获取到的Token model: rockrobo.vacuum.v1 # 你的扫地机型号(可不用此项)2、 编辑 customize.yaml文件,加入如下配置:vacuum.robot: friendly_name: '小米扫地机' homebridge_hidden: false homebridge_name: 'robot' emulated_hue_hidden: true3、检查配置无误后,重启Homeassistant,然后就可以在实体里看到扫地机啦4、不过这时候在Apple的Homekit里还看不到扫地机,因为Homekit不支持扫地机,我们往下看三、接入Homekit:因为Homekit不支持扫地机这种设备,所以我们需要将扫地机在Homebridge中声明称按键即可:1、编辑 customize.yaml文件,加入一条配置:homebridge_switch_type: switch完整版:vacuum.robot: friendly_name: '小米扫地机' homebridge_hidden: false homebridge_name: 'robot' emulated_hue_hidden: true homebridge_switch_type: switch2、检查配置无误,重启HA即可在HK里刷出扫地机啦,开关只有两个状态:开始清扫和回充,应该可以满足大部分需求了。3、如果不满足,可以根据以下接口做更细化的对接四、附录-小米扫地机接口与属性(一)接口:1、HA中所有扫地机器人的通用指令:turn_on、 turn_off、 start_pause、 stop、 return_to_home、 locate、 set_fanspeed、 send_command2、远程启动vacuum/xiaomi_remote_control_start属性可选性描述entity_id是指明 ID 仅对部分设备有效,否则全局响应3、退出远程控制模式vacuum/xiaomi_remote_control_stop属性可选性描述entity_id是指明 ID 仅对部分设备有效,否则全局响应4、远程控制扫地机器人确保操作前已经开启远程控制模式 remote_control_startvacuum/xiaomi_remote_control_move属性可选性描述entity_id是指明 ID 仅对部分设备有效,否则全局响应velocity否速度,值区间为 -0.29 至 0.29rotation否旋转, 值区间为 -179° 至 179°duration否持续时间5、进入遥控模式执行完退出手动控制模式vacuum/xiaomi_remote_control_move_step属性可选性描述entity_id是指明 ID 仅对部分设备有效,否则全局响应velocity否速度,值区间为 -0.29 至 0.29rotation否旋转, 值区间为 -179° 至 179°duration否持续时间(二)属性:1、HA上所有扫地机器的默认属性 [vacuum component attributes]battery_icon、 cleaned_area、 fan_speed、 fan_speed_list、 status、 params2、专有属性属性单位说明do_not_disturb 勿扰模式开启关闭状态cleaning_timeminutes 分钟最近清洁时间cleaned_areasquare meter 平方米最近清洁区域统计main_brush_lefthours 小时主刷剩余寿命side_brush_lefthours 小时边刷剩余寿命filter_lefthours 小时滤网剩余寿命cleaning_count 总清洁通道数total_cleaned_areasquare meter 平方米总清洁范围total_cleaning_timeminutes 分钟总清洁时间五、声明本教程发于国内homeassistant论坛和个人博客,欢迎转发,但请保留出处,感谢六、另附安卓版获取token的简单办法原因在于米家 5.4.54 版本的 App 有一个小 bug,其中写入内部存储器的日志文件暴露了小米 miio 设备的设备 token。安装米家 v5.4.54 版本(下载地址)登录小米账户等待设备连接,正常操作一遍设备使用文件资源管理器导航到/sdcard/SmartHome/logs/Plug_Devicemanager/打开名称为 yyyy-mm-dd.txt 的日志文件在文档中搜索 token 或你需要的设备名称
2020年06月09日
3 阅读
0 评论
0 点赞
2019-04-24
群晖安装flexget
一、安装transmission by yourself安装你喜欢的安装transmission,可套件可docker二、安装flexget套件中心--设置--增加源:http://packages.synocommunity.com/设置—常规—发行者:任何,使用版:是在社区中,找到flexget,安装,提示安装python2.7,确定安装安装完flexget后重启下DSM,不然flexget会启动不了重启后,进ssh,进入flexget安装目录,如:cd /volume1/@appstore/flexget/进入flexget安装目录下的env/bin,安装transmissionrpc(如果安装不成功,请参考 官网)./easy_install transmissionrpc进入flexget安装目录下的var,上传配置文件config.yml,内容参考如下:templates: #全局模板,写上这个后,不用每个task都写上accept_all: yes global: accept_all: yes #transmission的通用模板 myTR: transmission: host: 192.168.2.50 port: 9091 username: admin password: xxxxx tasks: pthome: rss: http://xxxxxxxxx template: - myTR pter: rss: http://xxxxxxxxxx template: - myTR schedules: - tasks: [pthome,pter] interval: minutes: 5保存后在套件中心启动flexget,启动成功,等待5分钟,可以进入flexget安装目录下的varcat flexget.log 查看日志,显示如下则启动成功,看你的tr有没开始自动开始,enjoy三、参考文献flexget配置详细配置文档群晖安装transmission+flexget自动推送RSS
2019年04月24日
3 阅读
0 评论
0 点赞