Starting with smart home development
-
Hi,
I hope this is the correct place to ask. I wanted to start with developing smart home systems where I use a raspberry pie as a server and communicate through a phone or tablet.
But I do not know where to and how to start, I have knowledge in developing Web Application, Java and a bit react native.But which Development Language is good for smart home development? Would it be possible to achieve smart home projects with Webapplication and smarthphone app if they communicate with the same server?
Which additional knowledge do I need except development language? I looked on the internet a bit, but kinda got lost with all the information in it right now about smart home.
-
Are you looking to implement a smart home as a user, or learn about developing a smart from (either from scratch or as developer)?
Welcome BTW!
C
-
Hi what do you mean with "developing a smart"? I wanted to learn how to develop smart home systems but with my own application and not predefined ones.
For that I wanted to learn which language would be prefereable for smart home systems, and which additional skills do I need? For example is networking needed or anything else like that.
-
It's a big question you are asking here and you seem to want to start from scratch.
My question to you is why? Some of your ideas have been explored and executed for years and there are also already commercial offering in that direction with various levels of success.
I will give you just my opinion:
Development cycles for me go in this chronological order:- Make it work (design)
- Make it reliable (debug)
- Make it fast and efficient (optimize, often skept these days)
Now with more freed resource, you can have new ideas and repeat the cycle.
What language you want to use is up to you. There is no right or wrong answer. It ranges from Java/JS on NodeJS to Python to lua to C. There are examples of all of them and it is all a matter of taste and support.
JS example: iobroker
Python: Home Assistant
lua: openLuup
C/C++: many others mostly commercial solutions.The raspberry pi with a web server is one of the most common platforms and a good, but not great place to start: As you grow your system beyond the phase 1 of "Make it work", You may start finding limitations of capability, reliability and efficiency.
Also, the mobile app ideas are pretty common but... I am partial to eliminate them as much as possible because there are too many of them already and ideally, for the sake of efficiency, you would not need them if the home was ultimately "smart". Any configuration would have to be done on the server but mobile apps would be too limiting/small to handle the complexity. I see the mobile apps as a patch/addition maybe temporary convenience and not anything I would base/develop my system around. I am trying to eliminate the need for them and have been pretty succesful. If you need a dashboard, it can be done through a mobile page on the webserver.
-
@rafale77
I wanted to make this commercial so start doing business with it, thats why I wanted to implement my own systems. What would you recommend insteat of a raspberry pi? And what would I need alongside development? In order to achieve what I want ? How could I make my raspberry pi, smartphone app and for example a door lock communicate with each other? Would that be
Networking?What would be alternatives to control the smart home systems? if not by phone
-
Haso9458replied to rafale77 on Jan 26, 2021, 7:26 PM last edited by Haso9458 Jan 26, 2021, 2:26 PM
So you mean like use a webapplication which communicates with the server and is just displayed on the phone/tablet right?
My biggest question is which skill I need to learn for comunication between the devices is it Networking or anything else?
-
rafale77replied to Haso9458 on Jan 26, 2021, 7:34 PM last edited by rafale77 Jan 26, 2021, 2:34 PM
My smarthome system has very little interaction with my phone/tablet except for the localization and voice control. I use no apps for these. In case of other failures only do I need a display but this can be done through a web browser on the mobile device though I use Homewave for convenience. Under normal conditions, I would not need any display on my phone or tablet.
For device, you can look at nVidia's Jetson or celeron based mini PCs. Skills you need are both around networking and also the various wireless stacks and APIs for smarthomes: Zigbee, Zwave, Thread. You could also just stick with wifi devices which seems to be the trend lately but I see this as less secure, more cloud prone, less efficient but more convenient.
-
@rafale77
Hey thanks you helped me a lot I at least am a bit smarter now
I have just a few more questions haha if I may.- What are wifi stacks?
- And do you know which skill is needed to assembly your own smart device? I would think a small pc like raspberry pi or an alternative with modules like wifi, bluetooth etc right?
-
wifi stack is a standard (802.11a/ac/ax) and you probably don't need to learn much about it. The wireless stacks I was speaking of were the others: zwave and zigbee in particular. For wifi, devices usually have a local API you can work with.
I don't know how to answer your second question... You can buy these all made and use USB modules for them.
-
You are welcome. Not sure if I can answer all of your questions but it doesn't cost anything to ask. This forum has a lot of folks who started with a commercial solution which ended up being a dead end and decided to go off on mostly open source platforms, many developed, discussed and shared here.
-
Do not underestimate the amount of effort and time this is likely to take... especially when you get a few users on board.
5/14