I have a long term project, for learning purposes, which is creating a virtual assistent, such as Siri or Google Now, but to control my home automation. I'll have an arduino controling some hardware (such lamps, sensors, etc.), and the assistent I'll write in Python. Until this step, I have the knowledge to do this. But thinking forward, when this is functional, would be great if I could add the feature to control remotely by mobile app and/or webpage, and not just by my desktop.
The problem is I don't know which knowledge I need have to do this.
I want to have a web page, or a mobile app that show me this webpage, where I can program buttons to turn on/off stuff, check the sensors data, etc. I should like to use PHP, cause as I said, this is for learning purposes. I supose that I'll need set a server in my home, and then access him through this app/page. So, which programming skills I need to accomplish this (considering that arduino runs in C and the assistent will be scripted in Python)?
Thanks.
The web site could be created in any number of languages, PHP being one good choice. The server could be local, or if you want to be able to interface globally, on a hosted server.
How your Arduino connects to the server is the most telling part. If you use a WiFi or Ethernet shield, you can have it poll the server to get information (ie. turn something on/off) and to post info (ie. temp/humidity). In you want the server to be the controlling factor, have it use curl to poll a web server on the Arduino. The Arduino would respond with data, look for parameters for control, etc.
I've written several projects that use the Arduino and Witty ESP8266 micro-controllers and interface with a web server. It's not that hard if you know everything you need to know about creating a web site, writing Arduino code, and HTTP communications. If you don't, there's a steep learning curve.