For anything important, use matrix instead of lemmy DMs.

  • 0 Posts
  • 16 Comments
Joined 1 year ago
cake
Cake day: June 22nd, 2023

help-circle
  • Some subjects you might wanna look into.

    1. NAT hairpin, also called NAT loopback If you’re sending packets to your ISP’s public IP from inside your LAN and it fails, your ISP modem (or whichever device does the NAT, probably doesn’t support NAT hairpin.

    2. Split-horizon DNS That’s when you configure your own DNS for your hosted services, but with a different config on your LAN (which would point towards your services LAN IP) and another config with your public DNS provider (which would point to your public IP)

    3. Carrier NAT This could break your chances of having a reachable service as they likely won’t make a port forwarding rule for you in their stuff.

    4. IPv6 address types Link-local addresses are within fe80::/10 (kinda similar to how 169.254.0.0/24 is used in ipv4). This IP wouldn’t be reachable from the outside.
      Global unicast addresses are all in 2000::/3, this would be reachable from the outside.

    5.IPv6 DNS Make sure to configure both A (ipv4) and AAAA (ipv6) records with the right info. Although if your LAN devices only have ipv4 addresses and you’re doing Split-horizon, you could theoretically omit the AAAA on your LAN

    1. Phone DNS shenanigans.
      Some recent phones ignore the DNS they receive through DHCP and instead use something like Google’s which breaks split-horizon and can confuse troubleshooting. This wasn’t in the SSID settings, but in a global “private DNS” setting.

    As for your problems, it depends.
    There might be a way to make this work without the VPS, but I don’t have all the info.
    That said, a VPS or something like a cloudflare tunnel could come in handy. I usually prefer to host directly but still, that’s an option if port forwarding doesn’t work with your ISP.
    You’d configure the DNS for your services to the VPS IP and configure the VPS to reach your stuff.
    Using the VPS kinda also gets rid of NAT hairpin problems although it is inefficient to go through the VPS from the LAN with the downside of not working when your Internet is down.
    You can still use the VPS and Split-horizon DNS if you wanna have local availability from your LAN when your Internet is down.

    Good luck














  • Oh… I think you also need double quotes around template brackets when used as the value in a service call…? Which conflicts with the quotes around the entity and attribute so just use single quotes there.

    brightness_pct: "{{state_attr('light.kitchen_sink_ceiling', 'brightness')}}"
    

    Just whipped up a partial example with my living room lights. It is missing a trigger and an else butI focused on theactionyou had trouble with.
    Using brightness instead of brightness_pct seemed simpler. (Or at least if both can usethe same attribute…)

    alias: Example
    description: ""
    trigger: []
    condition:
      - condition: state
        entity_id: light.living_room_floor_lamp_1
        state: "on"
    action:
      - action: light.turn_on
        metadata: {}
        data_template:
          brightness: "{{state_attr('light.living_room_floor_lamp_1', 'brightness')}}"
        target:
          entity_id: light.living_room_floor_lamp_2
    mode: single