Skip to content

Instantly share code, notes, and snippets.

@sirkha
Last active February 17, 2022 00:27
Show Gist options
  • Save sirkha/8e2e1586baea40cc896bc762be53a66a to your computer and use it in GitHub Desktop.
Save sirkha/8e2e1586baea40cc896bc762be53a66a to your computer and use it in GitHub Desktop.
{ config, pkgs, ... }:
let
unstable = import <nixos-unstable> {};
in {
services.zigbee2mqtt.enable = true;
# services.zigbee2mqtt.package = unstable.zigbee2mqtt;
networking.firewall.allowedTCPPorts = [ 8880 ];
services.zigbee2mqtt.settings = {
permit_join = false;
serial = {
port = "/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0";
adapter = "zstack";
};
advanced = {
rtscts = false;
pan_id = 5028;
network_key = [ redacted ];
};
mqtt = {
base_topic = "zb6040";
server = "mqtt://localhost:1883";
user = "z2m";
};
frontend = {
port = 8880;
};
external_converters = [
"En43096.js"
];
devices = {
# Other/Unused
"0xb0ce181400187578" = {
friendly_name = "0xb0ce181400187578";
};
"0x588e81fffe05969b" = {
friendly_name = "0x588e81fffe05969b";
};
# Exterior
"0xb0ce181400186ee7" = {
friendly_name = "Garage North Sconce";
};
"0xb0ce181400187a96" = {
friendly_name = "Garage South Sconce";
color_sync = false;
};
"0xb0ce18140352efd0" = {
friendly_name = "Porch";
transition = 0;
color_sync = false;
};
"0x00158d000198d209" = {
friendly_name = "Patio Remote";
};
"0xb0ce18140018835c" = {
friendly_name = "Patio";
};
# Main Floor
"0x5c0272fffe822fbb" = {
friendly_name = "Kitchen Main";
};
"0x84fd27fffebcc84a" = {
friendly_name = "Kitchen Island";
};
"0x5c0272fffe2508f4" = {
friendly_name = "Mud Room";
};
"0x5c0272fffe25e9e3" = {
friendly_name = "Pantry";
};
"0x847127fffe348204" = {
friendly_name = "Dining Nook";
};
"0x00158d000198d5c0" = {
friendly_name = "Living Room Remote";
};
"0x5c0272fffe25db67" = {
friendly_name = "Living Room Main";
};
"0xec1bbdfffefb1a0f" = {
friendly_name = "Living Room Lamps";
};
"0x5c0272fffe25e898" = {
friendly_name = "Living Room Display Case";
};
"0x84fd27fffeb7b7ee" = {
friendly_name = "Office Lamp";
transition = 0;
};
"0x00158d000199534c" = {
friendly_name = "Foyer Remote";
legacy = false;
};
"0x5c0272fffe822042" = {
friendly_name = "Foyer Main";
};
"0x5c0272fffe25dabd" = {
friendly_name = "Foyer Closet";
};
"0x5c0272fffece14dd" = {
friendly_name = "Stairs";
};
"0x00158d000198ce69" = {
friendly_name = "Garage Remote";
};
"0x5c0272fffeec5018" = {
friendly_name = "Garage";
};
# Upper Floor
"0x84fd27fffe481173" = {
friendly_name = "Main Bedroom Door Remote";
legacy = false;
};
"0x00158d0007c8d800" = {
friendly_name = "Main Bath Temperature and Humidity";
};
"0xec1bbdfffe48cb04" = {
friendly_name = "Main Bedroom Runway";
};
"0x847127fffeb7521c" = {
friendly_name = "Main Bedroom Lamp";
};
"0x804b50fffe24a7f1" = {
friendly_name = "Main Bedroom Display";
};
"0x5c0272fffe4b5e90" = {
friendly_name = "Main Bedroom Cabinets";
};
"0x5c0272fffe25ea0d" = {
friendly_name = "Guest Bathroom Lights";
};
"0x000d6ffffecd66af" = {
friendly_name = "Guest Bathroom Fan";
};
"0x5c0272fffe26adf1" = {
friendly_name = "Hall";
};
"0x5c0272fffeec3dbb" = {
friendly_name = "Laundry Light";
};
"0x5c0272fffeeeabe7" = {
friendly_name = "Laundry Fan";
};
# Basement
"0x5c0272fffece1553" = {
friendly_name = "Basement";
};
"0x5c0272fffe25e991" = {
friendly_name = "Basement Stairs";
};
};
groups = {
/*
Group address space is as follows:
0 to 99: For groups of device classes
100 to 999: For groups related to exterior items
1000 to 1999: For groups related to the main floor
1100 to 1299: For groups related to the kitchen, mudroom, pantry and dining nook
1300 to 1499: For groups related to the living room
1500 to 1699: For groups related to the office
1700 to 1799: For groups related to the powder room
1800 to 1999: For groups related to the foyer, stairs or garage
2000 to 2999: For groups related to the upper floor
2100 to 2299: For groups related to the main bedroom
2300 to 2399: For groups related to the main bath or closet
2400 to 2499: For groups related to the loft, stairs or hallway
2500 to 2599: For groups related to the guest bedroom
2600 to 2699: For groups related to the guest bathroom
2700 to 2899: For groups related to the library
2900 to 2999: For groups related to the laundry room
3000 to 3999: For groups related to the basement
*/
"1" = {
friendly_name = "All Lights";
retain = false;
optimistic = false;
devices = [
"Garage North Sconce"
"Garage South Sconce"
"Porch"
"Patio"
"Kitchen Main"
"Kitchen Island"
"Mud Room"
"Pantry"
"Dining Nook"
"Living Room Main"
"Living Room Lamps"
"Living Room Display Case"
"Office Lamp"
"Foyer Main"
"Foyer Closet"
"Stairs"
"Garage"
"Main Bedroom Runway"
"Main Bedroom Lamp"
"Main Bedroom Display"
"Main Bedroom Cabinets"
"Guest Bathroom Lights"
"Hall"
"Laundry Light"
"Basement"
"Basement Stairs"
];
};
"101" = {
friendly_name = "Exterior Lights";
retain = false;
optimistic = false;
devices = [
"Garage North Sconce"
"Garage South Sconce"
"Porch"
"Patio"
];
};
"111" = {
friendly_name = "Front Yard Lights";
retain = false;
optimistic = false;
devices = [
"Garage North Sconce"
"Garage South Sconce"
"Porch"
];
};
"121" = {
friendly_name = "Back Yard Lights";
retain = false;
optimistic = false;
devices = [
"Patio"
];
};
"1001" = {
friendly_name = "Main Floor Lights";
retain = false;
optimistic = false;
devices = [
"Garage North Sconce"
"Garage South Sconce"
"Porch"
"Patio"
"Kitchen Main"
"Kitchen Island"
"Mud Room"
"Pantry"
"Dining Nook"
"Living Room Main"
"Living Room Lamps"
"Living Room Display Case"
"Office Lamp"
"Foyer Main"
"Foyer Closet"
"Stairs"
"Garage"
];
};
"1101" = {
friendly_name = "Kitchen Area Lights";
retain = false;
optimistic = false;
devices = [
"Kitchen Main"
"Kitchen Island"
"Mud Room"
"Pantry"
"Dining Nook"
];
};
"1102" = {
friendly_name = "Kitchen Lights";
retain = false;
optimistic = false;
devices = [
"Kitchen Main"
"Kitchen Island"
];
};
"1301" = {
friendly_name = "Living Room Lights";
retain = false;
optimistic = false;
devices = [
"Living Room Main"
"Living Room Lamps"
"Living Room Display Case"
];
};
"2001" = {
friendly_name = "Upper Floor Lights";
retain = false;
optimistic = false;
devices = [
"Main Bedroom Runway"
"Main Bedroom Lamp"
"Main Bedroom Display"
"Main Bedroom Cabinets"
"Guest Bathroom Lights"
"Hall"
"Laundry Light"
];
};
"2101" = {
friendly_name = "Main Bedroom Lights";
retain = false;
optimistic = false;
devices = [
"Main Bedroom Runway"
"Main Bedroom Lamp"
"Main Bedroom Display"
"Main Bedroom Cabinets"
];
};
"3001" = {
friendly_name = "Basement Lights";
retain = false;
optimistic = false;
devices = [
"Basement"
"Basement Stairs"
];
};
};
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment