Author: Jason

  • Free Palestine!

    Palestine will be free, from the river to the sea.
    I stand with Palestine.

    I ❤️ 🇵🇸

  • WSJ2023 – World Scout Jamboree 2023 Discord

    There are a number of unofficial discords for WSJ2023. In particular for The IST team there is this one:

    https://discord.com/invite/A7rByrD WSJ2023 IST

  • WSJ2023 Newsletters in one big searchable file

    I was finding it really difficult to get the information I need from the Newsletters so I made one big searchable document with all the WSJ2023 Newsletters in one big file.

    I’ll endeavour to update it when new Newsletters come out

    pdftk WSJ2023-Newsletter-*.pdf cat output WSJ2023-Newsletters1-3b.pdf
    mkdir tmp
    cp WSJ2023-Newsletters1-3b.pdf tmp
    cd tmp
    pdftohtml -p -c -s -noframes WSJ2023-Newsletters1-3b.pdf

    WSJ 2023 Newsletters 1-5

  • Sydney Harbour

    Sydney Harbour

    A photo I took when I rode over Sydney Harbour Bridge recently

  • Moved to a new host

    I moved my site to a new host. If you can see this, you are viewing the new host.

  • ESPHome configuration for Arlec Grid Connect Smart Plug-in Socket

    Ben asked if I could share my ESPHome configuration for the Arlec device. Here it is:

    esphome:
      name: master_bedroom_heater
      platform: ESP8266
      board: esp01_1m
    #  esp8266_restore_from_flash: True
    wifi:
      networks:
        - ssid: !secret work_ssid
          password: !secret work_psk
        - ssid: !secret home_ssid
          password: !secret home_psk
    # Enable logging
    logger:
    # Enable Home Assistant API
    api:
      password: !secret ha_api_pw
    ota:
      password: !secret ota_pw
    binary_sensor:
      - platform: gpio
        pin:
          number: GPIO14
          mode: INPUT_PULLUP
          inverted: True
        name: "master br heater Button"
        on_press:
          - switch.toggle: mr_br_heater
      - platform: status
        name: "master bedroom heater status"
    switch:
      - platform: gpio
        name: "Master Bedroom Heater"
        pin:
          number: GPIO12
        id: mr_br_heater
        restore_mode: RESTORE_DEFAULT_OFF
        on_turn_on:
          light.turn_on:
            id: mr_br_led1
        on_turn_off:
          light.turn_off:
            id: mr_br_led1
    light:
      - platform: binary
        name: "led1"
        output: led1
        id: mr_br_led1
      - platform: binary
        name: "led2"
        output: led2
    output:
      - platform: gpio
        pin:
          number: GPIO04
        id: led2
        inverted: True
      - platform: gpio
        pin:
          number: GPIO13
        id: led1
        inverted: True
    
  • Putting ESPHome on Arlec Smart Plug In Socket

    I got some of these Arlec Smart Plug In Sockets from Bunnings. Apparently they are Tuya devices but I decided to take the brute force approach to putting ESPHome on the.

    First challenge was getting the tri point screw out. I had to buy a special screwdriver for this.

    tri point screw in arlect smart plug
    They don’t really want you opening these

    Once I got the screws out, it was easy to unclip the case and open it.

    After tracing the circuit, I decided to solder wires to the board and connect them to my USB->Serial adapter. The only tricky part was that you have to hold GPIO0 at ground when you power up the esp8266 to get it into flash mode. I just held a wire on the tiny GPIO0 pad on the TYWE2S.

    wires soldered to circuitboard to enable flashing
    wires soldered to circuit board to enable flashing

  • Can’t log in to Netflix on Samsung TV

    I had this problem on our Samsung TV where no matter what, I couldn’t log into the Netflix app. I noticed that it happened just after I had changed the password to Netflix. Now lets not think about how fucking difficult it is to type in an email address and secure password using just a remote, but then the frustration of doing it over and over again and being told the login is incorrect… I was close to smashing the TV with the remote and then throwing the whole lot out the window.

    Anyway, after I finally accepted that it wasn’t me but it was either the TV or the Netflix app, I started googling around. Turns out there is a secret way to reset the Netflix app. Once I did that I was able to log in first time. WTF Samsung and Netflix? how can this bug exist?

    Anyway the magic is:

    Start SmartHub and select the Netflix App, then on the TV remote, press the following sequence:

    Up, Up, Down, Down, Left, Right, Left, Right, Up, Up, Up, Up.

    Once you have done that, the app will ask you if you want to Start Over. Hit Yes, and you should be good to go.

  • Let’s Encrypt when your server is behind a firewall and you can’t use DNS Challenge

    Sometimes you want to give a server that is  behind a firewall a valid SSL certificate. Let’s Encrypt provides a nice solution for this called DNS Challenge. The problem with DNS Challenge is it may require some manual configuring to on your server to set it up. That is all fine and good but sometimes the server won’t allow you to do that configure. A classic example is the hass.io (Home Assistant) appliance or FreePBX

    I couldn’t find a coherent set of instructions for setting up Let’s Encrypt DNS Challenges with hassio, especially as my DNS provider requires custom scripts in order to achieve this.

    However, I came up with a work around. First let’s think about how Let’s Encrypt (LE) usually works. Suppose you want to get a certificate for my.example.com (MEC), but my.example.com is NATed behind example.com’s (EC) IP address. When you run the LE client on MEC, it requests the LE servers to do a challenge request to MEC. MEC will have the same public IP as EC. the client on MEC will some information on the MEC server at the <webroot>/.well-known/acme-challenge. The LE servers will try and query it. If they find what they are looking for, they issue you the certificate.

    So I got to thinking, as this request takes place on port 80, it must contain the domain name header, and so, if you run an web server on port 80 of EC and A entry for  MEC the same public IP address as EC, EC could simply proxy that request to the MEC server.

    I looked up how to do this and set it up on my server and low and behold, I was able to get a valid certificate.

    In my case I did it with nginx , so the config looked like this:

    On my server on port 80 (example.com) of the firewall in /etc/nginx/sites-available/my.example.com:

    server {
           server_name my.example.com;
           location / {
           		proxy_pass http://192.168.1.9:80/;
    		proxy_set_header Host $http_host;
    	}
    }

    Then symlink it to /etc/nginx/sites-enabled/my.example.com and test the nginx config:

    $ sudo ln -s /etc/nginx/sites-available/my.example.com  /etc/nginx/sites-enabled/my.example.com
    $ sudo nginx -t
    [sudo] password for jason:
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

    Restart nginx:

    sudo systemctl restart nginx.service

    Now start your Let’s Encrypt certificate request on your server and you should be good to go.