Hur gör jag direktkoppling möjlig externt?

Från Firmware 2.8.8 (price area, remote Url, 64 hourly) kan man få appen (ver 1.19.1) att ansluta externt, direkt till Currently One enheten. Detta görs i tre steg:

  1. Öppna en port i din router, eller skapa ett serverName i din firewall.
  2. Ange ditt publika hostname eller ip-nummer och port i enhetens webbinterface
  3. Starta om appen när du befinner dig på ditt lokala nätverk

Fortsättningsvis kommer appen använda angiven remoteUrl då den inte är på lokala nätverket.

1. Öppna en port eller serverName

a) Öppna en port i routern

Öppna en valfri, ledig extern port, t.ex. 8765, mot din enhets lokala IP-nummer och lokal port 80.
Enhetens lokala IP address kan vara 192.168.3.102, Local IP ser du i din router eller i enhetens webbinterface.

Om din publika IP-adress (visas t.ex. på whatismyip.com) är 89.90.103.42 så ska du ange
http://89.90.103.42:8765
som remoteUrl.

b) Öppna ett serverName i din firewall/proxy

På liknande vis kan du mappa ett publikt server name (t.ex. c1.casamia.net) att proxya lokalt till din enhet. Här är ett exempel för nginx med SSL cert från LetsEncrypt för https:

  server {
    listen 443 ssl http2;
    server_name c1.casamia.net;
    ssl_certificate /etc/letsencrypt/live/casamia.net-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/casamia.net-0001/privkey.pem;

    location / {
      # auth_basic             "Restricted";
      # auth_basic_user_file   /etc/nginx/.htpasswd;
      proxy_pass http://192.168.3.102;
      proxy_redirect    off;
      proxy_set_header Host $host;
      proxy_set_header Connection '';
      proxy_http_version 1.1;

      # SSE requires these headers
      proxy_set_header Cache-Control 'no-cache';
      proxy_set_header Accept-Encoding '';
      proxy_set_header X-Accel-Buffering no;  # Disable Nginx buffering

      # Keep connection alive
      proxy_read_timeout 3600s;  # Keep SSE connection open for 1 hour
      proxy_send_timeout 3600s;
      keepalive_timeout 3600s;

      proxy_buffering off;
      proxy_cache off;
      
      proxy_set_header X-Real-IP         $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade $http_upgrade;
    }
  }

Med ovan ska du ange
https://c1.casamia.net
som remoteUrl.

2. Ange din publika remoteUrl i enhetens webbinterface

Utöver ovan exempel kan man baka in Basic auth username och password i remoteUrl om du har en proxy:
https://user:password@servername:port
är den fullständiga formatteringen av remoteUrl.

3. Starta om appen när du befinner dig på ditt lokala nätverk

Har du angett din publika remoteUrl i enheten, så behöver du starta om appen i lokalt nätverk. Detta för att appen ska kunna hitta din enhet och läsa angiven remoteUrl vid direktuppkoppling.
Därefter sparas remoteUrl i appens settings i telefonen, och kan också ses i appen under Settings → WiFi.

Notera att din publika IP “kan”/(läs:“kommer att”) ändras.
Det kan lösas gratis genom att använda DuckDns. Läs mer på https://www.duckdns.org/
För de som använder Home Assistant: Läs mer på Duck DNS - Home Assistant

Din router kan också få för sig att ändra det lokala IP till Currently One. Det kan förhindras genom att i routern låsa Currently One’s MAC till önskat lokalt IP.

Mvh.
Sören

1 Like