Deze galerij bevat 6 foto's.
Deze galerij bevat 6 foto's.
Ik heb enkele kleine wijzigingen doorgevoerd aan de Skyz API: er is vanaf vandaag ook een (publieke!) bliksem API.
Het is mogelijk om de realtime gegevens op te vragen en de historische gegevens per dag tot 356 dagen terug. Beide endpoints hebben een ratelimit van 10 requests per 60 seconden.
Ik ben ook bezig met bliksemforencasting, waarmee het mogelijk zal zijn te voorspellen waar er blikseminslagen kunnen plaatsvinden. Hier zal ik later nog meer over publiceren.
Debian 13 komt met Python 3.13 als standaardpython, maar omdat ik toch graag python 3.14 ook op het systeem aanwezig heb heb ik besloten om eens te kijken om zelf python te compileren.
Eerst moeten we de python broncode downloaden, deze kunnen we vinden op https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tgz
wget https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tgz
tar xzf Python3.14.0.tgz
cd Python3.14.0
dan kunnen we de build-dependencies installeren:
sudo apt install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libzstd-dev
vervolgens kunnen we python configureren en compileren. Let wel dat als je naar een systeemmap compileerd je best make altinstall doet in plaats van make install.
./configure --enable-optimizations --with-lto
make -j 8
make altinstall
vervolgens kunnen we python 3.14 gebruiken:
vincent@sonnblick:~$ python3.14 --version
Python 3.14.1
vincent@sonnblick:~$ which python3.14
/usr/local/bin/python3.14
Vandaag bestaat mijn website 8 jaar! Het lijkt alsof het gisteren was toen ik “een website” vroeg als verjaardagscadeau…
Het is zeer eenvoudig om bestanden te uploaden met FTP en Python:
from ftplib import FTP_TLS
with FTP_TLS("ftp.server.be") as ftp:
ftp.login("gebruikersnaam","wachtwoord1234")
ftp.prot_p() # Gebruik een versleuteld datakanaal
# Upload bestand
with open("testdata.json","rb") as f:
ftp.storbinary("STOR testdata.json",f)
# Bestanden oplijsten
print(ftp.nlst())
# Bestand downloaden
with open("testdata2.json","wb") as f:
ftp.retrbinary("RETR testdata.json",f.write)
# Maak een map
ftp.mkd("/testdir/")
# Ga in een map
ftp.cwd("/testdir/")
print(ftp.nlst())
# Ga terug naar de "hoofdmap"
ftp.cwd("/")
print(ftp.nlst())
Ik heb onlangs een Storage box van hetzner gehaald, maar woud deze mounten binnen mijn Debian server. Na heel wat prutsen is het me uiteindelijk gelukt met deze instellingen:
eert moeten we fuse en sshfs installeren:
sudo apt install fuse sshfs
Vervolgens kunnen we onze systemd mount file aanmaken als “/etc/systemd/system/mnt-bigstorage.mount” met de volgende inhoud (pas aan waar nodig
[Unit]
Description=Hetzner Storage Box sshfs mount
Requires=network-online.target
After=network-online.service
[Install]
WantedBy=multi-user.target
[Mount]
What=u1234@u1234.your-storagebox.de:~/
Where=/mnt/bigstorage
Type=sshfs
Options=_netdev,allow_other,x-systemd.automount,IdentityFile=/home/vincent/.ssh/id_ed25519,reconnect,uid=1001,gid=1001,default_permissions,ssh_command=ssh,user=vincent,group=vincent -4 -p 23
Nu kunnen we het mounten met “systemctl start mnt-bigstorage.mount”
Het is vanaf vandaag ook mogelijk om via SFTP gegevens naar Skyz te sturen. Dit werkt in principe hetzelfde als de URL methode, enkel kan je nu rechtstreeks naar Skyz uploaden. Let wel dat je enkel .txt bestanden kan uploaden.

Mijn site is bijna 7 jaar oud, maar daardoor is er natuurlijk al heel wat “linkrot” (vooral omdat ik al heel wat manieren heb geprobeerd om mijn site te beheren). Met de “Redirection” Plugin van John Godley kan je heel eenvoudig alle 404 errors loggen en redirects aanmaken.
Ik ga dit de komende weken doen voor deze site, om een poging te doen om linkrot tegen te gaan.
Binnen Skyz gebruik ik ProFTPD zodat enkele gebruikers hun weerstationsgegevens als bestand kunnen uploaden. Het gaat nog altijd om een zeer beperkt aantal gebruikers die via SFTP gegevens doorsturen, maar om toch een beetje limieten te zetten zodat de opslag niet vol geraakt, heb ik onlangs quota’s ingesteld. Aangezien een databestand van een weerstation meestal klein is, is een limiet van 5MB/gebruiker in mijn geval zeker ruim voldoende.
Plaats het volgende in /etc/proftpd/conf.d/quota.conf:
QuotaEngine on
QuotaLog /var/log/proftpd/quota.log
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab
QuotaOptions ScanOnLogin
vervolgens moeten we de quotafiles maken:
ftpquota --create-table --type=limit
ftpquota --create-table --type=tally
Nu kunnen we een gebruiker een quota geven, gebruik de tool hieronder om het quota commando te genereren:
Een volgende stap is om het SFTP-gebruikersbeheer & quota te automatiseren, zodat elk weerstation automatisch een SFTP gebruiker krijgt, en vervolgens de uitleesfunctie te integreren in skyz zodat een gebruiker via SFTP gegevens kan sturen zonder tussenkomst van mij.