Phoscon Home (Dashboard) Beta Test

Since last year we were working on a new main page for the Phoscon App. A dashboard like main page. I want to introduce to you the new dashboard and invite you to test it if you want before we release it in one of the next deCONZ beta versions and in one of the next Android/iOS app releases.

We call the the new dashboard “Phoscon Home” and the goal is to give the user more information and capabilities to control their smart home. But we also want to keep it as simple as possible for every user to set up their devices in the new dashboard.

So now we have rooms in the app that represents the rooms in your home. You can simply add lights, smart plugs, sensors, thermostats and blinds to your rooms. You can have a quick look at the sensor values and control your lights, thermostats and blinds from the front page without the need to go to various sub pages.

We only changed the main page of the old Phoscon App. So the other pages like scenes editor, switch editor, automations, etc. are still there and are still needed to create scenes, schedules, automations and so on…

Lets have a closer look at the new dashboard:

When you start with a fresh deCONZ installation and did not have an old Phoscon App installed you will be prompted to create a new room.

However most people will have an existing setup of deCONZ with the Phoscon App. Then you will not see your old groups at the dashboard. Instead you will be greeted by a message that suggests you to use the “migration assistant” to convert you old groups to to rooms in the new dashboard. The button to start the assistant is at the top of the screen next to the “create room” button.

In the migration process you can convert your old groups to a room in Phoscon Home or add them as a sub group to an existing room. The steps are explained in the migration wizzard.

Note that the conversion is only made in the backend of the app. So nothing changes in the RestAPI and the backend of deCONZ. Your old Phoscon App setup of lights, scenes, schedules, automations, etc. will remain the same and will just be shown inside the rooms in the new dashboard.

However I strongly recommend that you create a backup of your existing setup before trying out the new dashboard and before starting the migration assistant. So you can easily revert back if something happens or you want to use the old app again.

The new start page:

This is how the dashboard looks like when you have only one room and no other devices:

At the bottom of the page is the “quick device bar” you can expand or collapse it by pressing the ^ button. It will show all of the devices in your network:

You can open your network and start a search for new device when clicking at the + button. Your devices are shown in four device tabs that you can toggle with the buttons on the left side: sensors, lights & plugs (in one tab), blinds and thermostats. You can always drag & drop devices out of the quick device bar into a room. You can only have one physical device in one room at the same time, so they are removed from a room automatically when you add it to another room. Devices can not be deleted from the quickbar.

This is how a more populated home looks like:

The most important funcions and controls of the dashboard:

  • You can click a device at the top half (the icon) to control it: on/off, set temp, set blind height, call a scene, toggle a schedule on/off. Press and hold the button to open light sliders.
  • You can click the bottom half (the text) of a device to show more information of the device and sensor values.
  • For sensor devices the whole click area opens the device informations. You can select a sensor value that should be shown on the device item by clicking at it.
  • a click on the name of a scene or schedule will bring you directly to the scenes/ schedule editor.
  • The on/off button of a room toggles all lights of the room on and off. Initially only lights toggle on and off but not plugs to prevent that you accidentally switch your TV off. but you can add or remove lights and plugs to the toggle switch via the 3 dots menu of the room.
  • The same goes for the all off button at the right side of the quick device bar. The only difference is that this button just put off all lights in your home.
  • The “arrow cross” button on the quick device bar lets you rearange your devices and rooms via drag and drop. Only devices can be moved inside a room or from one room to another or out of a room. Scenes, groups and other items can not be moved. When you are finished press the “arrow cross” button again to lock your devices.
  • In the menu “Favourite sensor value” of a room you can chose a sensor value that will be displayed in the headline of the room.
  • A click at the room name will bring you to the room details page

See examples:



The room details page:

At the room details page you see all items of the room and you can create new items there by clicking at the + symbols.
This includes: subgroups, devices (lights), scenes, schedules, automations, switches. The + button will bring you to the already known editor pages of the old Phoscon App. You can also add every of those items to a sub group by clicking at the “3 dot” menu of the sub group and then at the + button.

On this page drag & drop is disabled. You have to use the + buttons to add or remove items.

For now you can only create a sub group of type light. Later there will be the possibility to create thermostat and blind sub groups. And then there will be the possibility to create automations and schedules with thermostats and blinds:

Beta Test of Phoscon Home

You can download the latest version of the Phoscon Home Beta App with the dashboard from here:
https://deconz.dresden-elektronik.de/phoscon_app/

You have to extract the zip file to a directory and then you have to add the location of the extracted app folder to the link that start deCONZ.

On Windows:

  • create a link to deCONZ.exe somwhere
  • right click at the link and go to preferences
  • in the target field, after deCONZ.exe add --auto-connect=1 (if it is not there already just for auto connect of your ConBee device)
  • then add --http-root="D:\Projects\Phoscon\pwa\" Just change the drive letter and directory to the directory where you have extracted the zip file. Let there be a space between deCONZ.exe and the -- parameter.

