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

标题: 基于Tasmota DIY红外遥控器,支持模拟空调浴霸等高码率信号 [打印本页]

作者: natic    时间: 2018-12-30 17:20
标题: 基于Tasmota DIY红外遥控器,支持模拟空调浴霸等高码率信号
本帖最后由 natic 于 2022-5-20 14:42 编辑

Tasmota 18年12月25号更新了v6.4.1版本,增加了发送和接受IR raw data的支持,但是源码不支持空调浴霸这类型的大比特率的红外码,需要对源码进行一些修改才能获得支持(后面有具体的方法)

前期准备,除去mcu其他元件最多几毛钱一个,综合成本超级低
1,esp8266开发板,nodemcu sonoff basic都可以
2,1838B红外接收管
3,2N2222晶体管
4,红外发射管,型号随意
5,电阻杜邦线面包板若干
6,刷tasmota配置wifi和mqtt服务器这些论坛里面有很多帖子,这里就不重复了
刷好最新固件进入tasmota配置页面,如下图配置,保存

                               
登录/注册后可看大图

                               
登录/注册后可看大图


[attach]12464[/attach]

然后在进console输入SetOption58 1
[attach]12465[/attach]

连接红外发射和接收管到开发板,如下电路图
接线可以参考https://github.com/altelch/SonoffIR
1,1838B红外接收管最左边是数据头接GPIO,中间GND, 最右边3.3v
2,红外发射管正极接2.5-5欧电阻,电阻接到3.3v,负极接晶体管集电极c
3,晶体管基极b接GPIO,这里三极管b只负责通断路,为了安全最好串联一个电阻以免电流过大引发火灾,我用的330欧姆
4,晶体管发射级e接GND

                               
登录/注册后可看大图

[attach]12463[/attach]


配置好重启8266即可,使用遥控器在接收管旁边按一下就能接收到如下mqtt消息
  1. tele/sonoff/RESULT {"IrReceived":{"Protocol":"UNKNOWN","Bits":196,"Data":"F149067","RawData":[3480,1816,392,496,392,1366,392,494,392,494,394,496,392,498,392,494,392,496,392,496,366,518,392,496,366,518,366,520,366,1392,390,498,392,498,392,494,392,494,392,494,392,496,392,1366,392,494,392,1366,392,1370,392,496,392,494,392,1366,392,494,392,494,394,1364,392,480,392,508,392,494,392,1366,392,494,390,498,366,1392,394,1368,366,518,394,1368,368,1390,392,494,390,494,368,518,368,1392,368,518,394,494,368,520,368,1370,414,494,368,1388,392,496,368,518,394,1366,390,496,394,494,390,496,368,520,368,516,394,494,366,520,394,496,366,1392,394,496,392,1366,368,518,368,520,368,518,368,1392,392,496,368,1388,394,496,366,1392,394,496,388,1368,394,496,366,518,368,1392,366,1392,390,496,392,496,366,518,392,494,392,496,368,520,366,520,366,520,368,1392,368,518,394,1368,366,1390,366,520,394,496,366,520,368,520,368,1390,394,30194,3476,1790,390,496,366,1392,390,496,366,520,390,498,366,520,392,498,366,522,366,522,390,498,366,520,392,500,366,518,392,1368,366,522,392,498,366,518,390,496,366,520,392,496,366,1392,366,518,392,1368,394,1370,366,520,390,498,366,1392,388,498,366,520,344,1412,368,518,372,514,392,498,394,1368,392,496,366,520,392,1368,366,1392,366,520,366,1392,390,1372,366,520,366,522,366,520,394,1366,390,498,368,520,388,498,366,1394,392,496,366,1390,366,522,390,498,390,1370,392,496,344,542,366,520,392,494,366,522,366,522,344,542,390,500,390,1368,392,496,366,1392,392,496,366,520,366,520,366,1392,390,498,390,1368,392,496,366,1394,392,494,392,1368,366,522,392,496,390,1368,392,1368,366,522,366,502,368,538,388,498,392,496,368,518,366,522,390,496,366,1392,366,520,366,1392,392,1368,366,522,390,474,370,540,390,498,390,1370,366],"RawDataInfo":[391,391,0]}}
复制代码

