http://tinkerman.cat/rpi3_iot_server.pdf (Catalan)
- download the latest image
| """Module to handle quirks of the Alap CO2 Sensor. | |
| manufacturer specific attributes to control displaying and specific configuration. | |
| """ | |
| import logging | |
| import zigpy.profiles.zha as zha_p | |
| from zigpy.quirks import CustomCluster, CustomDevice | |
| from zigpy.zcl.clusters.homeautomation import Diagnostic | |
| from zhaquirks import Bus, LocalDataCluster, QuickInitDevice |
| const {deviceEndpoints, numeric, onOff, commandsOnOff, binary, quirkAddEndpointCluster} = require('zigbee-herdsman-converters/lib/modernExtend'); | |
| const definition = { | |
| zigbeeModel: ['alab.switch'], | |
| model: 'alab.switch', | |
| vendor: 'Alab', | |
| description: 'Four channel relay board with four inputs', | |
| extend: [ | |
| deviceEndpoints({ | |
| endpoints: {"l1":1,"l2":2,"l3":3,"l4":4,"in1":5,"in2":6,"in3":7,"in4":8}} |
| /* Custom converter for 4/8/12 channel zigbee switch */ | |
| const { | |
| fromZigbeeConverters, | |
| toZigbeeConverters, | |
| exposes | |
| } = require('zigbee-herdsman-converters'); | |
| const e = exposes.presets; | |
| const ea = exposes.access; |
| const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); | |
| const tz = require('zigbee-herdsman-converters/converters/toZigbee'); | |
| const exposes = require('zigbee-herdsman-converters/lib/exposes'); | |
| const reporting = require('zigbee-herdsman-converters/lib/reporting'); | |
| const extend = require('zigbee-herdsman-converters/lib/extend'); | |
| const ota = require('zigbee-herdsman-converters/lib/ota'); | |
| const {} = require('zigbee-herdsman-converters/lib/tuya'); | |
| const utils = require('zigbee-herdsman-converters/lib/utils'); | |
| const globalStore = require('zigbee-herdsman-converters/lib/store'); | |
| const e = exposes.presets; |
| const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); | |
| const tz = require('zigbee-herdsman-converters/converters/toZigbee'); | |
| const exposes = require('zigbee-herdsman-converters/lib/exposes'); | |
| const reporting = require('zigbee-herdsman-converters/lib/reporting'); | |
| const extend = require('zigbee-herdsman-converters/lib/extend'); | |
| const ota = require('zigbee-herdsman-converters/lib/ota'); | |
| const {} = require('zigbee-herdsman-converters/lib/tuya'); | |
| const utils = require('zigbee-herdsman-converters/lib/utils'); | |
| const globalStore = require('zigbee-herdsman-converters/lib/store'); | |
| const e = exposes.presets; |
| const {binary, temperature, humidity, numeric} = require('zigbee-herdsman-converters/lib/modernExtend'); | |
| const definition = { | |
| zigbeeModel: ['Alab-CO2-1.0', 'Alab-CO2-1.1'], | |
| model: 'Alab-CO2-1.1', | |
| vendor: 'Alab', | |
| description: '[Zigbee CO2 Sensor](https://www.tindie.com/products/a_lab_technology/zigbee-co2-sensor-v2/)', | |
| extend: [ | |
| temperature(), | |
| humidity(), |
| const {binary, temperature, humidity, numeric, battery} = require('zigbee-herdsman-converters/lib/modernExtend'); | |
| const definition = { | |
| zigbeeModel: ['Alab-PhSensor-1.0'], | |
| model: 'Alab-PhSensor-1.0', | |
| vendor: 'Alab', | |
| description: '[DiY Wireless PH Sensor](https://github.com/9zigen/zigbee-ph-sensor)', | |
| extend: [ | |
| temperature(), | |
| humidity(), |
| ####################################################################### | |
| # CUSTOM NGINX CS-CART SETUP | |
| # Simon Nicklin @SimonNjO | |
| ####################################################################### | |
| ####################################################################### | |
| # A default configuration for domains and IP address. | |
| ####################################################################### | |
| server { |
http://tinkerman.cat/rpi3_iot_server.pdf (Catalan)
| #include <Wire.h> | |
| #include "SSD1306.h" | |
| #define SET_BIT_HIGH(__mem, __x, __y) \ | |
| __mem[x + (y >> 3)*128] |= _BV( y - ((y >> 3) << 3) ) | |
| static const uint8_t sinustable[ 0x100 ] = { | |
| 0x80, 0x7d, 0x7a, 0x77, 0x74, 0x70, 0x6d, 0x6a, | |
| 0x67, 0x64, 0x61, 0x5e, 0x5b, 0x58, 0x55, 0x52, | |
| 0x4f, 0x4d, 0x4a, 0x47, 0x44, 0x41, 0x3f, 0x3c, |