On Raspberry Pi:

  • change the deconz-gui.service file or deconz.service (for headless deconz)
  • location: /lib/systemd/system
  • add the --http-root parameter after ExecStart=/usr/bin/deCONZ
  • example: ExecStart=/usr/bin/deCONZ --http-port=80 --http-root="/home/pi/path/to/pwa"
  • change the path to the extracted pwa directory
  • When you edit the service file itself the changes will apply until your next update of deCONZ. When you want a persistent solution you have to use sudo systemctl edit deconz-gui
  • Add this to the file:
### Editing /etc/systemd/system/deconz-gui.service.d/override.conf
### Anything between here and the comment below will become the new contents of>

[Service]
ExecStart=
ExecStart=/usr/bin/deCONZ --http-port=80 --http-root="/home/pi/path/to/pwa"

### Lines below this comment will be discarded
  • then sudo systemctl daemon-reload
  • then sudo systemctl restart deconz-gui

And don’t forget to create a backup of your Phoscon App first.

Feedback

Please add feedback and/or bug reports related to the new dashboard to this thread.

5 Likes

Hello,

I believe this is a step in the right direction and it is simpler and easier to navigate.

Some questions and feedback.

For the purpose of testing, why not just extract the new client to a different folder name? i.e pwa2, home or dashboard and copy to the the deCONZ/webapp folder. Then a user can switch between the two, old and new by changing the URI in the browser path? This gives a user an option of what UI they wish to use and can accommodate testing even if full functionality is not currently available.

  1. Limiting a physical device, a light of plug, to a single room is really restrictive and IMHO, it not viable as currently you can only create a Room and not Zones (LightGroup) as far as I can establish to date.
  2. During migration, this created a series of additional rooms that are not visible through the UI i.e. Phoscon_room_6_on_off_group and I cannot see any explanation as part of the migration process what defines that and how they can be deleted.
  3. You can open your network and start a search for new device when clicking at the + button.
  • I don’t believe this will be obvious to new users and adding some hover over comments I believe would be beneficial.
  • How are users notified if a new switch is added?
  • Option for switches available in the bottom and same drag and then could be configure.
  1. When selecting Lights in the Botton, this displays plugs and lights and should be separated or have a filter option.
  2. Will switches be able to control blinds assigned to Rooms?
  3. I could not Delete Scenes once created. I needed to use the old UI or app.
"devicemembership": [],
        "etag": "44657a64f1a023f2e4bbefce12b8a1ba",
        "hidden": true,
        "id": "37",
        "lights": [],
        "lightsequence": [],
        "multideviceids": [],
        "name": "phoscon_room_6_on_off_group",
        "scenes": [],
        "state": {
            "all_on": false,
            "any_on": false
        },
        "type": "LightGroup"
    },

I think this will not work, because you need deCONZ as the server for the webApp and you have to pass the directory to deCONZ (via http-root parameter) so that it can server the webApp.

1 The idea is that in your real home you can only have a device in one room, you can not duplicate or clone it, so it does not make sense that in the app is duplicated in 2 rooms. But you can add it to as many subgrups of a room as you want. subgroups are not restricted to any type of regulation. So you can have e.g. Group A and Group B both with the same device in it.

  1. The on_off groups are created for every room. they control which devices can be controlled via the room on/off button. You can add or remove devices that can be controled via the room menu. The on_off groups shouldn’t be visible in the new app. if they are it would be a display bug. But they are visible in a rest client and in the old app though.
  2. we will consider this, however there are some reasons why we did things as we did. We’ll see if we can improve things there.
    You’ll see when the app finds new devices it will change the device tab automatically to the new added device type and new found devices will blink.
    We havend added switches in the device bar, because they are not needed to be added to a room or displayed there because we already had the switch editor and switches only need to be configured there. You cant control them in the app so we did not add them to the dashboard.

5 we will consider this.

6 yes. not now but in a later version. We need a deCONZ update first. Then it will be possible to create blind and thermostat groups and on these groups we can simply use the switch editor ot automations. We could also implement this for single devices but it would also take some time. we will see what comes first.
7 This seems to be a bug. have you tried to open the scene in the scenes editor, and then clicked on “delete scene”? We will have to check this out.

1 Like

@ChrisHae

Thank you for the reply and I am currently running the old and new concurrently as I described without issues. I have not setup pass the directory to deCONZ (via http-root parameter), and renamed old pwa folder /home and the new is /pwa. Thus all I need to do is change the path to applicable URI
View video here

I will look at the sub-group but logically, a building has floors, room, zones or areas and the physical devices are the lowest end point Therefore, this can be a one to many, where a physical device could be represented in a room, a zone or area and/or floor and home.

The concept in that case, is the room is subordinate to the zone and floor and home whereby the sub-group is subordinate to the Room. But this is also partly me understanding and learning the new logic. There are a few nuisances that I need to become more familiar with which is expected as part of the transition.