注意mqtt消息中几个JSON元素,
"Bits":196  196代表红外信号的比特率
"RawData":[xx,xx,xx,xx,xx,xx],就是我们接收到的原始红外码,用作后续的红外发送
"RawDataInfo":[391,391,0],这个是校验码,如果前面2个参数必须一样,记住这两个参数,测试发射的时候还会用上,具体参数的意义参考Theo的原文
https://github.com/arendst/Sonof ... uecomment-440716483

使用mqtt发送红外raw data,叉叉就是上面咱们收到的RawData里面的内容,0代表38kHz的发射频率,这里使用0即可
  1. cmnd/sonoff/IRSend 0,xxx,xxx,xxx
复制代码


如果进行的顺利会再收到2条mqtt消息,一条代表发送成功,如下所示
  1. stat/sonoff/RESULT {"IRSend":"Done"}
复制代码

另外一条则是你刚才发送的消息,因为发送的同时会被接收器接收到,比对发送的和接收的消息是否一致,RawDataInfo参数是否一样,如果不一样说明并且bits比较高那么你需要按照如下的步奏更改源码并且重新编译

隐藏内容是编译好的bin文件和代码修改部分,适用于高码率的设备
[attach]12871[/attach]
我在第一时间更新了6.4.1版本,但是事实很残酷,有很多坑需要填,Theo仅仅支持了比较小的红外码,比如32bits
1,Console里面的irsend命令长度有限制,最好用终端发mqtt消息来测试
2,可能需要增加源码中mqtt包的大小,取决于你的红外消息长度,我的浴霸遥控有196bits, 391个包,一个包里面平均3-4个数字外加逗号分隔符,所以需要设置为2000左右
  1. /lib/PubSubClient-EspEasy-2.6.09/src/PubSubClient.h 27行
复制代码

                               
登录/注册后可看大图
[attach]12466[/attach]


  1. /sonoff/sonoff_post.h  409行
复制代码
[attach]12467[/attach]

                               
登录/注册后可看大图


3,源码仅支持255长度的包,需要把byte类型改成uint16_t
  1. /sonoff/xdrv_05_irremote.ino  534行
复制代码

[attach]12459[/attach][attach]12461[/attach]

4,红外接收的buffer不够,间隔太短,需要修改
  1. /sonoff/my_user_config.h  384 385行
复制代码

[attach]12460[/attach]

做以上修改,并且重新编译刷机即可获得支持

下面是我在GitHub上面的回复,可以作为参考
https://github.com/arendst/Sonof ... uecomment-450535745




















作者: geyue2800    时间: 2018-12-30 18:40
很有兴趣,等学习
作者: jyz_0501    时间: 2018-12-30 18:54
了解一下
作者: sangood    时间: 2018-12-30 19:18
希望能补充下,自己做个遥控空调
作者: 囧    时间: 2018-12-30 23:01
灰常好的消息,希望楼主详细介绍下
作者: xieahui    时间: 2018-12-31 07:30
学习一下  一直没对红外动手!!     
作者: natic    时间: 2018-12-31 11:07
sangood 发表于 2018-12-30 19:18
希望能补充下,自己做个遥控空调

更新了基本步奏
作者: natic    时间: 2018-12-31 11:31
Jones 发表于 2018-12-30 23:01
灰常好的消息,希望楼主详细介绍下

已完善,紫薯布丁
作者: natic    时间: 2018-12-31 11:37
geyue2800 发表于 2018-12-30 18:40
很有兴趣,等学习

已经完善了
作者: natic    时间: 2018-12-31 11:38
jyz_0501 发表于 2018-12-30 18:54
了解一下

已经完善了基本步奏
作者: mengbo    时间: 2018-12-31 15:12
Tasmota DIY红外收发模块
作者: straw    时间: 2018-12-31 15:37
再看看看看
作者: natic    时间: 2019-1-1 11:42
已更新教程和实物图
作者: swh0660    时间: 2019-1-2 09:23

了解一下
作者: luzai    时间: 2019-1-2 10:14
不错不错 tasmota也支持了
作者: hu10917969    时间: 2019-1-2 10:16
感谢大神分享
作者: qzstock    时间: 2019-1-2 16:48
看下学习下
作者: natic    时间: 2019-1-2 17:06
qzstock 发表于 2019-1-2 16:48
看下学习下

