[BETA RELEASE] Control Your Devices From Homeflow Dashboard

Overview

Hey Friends! Hope your day is going well :smile: My friend and I have been working on a web app that lets you control your smart devices as well as build automations. We enable you to do this with a simple GUI, no coding required :nerd_face:

Today I’m excited to share with you our progress and ask for your help with beta testing our project :rocket: Thanks to some of our super early beta users in the community, we have been able to refine our dashboard. :heart:

Our latest update gives you the ability to create “device groups” to organize your devices into different tabs as well as re-order them. These features out of from feedback we received from users who needed to organize their ever-growing collection of devices.

Beyond the dashboard, we have also been working on our automation builder. The main idea is that you can use a library of pre-built blocks to make whatever automation you want. The automation builder is not available in this release but I wanted to give you a sneak peek of our progress :sparkles:

ezgif-1-c18e6c6cc7 (1)

Give our project a try and please give us any feedback – the good, the bad, and the ugly. We want to create the best experience possible for you so any feedback is much appreciated. :bowing_man: This is beta software and our first time writing a SmartApp so there will be bugs :beetle: Report them in the comments and I’ll address them ASAP!

Installation

Installation is simple, just visit http://homeflow.io/signup and create an account. From there the web app will prompt you with instructions to install the smart app.

FAQ

Updating a device works but the dashboard does not update?
Make sure that in your SmartApp you have clicked “done” to fully install the app.

Misc

Here is a picture of my set up, currently have Homeflow running on a Amazon Fire Tablet attached to my wall.

7 Likes

Pretty cool. I got most everything configured and the dashboard was working. I noticed the dashboard didn’t update and then saw your FAQ item. When I click “Done” to fully install the SmartApp, I get a red banner on top that says “Error saving page.”

This is from the Live Logging:

Blockquote
d450a8b1-cdbe-4724-b0e5-1b1fd30e55c6 6:30:41 PM: error java.util.concurrent.TimeoutException: Execution time exceeded 20 app execution seconds: 266231194385253 @ line 127
d450a8b1-cdbe-4724-b0e5-1b1fd30e55c6 6:30:19 PM: debug attributes: [switch, indicatorStatus, checkInterval, DeviceWatch-DeviceStatus, status, level, trackDescription, trackData, mute, model, trackUri, transportUri, trackNumber, displaySwitch, battery, lock, codeChanged, lockCodes, scanCodes, codeLength, maxCodes, maxCodeLength, minCodeLength, codeReport, beeperMode, vacationMode, lockLeave, alarmMode, alarmSensitivity, localControl, autoLock, pinLength, contact, door, lastActivity, doorSensor, doorMoving, currentState, currentSpeed, motion, button, numberOfButtons, temperature, humidity, heatingSetpoint, coolingSetpoint, thermostatSetpoint, thermostatMode, thermostatFanMode, thermostatOperatingState, schedule, coolingSetpointRange, heatingSetpointRange, supportedThermostatFanModes, supportedThermostatModes, thermostatSetpointRange, temperatureUnit, targetTemp, softwareVer, lastConnection, apiStatus, hasLeaf, debugOn, safetyTempMin, safetyTempMax, safetyTempExceeded, comfortHumidityMax, comfortHumidtyExceeded, comfortDewpointMax, comfortDewpointExceeded, tempLockOn, lockedTempMin, lockedTempMax, devTypeVer, onlineStatus, nestPresence, nestThermostatMode, presence, canHeat, canCool, hasFan, sunlightCorrectionEnabled, sunlightCorrectionActive, timeToTarget, nestType, pauseUpdates, nestReportData, previousthermostatMode, illuminance, acceleration, ultravioletIndex, tamper, needUpdate, water, smoke, carbonMonoxide, alarmState, batteryState, uiColor, lastUpdateDt, lastTested, isTesting, nestCarbonMonoxide, nestSmoke]
d450a8b1-cdbe-4724-b0e5-1b1fd30e55c6 6:30:19 PM: debug hubId: 1cb27461-33a3-4899-95bf-3a31b61bde45
d450a8b1-cdbe-4724-b0e5-1b1fd30e55c6 6:30:19 PM: debug Subscribing to devices…

Any ideas?

@earnstaf Thanks for providing the entire debug log.

error java.util.concurrent.TimeoutException

Seems like this happens when SmartThings takes too long registering your devices (40+ seconds).

If you decrease the number of devices enabled in your Homeflow SmartApp, what happens? I’ll look into how to get around this issue.

Just installed it… Very nice work so far. Easy to get running and looks pretty good. I like the thing on top that tells you how many lights or switches etc are on. I would change contacts on to contacts open though. The tabs are super nice too.

I wonder what your plan for theming and customizing is. For example the doors and windows logo is currently a lock. Are you planning to make stuff like that user customizable? Either way it looks like a good project. Thanks for sharing.

@njschwartz Thanks Nate :heart: Customization is in the works. Creating device groups and re-ordering devices is just one step in that direction. The next step is allowing you to customize things like device icons. Will think about the cleanest way to achieve that.

Also will update the device ribbon!

1 Like

Cool. I’ll be following this closely for sure.

Also, I went back and added a couple of devices and also got that time out error in the logs. Oddly though it still added the devices I was trying to add.

Last thing, how does it decide which data to show as the primary from devices with multiple data points. For example one of my motion sensors also reports temperature and battery. The temp is the thing that shows largest on the tile. Maybe another customizable thing? :slight_smile: thanks again

Awesome! Hm… Yea. Currently doing research into what is causing the timeout. Based on the live log from @earnstaf, it seems to be line 127 causing the timeout issue.

    attributes.each { attribute ->
        subscribe(Actuator, attribute, eventHandler)
        subscribe(Sensor, attribute, eventHandler)
    }

Yep that is where I get that error as well.

If you are subscribing to a lot of devices, you may want to keep track of time and devices already subscribed and use a runIn to continue in a few seconds with the remaining devices. One way to avoid the timeout.

3 Likes

Brilliant @ady624 :sunny: I’ll try that approach. I was checking to see how webCoRE handled subscriptions. Is the runIn approach how you get around the subscribe timeout for large amounts of devices?

I don’t usually subscribe to a lot of devices, but when I do… yes

The code you are referencing is a beta initial approach to live updates via websockets.

Ah, that makes sense. Thanks pointing me in the right direction :pray:

No problem. Good luck :wink: shout if you need help

You’re too kind! Thank you, will do :bowing_man:

Hey everyone,

Thanks for the feedback so far. Thanks to the help of the community I believe I fixed the issue behind the java.util.concurrent.TimeoutException error. The hotfix is in the Homeflow SmartApp v1.0.4. Just sync by clicking “Update From Repo”. You can check the latest version by looking at the top of the SmartApp Github code.

Also don’t worry, if your SmartApp is using a version with an issue or really out of date, your dashboard will let you know.

11

Keep the suggestions and bug reports rolling. :dancer:

cc @njschwartz @earnstaf

Looks great but you need to allow/force https. The 3001 port number is odd. You don’t have 80/443 available on your server?

Great point. I have the landing page on port 80 as a separate app. I need to merge it. Going to add https support and switch over to 80/443. Once that’s done, requests will be redirect.

Working good for me so far. Thanks for all the hard work.

Thanks @MANOWAR. Glad you’re enjoying it :crown: Let me know if you have any suggestions for improvements :upside_down_face:

I like it! Worked well in my testing. When this forces SSL I’ll look into it more. I’m also excited to see the Automation part.