So before I get anyone being patronizing, I understand that this is a big project and realize that it will take years of learning and hard work.
My plan is to create an assistant that runs through all of my devices simultaneously, sort of like the Jarvis from Iron Man. The idea is that it will run on a PC connected to my home network and I will customize all of my other hardware to access it (almost like a cloud-based operating system). I will then work on the 'smart home' implications later, but the idea is to code this as a hobby for as long as it takes (I really don't care how long you think it will take). Could anyone recommend what languages I should use to do this and what, if any, development packages, might prove useful.
I am learning C++ and plan to learn Java in the near future.