不清楚的地方直接回帖,我会尽量解答
作者: kay7758    时间: 2019-1-2 18:57
这个不错,DIY到面板里面
作者: nice2943    时间: 2019-1-3 16:46
感謝樓主分享
作者: imenic    时间: 2019-1-4 11:09
有機會我也來弄一個,有問題再跟大大請教
作者: loskevin    时间: 2019-1-4 14:12
学习下, 谢谢
作者: xatsoft    时间: 2019-1-4 14:49
厉害啦,学习学习
作者: fuchenk    时间: 2019-1-4 15:40
很有兴趣,留贴学习
作者: thisiszhou    时间: 2019-1-5 08:38
学习学习,还没用过红外控制
作者: villen    时间: 2019-1-5 10:25
专门来看你的
作者: 305267382    时间: 2019-1-5 10:47

了解一下
作者: yaosong100    时间: 2019-1-5 14:47
膜拜大神啊呀呀呀呀
作者: appleftg    时间: 2019-1-6 14:24
学习学习
作者: wsbfree    时间: 2019-1-8 10:55
谢谢分享
作者: Master    时间: 2019-1-8 12:39
厉害了word楼主!
作者: airow    时间: 2019-1-9 01:29
mark有时间研究研究
作者: 李丑男    时间: 2019-1-9 14:07
这个学习一下。
作者: xpeng86    时间: 2019-1-9 16:13
一直在找这方面的资料,感谢分享
作者: seamo    时间: 2019-1-10 00:23
刷机中。。。。 打算外加个射频 美滋滋
作者: psd456789    时间: 2019-1-10 15:11
多谢了
作者: MattSmell    时间: 2019-1-12 13:51
学习一下
作者: gently    时间: 2019-1-12 19:57
经典经典
作者: yingzaiha    时间: 2019-1-12 22:20
学习一下
作者: m5361541    时间: 2019-1-13 19:56

很有兴趣,等学习
作者: xuyang    时间: 2019-1-15 09:59
学习一下
作者: lijinqiu    时间: 2019-1-15 11:15
谢谢分享!!!
作者: dunant    时间: 2019-1-15 11:20
学习一下
作者: litao8174    时间: 2019-1-15 11:31
感谢分享
作者: sunfang1cn    时间: 2019-1-15 14:31
已下单,先马后看
作者: xuandchun    时间: 2019-1-15 15:13
谢谢楼主分享!!!
作者: gkq1877    时间: 2019-1-15 16:18
谢谢发现了
作者: natic    时间: 2019-1-16 10:40
sunfang1cn 发表于 2019-1-15 14:31
已下单,先马后看

最好多买几个  红外管一不留神就烧掉了
作者: natic    时间: 2019-1-17 16:30
seamo 发表于 2019-1-10 00:23
刷机中。。。。 打算外加个射频 美滋滋

射频原本就支持了
作者: 924215947    时间: 2019-1-17 23:17
谢谢谢谢
作者: litao8174    时间: 2019-1-17 23:24
感谢分享,十分实用。
作者: lunksana    时间: 2019-1-18 10:11
那射频部分是否也可以这样操作?
作者: natic    时间: 2019-1-18 10:22
lunksana 发表于 2019-1-18 10:11
那射频部分是否也可以这样操作?

射频部分不需要改源码,应该直接就能用
作者: zhongjiafa    时间: 2019-1-19 02:13
谢谢我来看看怎么样******
作者: hncdbai    时间: 2019-1-19 10:38
很有兴趣,等学习
作者: zhongjiafa    时间: 2019-1-21 16:12
本人小白,麻烦大神讲一下如何接入ha,如何控制。对这很有兴趣。己卖物料在路上。膜拜大神,干死博联。
作者: natic    时间: 2019-1-21 16:21
zhongjiafa 发表于 2019-1-21 16:12
本人小白,麻烦大神讲一下如何接入ha,如何控制。对这很有兴趣。己卖物料在路上。膜拜大神,干死博联。 ...

通过mqtt接入,具体mqtt消息体在帖子里面有,ha配置mqtt也很容易在网上搜到,如果你是松下浴霸可以参考我另外一篇帖子自定义组件
作者: 671792320    时间: 2019-1-24 18:23
感谢分享~~~~~~~
作者: sunfang1cn    时间: 2019-1-26 21:17
natic 发表于 2019-1-16 10:40
最好多买几个  红外管一不留神就烧掉了

