Skip to content

Instantly share code, notes, and snippets.

@Katheesh
Created December 17, 2025 05:07
Show Gist options
  • Select an option

  • Save Katheesh/ccc9a1b8ac8fec4713c5e5758d9ca3fc to your computer and use it in GitHub Desktop.

Select an option

Save Katheesh/ccc9a1b8ac8fec4713c5e5758d9ca3fc to your computer and use it in GitHub Desktop.
uint8_t SWITCHES[] = {6,7,8,9,10,11,12}; //Anantara STD room
const char* THERMOSTAT_NAME = "std_thermostat";
void setupModbusDevices(){
addModbusDevice(15, 30, 3, 100, true); //"thermostat_modbus"
addModbusDevice(50, 0, 5, 100, false); //"entrance"
addModbusDevice(30, 0, 3, 100, false); //"bathroom"
addModbusDevice(60, 0, 6, 100, false); //"bedside_left"
addModbusDevice(61, 0, 6, 100, false); //"bedside_right"
addModbusDevice(70, 0, 15, 100, false); //"corridor"
addModbusDevice(71, 0, 0, 1000, false); //"bell"
addModbusPointer(15, 30, THERMOSTAT_NAME, "fcu", "roomtemp", "{\"actuator\": 22}");
addModbusPointer(15, 31, THERMOSTAT_NAME, "fcu", "setpoint", "{\"actuator\": 22}");
addModbusPointer(15, 32, THERMOSTAT_NAME, "fcu", "fanmode", "{\"l\": 1, \"m\": 2, \"h\": 3}");
addModbusPointer(50, 0, "spot_light", "switch", "7", "{}");
addModbusPointer(50, 1, "tv_side_lamp", "switch", "9", "{}");
addModbusPointer(50, 2, "master", "scene", "master", "{\"toggle\": [6,7,8,9,10,11,12]}");
addModbusPointer(50, 3, "mur", "scene", "mur", "{}");
addModbusPointer(50, 4, "dnd", "scene", "dnd", "{}");
addModbusPointer(30, 0, "bathroom_light", "switch", "6", "{}");
addModbusPointer(30, 1, "bathroom_curtain_close", "curtain", "close", "{\"open\": 4, \"close\": 5, \"delay\": 38000}");
addModbusPointer(30, 2, "bathroom_curtain_open", "curtain", "open", "{\"open\": 4, \"close\": 5, \"delay\": 38000}");
addModbusPointer(60, 0, "master", "scene", "master", "{\"toggle\": [6,7,8,9,10,11,12]}");
addModbusPointer(60, 1, "bed_light", "switch", "11", "{}");
addModbusPointer(60, 2, "bedside_lamp", "switch", "12", "{}");
addModbusPointer(60, 3, "tv_light", "switch", "8", "{}");
addModbusPointer(60, 4, "energy_mode", "scene", "scene", "{\"on\": [8,10,11]}");
addModbusPointer(60, 5, "mirror_light", "switch", "10", "{}");
addModbusPointer(61, 0, "bedside_lamp", "switch", "12", "{}");
addModbusPointer(61, 1, "bed_light", "switch", "11", "{}");
addModbusPointer(61, 2, "master", "scene", "master", "{\"toggle\": [6,7,8,9,10,11,12]}");
addModbusPointer(61, 3, "mirror_light", "switch", "10", "{}");
addModbusPointer(61, 4, "energy_mode", "scene", "scene", "{\"on\": [8,10,11]}");
addModbusPointer(61, 5, "tv_light", "switch", "8", "{}");
addModbusPointer(70, 0, "speakerbell", "bell", "mbbell", "{}");
}
void setupSensors(){
addSensor(1, "std_room_presense", "presence", "{}");
addSensor(2, "bathroom_presense", "presence", "{}");
}
void activate_nor(){
writeDeviceHoldingRegister(70,12,0);
delay(10);
writeDeviceHoldingRegister(50,13,0);
delay(10);
writeDeviceHoldingRegister(70,11,0);
delay(10);
writeDeviceHoldingRegister(50,14,0);
}
void activate_dnd(){
writeDeviceHoldingRegister(70,11,1);
delay(10);
writeDeviceHoldingRegister(50,14,1);
delay(10);
writeDeviceHoldingRegister(70,12,0);
delay(10);
writeDeviceHoldingRegister(50,13,0);
}
void activate_mur(){
writeDeviceHoldingRegister(70,12,1);
delay(10);
writeDeviceHoldingRegister(50,13,1);
delay(10);
writeDeviceHoldingRegister(70,11,0);
delay(10);
writeDeviceHoldingRegister(50,14,0);
}
void ring_bell(){
writeDeviceHoldingRegister(71,10,1);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment