Cannot get HADashboard running or APPDAEMON please help

you probably dont run Appdaemon as homeassistant.

in winscp you need to use the following settings:

advanced> SCP > shell = sudo su -
user: pi (if it still exists)
password: the pi password

this is very confusing… the appdaemon site suggests to run the appdaemon service as hass/homeassistant user?

In winscp I have those settings and I get “permission denied” error.

Linux is so fustrating! I get exciting when I’m making headway and then come to a screaming holt when I hit issues like this :frowning:

yeah i still have those moments too :wink:
did you try the home assistant user with winscp?

(how did you setup? using hassbian? thats where my experience ends, because its not a “normal” linux environment)

did you also use the home assistant user to setup appdaemon?

because thats how @whuiscool solved it.
he uninstalled hiss Appdaemon then made sure that he was homeassistant user and then setup Appdaemon again.

another option is just create a new conf dir in the PI directory, set it to pi rights and start ad as pi user
or set the rights from your conf dir as pi user and use pi to run AD

I have finally had success, thanks to @ReneTode, @Tinkerer, @Vasiley.

I thought the issue was related to permissions but it looks like the issue (atleast for me) was that the /compiled dir wasn’t getting created on startup. To get it working this is what I did:

Moved the /conf dir from /home/homeassistant/.homeassistant to /home/pi.
Updated the Execstart and user in the systemd file.
created the javascript and css dir manually in the conf dir.

for some reason the above dir need to be created manually, not sure if this is a bug or the tutorial needs updating. This probably explains why @whuiscool method worked.

1 Like

I have the same issue. I added following entries to the appdaemon config file.

HASS:
  ha_url: https://custom.duckdns.org
  ha_key: !secret hapwd
HADashboard:
  dash_url: https://custom.duckdns.org
  dash_password: !secret hapwd
  dash_ssl_certificate: /etc/letsencrypt/live/custom.duckdns.org/fullchain.pem
  dash_ssl_key: /etc/letsencrypt/live/custom.duckdns.org/privkey.pem
  dash_dir: /home/homeassistant/.homeassistant/config/dashboards
  dash_compile_on_start: 1

I manually created following directory structure and gave rights to ‘pi’ user (appdaemon runs under ‘pi’ account)

compiled
compiled/css
compiled/javascript

image

I have added dummy Hello.dash file under ‘dashboards’ directory.

Questions:

  1. Do I need to open any port to run HADashboard?
  2. Do I need to disable appengine to run HADashboard? I have few apps running and no issues there.
  3. Is this right URL (with no port) to run dashboard? https://custom.duckdns.org/Hello

I am running AIO HA under virtual environment on Pi.

I appreciate any help.

1 Like

HASS is a (web)server.
HAdashboard is a webserver.

you give both the same name. could that ever work?
nope.

what you give as ha_url is an url where you can reach the ha API.
you probably like to have a local adress there, because you dont want appdaemon to stop working when there is an internet problem.
so ha_url would be something like: http://your_ip:8123
then the dashurl.
you probably have set custom.duckdns.org to reach your HASS.
so you cant use that as dashboard url.
you are telling the program which local adress it needs to use to be able to reach.
so like: http://your_ip:5050

dash password isnt possible at this moment because of a bug

after that you can reach your dashboard locally like http://your_ip:5050/Hello or in your case https

then you can create a second custom2.duckdns.org to point at your dashboard

Thank you for the quick reply.

I just stumbled upon HADashboard and curious to see how it works.

Unfortunately, I cannot access HA (using 192.xxx) on my internal network. In my case, I can access HA either with internal IP (using 192.xxx:8123) or external IP (via duckdns) but not both.

My network connected to Google Wifi router which is connected to Uverse router. So for testing, I went ahead with the same URL for HADashboard (using duckdns).

I was confused with port 5050 which was mentioned in the documentation. I thought that needs to be open in my Google Wifi router.

But I updated config file as you suggested. Viola!! It worked :sunglasses:

HADashboard:
  dash_url: http://192.168.86.61:5050
  # not working due to bug
  # dash_password: !secret hapwd
  # commented as trying internal URL first
  # dash_ssl_certificate: /etc/letsencrypt/live/custom.duckdns.org/fullchain.pem
  # dash_ssl_key: /etc/letsencrypt/live/custom.duckdns.org/privkey.pem
  dash_dir: /home/homeassistant/.homeassistant/config/dashboards
  dash_compile_on_start: 1