根据楼主的帖子自己目前已经做了三个模块了,整体上运行的比较稳定。
如果怕红外发射管烧掉,可以把红外管正极和3.3v之间的电阻加大,我加大到了100欧目前仍然可以使用但是有效遥控距离降低到了1m左右,刚好我家几个空调的红外码都一样,遥控距离低了可以有效防止误操作;
作者: natic    时间: 2019-1-26 22:34
sunfang1cn 发表于 2019-1-26 21:17
根据楼主的帖子自己目前已经做了三个模块了,整体上运行的比较稳定。
如果怕红外发射管烧掉,可以把红外 ...

5-10欧基本上就不会烧了
作者: ssl12281982    时间: 2019-1-26 22:46
果然高手云集
作者: metoo    时间: 2019-1-26 23:20
感谢楼主分享
作者: dpf1025    时间: 2019-1-27 20:12
楼主牛逼

作者: QQ617250210    时间: 2019-1-28 12:47
很有兴趣,等学习
作者: tqh5597    时间: 2019-1-28 16:02
6666666666
作者: suwill    时间: 2019-2-5 22:13
关注中,有时间研究下
作者: Roger    时间: 2019-2-11 18:53
natic 发表于 2019-1-1 11:42
已更新教程和实物图

按楼主的教程,已经成功控制了电视机的红外遥控,发射管和接收管,给出的RawDataInfo":[85,83,0],是一致的。

但是空调遥控器,用接收管学习到的信号,
  1. {"IrReceived":{"Protocol":"UNKNOWN","Bits":122,"Data":"6FDAA84B","RawData":[8344,4154,568,616,514,1598,518,1598,542,616,518,1622,512,594,518,1622,518,616,516,594,538,570,542,1620,518,592,514,1598,542,1596,542,1598,542,614,520,592,514,618,516,618,514,592,518,590,542,590,516,616,518,616,518,616,512,594,518,592,568,536,544,590,598,512,544,590,596,536,598,512,594,538,598,534,598,510,544,590,596,1542,598,512,544,590,542,590,596,538,538,568,596,538,570,538,542,592,596,514,540,592,542,588,598,538,570,538,596,538,596,512,542,590,596,536,540,594,568,538,596,538,596,512,544,590,596,514,540,590,596,536,570,564,596,512,542,590,596,512,544,590,596,538,568,540,596,536,596,538,596,512,542,590,596,512,590,542,596,538,596,514,542,588,596,536,598,512,564,568,598,538,570,536,544,588,596,514,542,590,596,536,598,538,568,538,596,536,596,512,542,590,598,512,564,568,600,532,596,536,596,512,544,564,620,514,542,590,596,514,594,538,596,538,544,590,598,512,544,590,596,514,592,538,596,536,598,512,544,590,544,588,596,512,590,542,598,1542,596,1518,594,538,544,588,598,510,468],"RawDataInfo":[243,243,0]}}
复制代码


然后使用irsend 0,命令去发射raw码

接收管给出的结果不一致
  1. {"IrReceived":{"Protocol":"UNKNOWN","Bits":63,"Data":"A137C362","RawData":[8352,4126,618,574,510,1608,564,1558,590,574,562,1584,510,602,562,1584,564,576,562,554,536,578,588,1578,564,552,510,1608,590,1554,590,1556,590,572,564,554,560,578,564,578,510,602,564,550,588,550,560,576,564,578,562,578,510,602,564,552,616,492,590,550,644,472,592,550,644,494,646,470,642,496,644,494,646,468,590,550,644,1500,646,470,590,550,588,548,644,496,538,576,644,496,618,496,590,550,642,472,562,576,590,548,646,498,618,496,644,496,644,470,588,550,644,494,586,554,616,496,644,496,644,470,592,550,644,472,586],"RawDataInfo":[125,125,0]}}
复制代码


RawData部分总是不一致的,好像是发射管发出的码,丢了一部分