Yes, I have checked the scene editor and the delete button was not presented. I reverted to old UI and could.

Can you please clarify as this may impact on testers and changes to the json may impact on 3rd party developers.

*Note that the conversion is only made in the backend of the app. So nothing changes in the RestAPI and the backend of deCONZ

When Rooms are created via new Dashboard has changes to includes new attributes “class” and “type”, there are documented in API; however, they are not visible in the old UI and in the event of rollback means the database could be left with orphaned records.

In addition, I can see no option to set or modify Class via the Dashboard.

{
    "action": {
        "alert": "none",
        "bri": 128,
        "colormode": "hs",
        "ct": 0,
        "effect": "none",
        "hue": 0,
        "on": false,
        "sat": 128,
        "scene": null,
        "xy": [
            0,
            0
        ]
    },
    "class": "Other",
    "devicemembership": [],
    "etag": "95895950eb1a37b10610d934f5188250",
    "hidden": false,
    "id": "30",
    "lights": [],
    "lightsequence": [],
    "multideviceids": [],
    "name": "test 1",
    "scenes": [],
    "state": {
        "all_on": false,
        "any_on": false
    },
    "type": "Room"
}

Enhancement Request - Sort and filter devices. This is is requested to enhance the current filters by device types, sensors, lights, blinds and thermostats. Currently when the devices appear across the bottom there is no option to either sort or filter by names or any other attributes. Conbee can support up to 512 nodes, the scrolling by itself is potentially not the most viable solution.

The Enhancement would be to add options to the right if the Add Devices (+) button to:

  • Button to sort by name, and type (until lights and plugs are separated)
  • Filter by text, or
  • Drop down selector (least desirable)

I raised the API changes a potential touch point to be reviewed and clarrified and it is now evident is that potentially not all attributes are exposed to external api calls. The example below is Phoscon Help API vs Postman… not presenting hidden attribute.

/api/xxxxxxxx/groups/ID

Phoscon
{
    "action": {
        "alert": "none",
        "bri": 127,
        "colormode": "hs",
        "ct": 0,
        "effect": "none",
        "hue": 0,
        "on": false,
        "sat": 127,
        "scene": null,
        "xy": [
            0,
            0
        ]
    },
    "devicemembership": [],
    "etag": "dcfdecfb0e0f7f38360d5da27575425d",
    "hidden": true,
    "id": "5",
    "lights": [],
    "lightsequence": [],
    "multideviceids": [],
    "name": "phoscon_room_11_on_off_group",
    "scenes": [],
    "state": {
        "all_on": false,
        "any_on": false
    },
    "type": "LightGroup"
}

Postman 

{
    "action": {
        "alert": "none",
        "bri": 127,
        "colormode": "hs",
        "ct": 0,
        "effect": "none",
        "hue": 0,
        "on": false,
        "sat": 127,
        "scene": null,
        "xy": [
            0,
            0
        ]
    },
    "devicemembership": [],
    "etag": "dcfdecfb0e0f7f38360d5da27575425d",
    "id": "5",
    "lights": [],
    "name": "phoscon_room_11_on_off_group",
    "scenes": [],
    "state": {
        "all_on": false,
        "any_on": false
    },
    "type": "LightGroup"
}

class and type are not new attributes. They have always been in the deCONZ RestAPI. The old app did not use the value “Room” of group type. The new app changes the type of group to “Room” during migration but only in the internal app model. So when you get /groups in a Rest Client the group will still be of type “LightGroup” That is what I meant by " nothing changes in the RestAPI".

Thats true. This has always been the case in the deCONZ Rest API.

That is a good idea, and we are trying to implement a sort option in one of the next releases.

1 Like

Can I please request that hidden be exposed? This will be beneficial to 3rd party developers to filter on or use to set in their application.

1 Like

I would also vouch for this to keep the Api consistent.

1 Like

deCONZ REST API recognises Phoscon through the HTTP header.

To see the same hidden items as Phoscon, set Accept: application/vnd.ddel.v1 in the HTTP header. Other versions are .v1.1, .v2 or .v3. I think .v3 will no longer show some deprecated items.

1 Like

It’s nice if setting this in the headers, but when I run the API via Phoscon web page and it shows me the URL it is using then I expected to get the same response using that API in my app. It would be beneficial to the developers using the published API to receive the same response in their app as demonstrated via Phoscon. I don’t see any mention of setting application headers to modify the response to an API request.

1 Like

Thank you for the reply and enlightening the forum on the undocumented API feature.

Agreed it should be consistent.

Welcome and very valid point that would not be known to most people.

The work-around works, as described, does expose the attributes as discussed earlier however, as per the comments above the community and developers expectation is to align the RestAPI between the applications to ensure consistency and data integrity being used by the developers.

I will forward this to the API developer. I think it should be no problem to change this.

Thank you Chris and the feedback my feedback is only identifying minor enhancement and it would be advantegious if there was more feedback.