关于javascript:珍惜生命远离毒气就用智能开窗你值得拥有

25次阅读

共计 2064 个字符,预计需要花费 6 分钟才能阅读完成。

前言

​ 周末闲着无聊,筹备搞一个家居平安利用,后面我曾经弄了一个主动开窗器和甲醛检测的设施,明天筹备弄一个气体与开窗组合的场景利用,甲醛中毒、煤气中毒等案例常常能在日常生活中遇到,而自己也是一个比拟顾惜生命(给大家收费翻译一下:就是怕死)的人,所以就打算搞一个在家里本人用,毕竟本人入手,饥寒交迫 (~~▽~)~。

设施解说

这次用到的设施就是之前介绍过的俩个设施:智能开窗 甲醛检测设施

1、智能开窗

2、 甲醛检测设施

利用解说

下面就是智能开窗利用的界面了,很漂亮对不对!!!要不要给我扣波 666!

能够看到下面利用中有一个增加设施的按钮,点击按钮能够增加气体设备和开窗设施,利用大抵逻辑就是手动滑动窗户会进行开关窗。与此同时,气体超过危险值也会进行主动开窗。目前也就只加了甲醛检测设施,前面的升级版可能会增加更多的气体检测设施,到时候也给大家看看最初的成品。

代码剖析

整个利用我的项目前端用的 vue 框架,后端用的是 javascript,次要依赖于 Edgeros 上的 JSRE 运行时;
又到了我给你们长见识的时候了,话不多说,贴!!!┗(▔, ▔)┛

    devManager.generateController(devid).then((controller) => {const type = getDeviceType(dev);
            if (type && type !== 'window') {
                // 气体
                clearInterval(times[devid]);
                times[devid] = undefined;
                times[devid] = setInterval(() => {devManager.sendDeviceInfo(devid, { method: 'get', obj: [type] }).catch(() => {console.error(`Failed to get ${type} real-time value.`);
                    });
                }, 3000);
            }
            controller.on('message', ({ data}) => {
                // 开窗器须要记录以后地位    
                if (type === 'window') {socketIO.emit('message', { devid, data: data.window_percent})
                    gas_window_scene.devs = gas_window_scene.devs.map((item) => {if (item.devid === devid) {
                            return {
                                ...item,
                                settings: {window_percent: data['window_percent']
                                }
                            }
                        }
                        return item
                    })
                    updateSceneDB();} else {socketIO.emit('message', { devid, data: data[type] }); // 气体
                    if (GAS_DEFAULT_ALARM_VALUES[type] < data[type]) {
                        // 气体超标 找到窗户设施
                        const window_dev = gas_window_scene.devs.find((item) => {const d = devManager.devMap.get(item.devid);
                            if (d && getDeviceType(d) === 'window') {return true}
                            return false
                        });
                        if (window_dev) {devManager.sendDeviceInfo(window_dev.devid, { method: 'set', window: 'right'}).catch(() => {console.error(`Failed to open window value.`);
                            });
                        }
                    }
                }
            });
            resolve(controller);
        }).catch(() => {reject(`no permission.`);
            emitError(` 利用短少管制 ${dev.alias}的权限!`)
        })

下面后端代码次要就是用到了之前基于 device 模块封装的设施治理模块来治理终端设备,在甲醛气体检测值超过危险值的时候主动发送命令关上窗户,从而达到一个排除毒气的成果,我这边的话将甲醛危险值设置到了 0.02,不便平时时候测试。最终成果还是不错的。前端代码就不贴了,都是根底操作,次要是怕闪瞎各位老板的慧眼。

场景演示

1、手动滑动管制窗户

2、甲醛超标开窗

emmm…
纠结了很久,还是决定通知大家一个惨重的音讯!
我这边环境空气太好了,测不了甲醛!不好意思,让大家悲观了,hhh(*~︶~)

总结

做了这么多场景,感觉明天这个利用场景在生活中还是绝对很有用的,前面的话本人也会将利用和设施弄得更欠缺一点,打算在本人家里也来装一套。家里须要常常通风或者用燃气的老铁们能够本人搞一套,目前只反对了甲醛检测设施,前面会加上燃气检测和天气检测解决。最初送大家一句话,珍惜生命,远离毒气,就用智能开窗,你值得领有!!!
差点忘了加我的项目地址了,明天就放在最初好了,测试项目地址,轻易伸手吧,别客气,绅士们!(就问你们不点赞好意思不!)

正文完
 0