已经修改my_user_config.h
  1. #define USE_IR_RECEIVE                         // Support for IR receiver (+7k2 code, 264 iram)
  2.     #define IR_RCV_BUFFER_SIZE      2048          // Max number of packets allowed in capture buffer (default 100 (*2 bytes ram))
  3.     #define IR_RCV_TIMEOUT          200           // Number of milli-Seconds of no-more-data before we consider a message ended (default 15)
  4.     #define IR_RCV_MIN_UNKNOWN_SIZE 6            // Set the smallest sized "UNKNOWN" message packets we actually care about (default 6)
复制代码


PubSubClient.h也修改成了
  1. // MQTT_MAX_PACKET_SIZE : Maximum packet size
  2. #ifndef MQTT_MAX_PACKET_SIZE
  3. //#define MQTT_MAX_PACKET_SIZE 128
  4. #define MQTT_MAX_PACKET_SIZE 2048   // Tasmota v5.11.1c
  5. #endif
复制代码


搞了好几天了,一致找不到解决办法,望楼主指导,谢谢
作者: natic    时间: 2019-2-11 19:05
Roger 发表于 2019-2-11 18:53
按楼主的教程,已经成功控制了电视机的红外遥控,发射管和接收管,给出的RawDataInfo":[85,83,0],是一致 ...

还有一个要改数据类型的改了吗?
作者: Roger    时间: 2019-2-11 19:09
natic 发表于 2019-2-11 19:05
还有一个要改数据类型的改了吗?

改了

  1. uint16_t raw_array[count];  // It's safe to use stack for up to 240 packets (limited by mqtt_data length)
  2.           uint16_t i = 0;
复制代码



作者: natic    时间: 2019-2-11 19:12
Roger 发表于 2019-2-11 19:09
改了

[code]uint16_t raw_array[count];  // It's safe to use stack for up t ...

mqtt_max_packet_size有2个地方
一个是你的Arduino库文件的PubSubClient.h
另外一个是tasmota工程sonoff_post.h
这两个好像会造成发送接收不一致
作者: Roger    时间: 2019-2-11 19:15
natic 发表于 2019-2-11 19:12
mqtt_max_packet_size有2个地方
一个是你的Arduino库文件的PubSubClient.h
另外一个是tasmota工程sonoff_ ...

这两个地方,我都改成了2048
作者: natic    时间: 2019-2-11 21:42
本帖最后由 natic 于 2019-2-11 21:46 编辑
Roger 发表于 2019-2-11 19:15
这两个地方,我都改成了2048

发现几个问题,你电视那个85,83其实是有问题的,正常这两个参数会一致然后就是你接收的信号明显少了很多,检查一下post.h那个文件,这个文件控制发射的

参数啥的都改过一轮还是没有效果只能开启串口调试了,把日志打印出来




作者: Roger    时间: 2019-2-12 17:30
natic 发表于 2019-2-11 21:42
发现几个问题,你电视那个85,83其实是有问题的,正常这两个参数会一致然后就是你接收的信号明显少了很多 ...

又仔细阅读了一遍帖子,我好像知道问题在哪里了:

1,Console里面的irsend命令长度有限制最好用终端发mqtt消息来测试
还是怪自己不仔细!唉!

作者: natic    时间: 2019-2-12 18:00
Roger 发表于 2019-2-12 17:30
又仔细阅读了一遍帖子,我好像知道问题在哪里了:

1,Console里面的irsend命令长度有限制,最好用终端发m ...

哈哈,我想起来了,我最开始也是console的问题,用了终端就好了
作者: Roger    时间: 2019-2-12 18:44
natic 发表于 2019-2-12 18:00
哈哈,我想起来了,我最开始也是console的问题,用了终端就好了

擦,一个小小的问题,搞了我好几天!

谢谢你!非常感谢!
作者: qzstock    时间: 2019-2-14 11:34
没看出来那个三极管的型号
作者: natic    时间: 2019-2-14 11:34
qzstock 发表于 2019-2-14 11:34
没看出来那个三极管的型号

2N2222
紫薯布丁
作者: maidoo    时间: 2019-2-14 22:36
关系红外的实现,回复看看,感谢LZ
作者: godflamingo    时间: 2019-2-15 00:33
谢谢分享

