Creating custom device classes

Is this possible? While getting on/off for sensors is useful, I’d really like to be able to use my own text instead.

It’s definitely possible. You should create a folder on the one which reside configuration.yaml.
Then you put another folder which should be the name of your component. There will need a file named __init__py which will help do define the most functions to be added to your component.
It advisable you look the other component into the folder under the python path. As you get there, you will figure how one component is prepared. But it’s necessary to have a knowledge on python programming.