great.
at least you know why it can happen that your dashboard isnt working when HA is working but there is a internet issue.
i have my HA behind NGINX and my duckdns pointing at NGINX.
when i am local, i use my local address to go to HA, to avoid going over the internet with my local data used locally.

Actually, this resolves my existing issue with the router. Within the network, I couldn’t access HA using internal IP address due to some limitation on my Uverse and Google WiFi routers. So at home, I used my external duckdns.org address.

But with this internal IP address HADashboard URL I could access most of the stuff that I use daily and for external traffic redirected to 443 > 8123 for duckdns.

1 Like

Hello guys,
I have hassio and duckdns and lets encrypt installed. It is working fine over external network and internal.
I am trying to configure hadashboard with hassio. I want to access it locally so that in case of internet outage I can still use it, but i want home assistant to be exposed to external network so that I can control things remotely.
When I give the internal IP address of my ha to the appdaemon.yaml file, it does not connect. I have ssl certificate for hassio home assistant.
Can you please provide your suggestion on how I can use hadashboard on internal network

you probably also need to place the hass server behind an NGINX server.
how to configure hassio for that i have no clue.

Thanks man… i will try to do that

Are you running HA on Pi?

I would like to pursue your route. I appreciate any pointers.

TIA

yup i run HA on a RPI.

it depends on how you have HA installed.
if you have hassbian or just noob installed then you just download and instll NGINX from the website:
nginx.org

i got this in my nginx config

server {
        listen 80;
        server_name your_ha.duckdns.org;
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl;
        server_name your_ha.duckdns.org;
        ssl on;  
        ssl_certificate /etc/letsencrypt/live/your_ha.duckdns.org/fullchain.pem; # /etc/nginx/cert.crt;
        ssl_certificate_key /etc/letsencrypt/live/your_ha.duckdns.org/privkey.pem; # /etc/nginx/cert.key; 
        ssl_session_cache shared:SSL:10m;
        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_prefer_server_ciphers on;
        proxy_buffering off;

        location / {
            proxy_pass http://IP_address:8123;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
       }
}
1 Like

Thank you. It worked great. I didn’t know why I haven’t done this before.

I ran this command and updated config file with your version.

pi@rpi3-aio:~ $ sudo apt-get install nginx apache2-utils

I added and comment out few lines in HA config file to make it work. And also added port forwarding for 80 and 443 on Google Wifi router.

http:
  api_password: !secret hapwd
  # 11/3 - added these entries after NGINX install
  ip_ban_enabled: true
  login_attempts_threshold: 3
  # 11/3 - installed NGINX and disabled following entries
  # ssl_certificate: !secret rpi3_ssl_certificate
  # ssl_key: !secret rpi3_ssl_key
  # base_url: !secret rpi3_base_url

nginx.service

pi@rpi3-aio:/etc/nginx/sites-enabled $ systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: active (running) since Fri 2017-11-03 14:45:40 CDT; 4s ago
  Process: 28685 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 30758 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 30755 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 30759 (nginx)
   CGroup: /system.slice/nginx.service
           ├─30759 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ├─30760 nginx: worker process
           ├─30761 nginx: worker process
           ├─30762 nginx: worker process
           └─30763 nginx: worker process

probably the same reason i hesitated for a long time.
the idea to start a server is frightening when its called a server.
but the we have to remember that the moment we started with HA we also started a server.

yeah, you need to keep HA without certs, that part is for if you want outside, so for nginx.

you could also forward dashboard through nginx. or an ftp server or anything you like.
but for me the biggest advantage is that you can make a difference if you want to stay inside or outside your own lan.

connecting dashboard locally to HA was the thing that made me run it.

I also had to manually create the compiled/javascript and compiled/css folders. Permissions were set correctly to the homeassistant users&group

Thanks @sbmlat. I went into the directory where my appdaemon.yaml is, and created those three empty subdirectories using $sudo mkdir. I can now get to the dashboard on port 5050. I didn’t need to change any permissions.

Correction: I did have to change permissions to get onto the “Hello World” page. $sudo mkdir -m 777