作者: tianzc    时间: 2019-2-15 09:30
谢谢 非常有帮助
作者: 造梦Sir    时间: 2019-2-18 10:35
学习一下
作者: lijinqiu    时间: 2019-2-18 20:56
您好,楼主,我下载了最新版的固件,烧录之后并没有 “IRrecv"这个引脚的配置选项??
固件版本Sonoff-Tasmota v6.4.1 sonoff.bin
https://github.com/arendst/Sonof ... d/v6.4.1/sonoff.bin
作者: natic    时间: 2019-2-18 21:09
lijinqiu 发表于 2019-2-18 20:56
您好,楼主,我下载了最新版的固件,烧录之后并没有 “IRrecv"这个引脚的配置选项??
固件版本Sonoff-Tasm ...

怎么可能嘛我的大兄弟,截图看看啊
作者: lijinqiu    时间: 2019-2-18 21:48
natic 发表于 2019-2-18 21:09
怎么可能嘛我的大兄弟,截图看看啊

这个是其中一个引脚的截图!
作者: natic    时间: 2019-2-19 09:20
lijinqiu 发表于 2019-2-18 21:48
这个是其中一个引脚的截图!

确实少了一大堆选项,在线升级,重置都试试吧,实在不行只能用Arduino IDE刷了
作者: lijinqiu    时间: 2019-2-19 09:55
natic 发表于 2019-2-19 09:20
确实少了一大堆选项,在线升级,重置都试试吧,实在不行只能用Arduino IDE刷了 ...

我看了一下工程,要刷sonoff sensor 才会有。。。。
作者: c794103684    时间: 2019-2-22 21:43
asssssssssssssss
作者: 260533755    时间: 2019-2-23 12:56
正在研究中 学习了

作者: dpf1025    时间: 2019-2-24 15:04
楼主,请问我的Tasmota固件中设置页面为什么没有IRrecv和IRsend选项……

固件版本是6.4.1
作者: natic    时间: 2019-2-24 22:18
dpf1025 发表于 2019-2-24 15:04
楼主,请问我的Tasmota固件中设置页面为什么没有IRrecv和IRsend选项……

固件版本是6.4.1 ...

刷原版的试试,然后可以参考86楼
作者: 200822470    时间: 2019-2-28 14:50

了解一下
作者: 200822470    时间: 2019-3-1 18:56
请问楼主,我能收到红外码,记下来后怎么用法,yiml文件怎么写,还有就是如果用着用着收不到红外码是不是接收头坏了呢
作者: natic    时间: 2019-3-1 22:46
200822470 发表于 2019-3-1 18:56
请问楼主,我能收到红外码,记下来后怎么用法,yiml文件怎么写,还有就是如果用着用着收不到红外码是不是接 ...

https://www.home-assistant.io/components/switch.mqtt/
作者: 200822470    时间: 2019-3-4 00:19
natic 发表于 2019-3-1 22:46
https://www.home-assistant.io/components/switch.mqtt/

能不能写个例子呢
作者: 893399065    时间: 2019-3-5 19:58
学习永无止境
作者: misite    时间: 2019-3-13 09:25
这个功能好。。。。。。。。。。。。。。。。。
作者: zhangkai6650    时间: 2019-3-13 09:31
赞    曾经也折腾过  
作者: sym_cool    时间: 2019-3-13 19:34
学习一下
作者: sym_cool    时间: 2019-3-13 21:33

14:30:23 MQT: tele/sonoff/RESULT = {"IrReceived":{"Protocol":"UNKNOWN","Bits":140,"Data":"709566E1","RawData":[8982,4496,644,1662,648,558,648,536,668,1662,646,1662,670,536,646,560,646,560,646,1660,648,558,648,1660,646,1660,646,560,646,560,646,560,646,560,646,560,646,560,644,560,644,560,646,562,642,1662,646,560,646,560,644,562,644,562,644,562,646,560,646,1662,640,548,634,1692,642,564,640,566,640,1666,640,566,640,20000,646,560,646,560,646,538,666,558,648,560,644,560,646,562,642,560,646,560,646,558,648,560,658,548,646,560 ...


大佬你好,我用nodemcu接收空调遥控器的信号,如上显示,是接收不完全吗
作者: natic    时间: 2019-3-13 21:42
sym_cool 发表于 2019-3-13 21:33
14:30:23 MQT: tele/sonoff/RESULT = {"IrReceived":{"Protocol":"UNKNOWN","Bits":140,"Data":"709566E1" ...

你这个是console的吧,用安装mqtt机器的命令行接受mqtt message




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5