Measuring CO₂ using an ESP32 and the Adafruit SCD-41 CO₂ Sensor

Introduction Last year, I bought the Birdie CO₂ monitor 1 to measure my CO₂values at home. This air quality meter resembles a canary bird, referencing the days where canaries were used in coal mines to detect deadly carbon monoxide. When these stopped singing (or even collapsed 😥), this was a sign that the air quality was poor, and the workers needed to leave the mines 2. This is how the Birdie looks when the air quality changes from good to bad and again from bad to good: ...

10.01.2025 · 9 min · Emanuel Duss

WireGuard VPN Road Warrior Setup

Introduction WireGuard is a relatively new open-source software for creating VPN tunnels on the IP layer using state of the art cryptography. I attended a self-organized session by the creator and developer Jason Donenfeld at the 34c3 who explained how WireGuard works and how it can be used. I was quite impressed by it’s simplicity and gave it a try. It worked more or less out of the box. Now I created a more advanced setup for accessing my home network. ...

29.09.2018 · 17 min · Emanuel Duss

Dynamische DNS Zonen automatisch für DNSSEC signieren

Einführung Setzt man DNSSEC ein, muss man bei jeder Änderung der Zone oder wenn die Signatur abgelaufen ist die Zone neu signieren. Setzt man dynamisches DNS ein (wie in diesem Blogpost beschrieben: Eigener Dynamischen DNS (DDNS) Service betreiben (Eigenes DynDNS), ist es am einfachsten wenn der Nameserver die Zone nach einem Update selber neu signiert. Das Problem Es gibt den Host monpi.example.org, welcher seinen DNS-Eintrag regelmässig anpasst. Bei dieser Zone wurde neu DNSSEC aktiviert: ...

18.09.2014 · 3 min · Emanuel Duss

Eigener Dynamischen DNS (DDNS) Service betreiben (Eigenes DynDNS)

Einführung Mit Dynamischem DNS (DDNS) kann man DNS Einträge zur Laufzeit verändern. So kann z. B. ein DHCP Server autoomatisch zu jedem DHCP Client ein DNS Eintrag erstellen. Ein anderer Anwendungszweck ist das bereitstellen eines DNS-Eintrags (z. B. A oder AAAA Records) für eine sich oft wechselnde IP-Adresse, damit diese immer unter dem selben Namen erreichbar ist. Bekannte Anbieter solcher Dynamischen DNS Services sind dyn.com oder noip.com. So einen Dienst kann man aber auch selber betreiben. ...

01.07.2013 · 4 min · Emanuel Duss

Zwingender monatlicher Login bei DynDNS.org automatisieren (Auto Login Script)

Einführung Seit kurzer Zeit muss man sich, damit man seinen Hostnamen nicht verliert, jeden Monat im Account von DynDNS.org einloggen. Mit einem einfachen Skript und einem Crontab Eintrag lässt sich das automatisieren. Automatisch einloggen Folgendes Skript automatisiert das Login im Account von DynDNS.org. Man muss nur noch den Usernamen und das Passwort eintragen. #!/usr/bin/env bash # # dyndnslogin - Automate login to prevent account expiration # ######################################################################## # DynDNS Settings (default-value, overwrite with $1 and $2) # If you have special chars in your password, you need to urlencode: # python -c "from urllib.parse import quote; # print(quote('your password', safe=''))" DEFAULT_USERNAME="username" DEFAULT_PASSWORD="password" # Import settings from /etc/ddclient.conf if available DDCONF="/etc/ddclient.conf" if [ -r "$DDCONF" ] && grep -q "^server=members.dyndns.org" "$DDCONF" then DEFAULT_USERNAME="`awk -F= '/^login=/{ print $2 }' $DDCONF`" DEFAULT_PASSWORD="`awk -F= '/^password=/{ print $2 }' $DDCONF`" fi USERNAME=${1:-$DEFAULT_USERNAME} PASSWORD=${2:-$DEFAULT_PASSWORD} PROGNAME=dyndnslogin COOKIE=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_cookie_XXXXX` OUTPUT=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_output_XXXXX` USERAGENT="Mozilla/5.0" MULTIFORM=`curl -s -A $USERAGENT -c $COOKIE https://account.dyn.com \ | awk -F\' '/multiform/{ print $6 }'` curl -s --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \ --data-urlencode "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \ https://account.dyn.com/ if grep -i -E "(Welcome|Hi).*$USERNAME" $OUTPUT > /dev/null 2>&1 then echo Login successful else echo Login failed FAILED="true" fi rm $COOKIE rm $OUTPUT if [ "$FAILED" = "true" ] then exit 1 fi Nach dem Ausführen erhält man die Rückmeldung, ob das Login funktioniert hat oder nicht. ...

23.05.2013 · 2 min · Emanuel Duss
×