Programmer romantic - is possible to have a mobile app that controls the devices at home such as the lighting etc?

Good morning. I decided to title this topic Programmer romantic because when in love you see nothing else and nothing makes sense and I am at that semi newbee stage of learning Erlang and nothing makes sense but I love it…

Ok, I am very very very new to Erlang and a friend of mine saw me reading on of the books when I was in the coffee shop and asked a question that I have no idea how to answer. The question was if it is possible to have a mobile app that controls the devices at home such as the lighting etc. (In Erlang obviously).

Now, I have absolutely no idea (and honestly - no knowledge) of that. I am still trying to get my head around the basic syntax :blush: I have googled a bit but that went too far over my head. If someone can shed some light if it is possible or not, I can send him your responses.

Kind regards and have a fantastic weekend,
Dmitri

5 Likes

Sure, that is possible. It’s called Home automation - Wikipedia.

Obviously, it’s not enough to just write an App. Normal lights will not care. You have to replace them with anything that can be electronically turned on and off. If you want to control them with a DIY-app you need to choose something with an open protocol. And if you really want to use this in your home and you do not want to tear up your walls you should go with some RF-lights.

Phillips Hue is a popular choice and it also seems to be possible to control them with your own software, see for example: Controlling Philips HUE Lights with Raspberry PI - Domotic Project

The best home automation solution imo is KNX, which is an open standard and supported by over 500 companies (my company is also a KNX member so I’m biased). But its only worth looking into that if you really want to get serious.

As for doing that in Erlang. For the communication part Erlang should be great (actually I’ve written a KNX protocol stack in Elixir, which started out as a fun project and will now maybe get into production at my company). For the frontend, a smartphone app from which you can control your home look at this:

To get a feeling for how that could look there are a lot of videos showing home automation visualisation apps on youtube.

4 Likes

Thanks folks. I will pass on the information. This is way beyond my knowledge level :smiley:

2 Likes

Well, Erlang more focused on server side than native apps If you are looking for a server solution, definitely Erlang if you are looking for mobile, I suppose Lua is a best choice. Why? Well as minimum because this is a very small language and have a speed very close to C and… drumroll … this language can be compiled for any existing OS in world! What this mean? This mean that you will create one app and will able to run it in any OS and this application will work the same way both on a mobile device and on a desktop. But how communicate with Erlang? Well, you can use or C Node or luerl. I was always surprised by the companies that hire a squad of developers for android, a squad of developers for iOS and they do not have enough budget for desktop - for this case they can hire only one Lua team and one application will be working the same as in Android/iOS/MacOS/Windows etc. Lua Tutorial - YouTube :upside_down_face:.

3 Likes

The question was how to do all of it in Erlang. It’s doable but hard, because there is no prior (OSS) art (I know of). If its just about getting into home automation, the easiest way is to join one of the many open source projects.

3 Likes

This is true for many languages now a days.

  1. JS → Node + ReactNative / NativeScript / ionic etc
  2. C# → .net core + Xamarin
  3. Dart → Start / Stream + Flutter
  4. Ruby → Rails + RubyMotion
  5. Kotlin → Jooby / Ktor + Kotlin Multiplatform
  6. Python → Django / Flask / FastAPI + Kivy
4 Likes

Sounds like Lua is a pretty versatile language. I’ve never really looked at it before.

4 Likes