Status: Dit is de laatste versie van dit script.
Naar aanleiding van feedback m.b.t. het niet meer werken van het script, bijgewerkt op 10-10-2022 om weer werkend te krijgen.
Beschrijving
Script voor het automatisch controleren van je internet-aansluiting op de ping-, download- en upload-snelheid, en het weergeven hiervan in Domoticz.
Update
Verbeterde versie van versie 1.0 van dit script. De update van mijn Raspberry Pi naar de laatste versie van Raspbian zorgde ervoor dat diverse onderdelen van het script niet meer werkte. Deze versie zorgt dat alles weer werkt.
Setup variabelen aangepast zodat deze logischer en leesbaarder qua naamgeving zijn.
Code volledig opgeschoond, gestructureerd en verbeterd.
Tijdelijk bestand wordt aangemaakt op standaard tijdelijke locatie en aan het einde van het script voortaan ook opgeruimd.
Meer details in logging naar Domoticz toegevoegd.
LET OP! Onderstaand script gaat nu uit van speedtest-cli geïnstalleerd via PIP, aangezien de installatie via apt-get een verouderde versie installeert, waarbij de test-resultaten niet meer correct zijn. Zie installatie-instructie onderaan voor meer details.
Code
#!/bin/bash
# Setup variables.
DOMOTICZ_SERVER="x.x.x.x:yy" # IP-adres:Poort van je Domoticz server
IDX_PING=1 # IDX voor ping-snelheid
IDX_DOWNLOAD=2 # IDX voor download-snelheid
IDX_UPLOAD=3 # IDX voor upload-snelheid
# No need to edit below here.
echo "Start running speedtest script."
# Create temp-directory if it does not already exists.
TEMP_DIR="/home/pi/temp"
if [ -d $TEMP_DIR ] ; then
echo "- Temp-directory already exists, no need to create it."
else
echo "- Temp-directory does not exists, creating it now."
/bin/mkdir $TEMP_DIR
fi
TEMP_FILE=$TEMP_DIR/speedtest.txt
# Perform speedtest.
echo "- Performing speedtest."
/home/pi/.local/bin/speedtest-cli –simple –secure > $TEMP_FILE
# Handle results of speedtest.
PING=$(cat $TEMP_FILE | sed -ne 's/^Ping: \([0-9]*\.[0-9]*\).*/\1/p')
DOWNLOAD=$(cat $TEMP_FILE | sed -ne 's/^Download: \([0-9]*\.[0-9]*\).*/\1/p')
UPLOAD=$(cat $TEMP_FILE | sed -ne 's/^Upload: \([0-9]*\.[0-9]*\).*/\1/p')
echo "- Results of speedtest:"
echo " - Ping = $PING ms"
echo " - Download = $DOWNLOAD Mbps"
echo " - Upload = $UPLOAD Mbps"
# Update download, upload and ping values in Domoticz.
echo "- Updating download, upload and ping values in Domoticz."
wget -q --delete-after "http://$DOMOTICZ_SERVER/json.htm?type=command¶m=udevice&idx=$IDX_PING&svalue=$PING" >/dev/null 2>&1
wget -q --delete-after "http://$DOMOTICZ_SERVER/json.htm?type=command¶m=udevice&idx=$IDX_DOWNLOAD&svalue=$DOWNLOAD" >/dev/null 2>&1
wget -q --delete-after "http://$DOMOTICZ_SERVER/json.htm?type=command¶m=udevice&idx=$IDX_UPLOAD&svalue=$UPLOAD" >/dev/null 2>&1
# Remove temp file.
echo "- Removing temp file."
/bin/rm $TEMP_FILE
# Domoticz logging.
echo "- Writing log to Domoticz."
wget -q --delete-after "http://$DOMOTICZ_SERVER/json.htm?type=command¶m=addlogmessage&message=Speedtest script finished with results: Ping: $PING ms, Download: $DOWNLOAD Mbps, Upload: $UPLOAD Mbps." >/dev/null 2>&1
# Done!
echo "Done running speedtest script."
Installatie-instructies
Oude versie speedtest-cli verwijderen
Deze stap mag worden overgeslagen wanneer je dit script voor het eerst installeert.
Om bovenstaand script goed te laten werken, dient speedtest-cli geïnstalleerd te zijn op je Raspberry Pi. Bij het oude script werd gebruik gemaakt van de versie die werd geïnstalleerd via APT-GET. Mocht je die versie nog geïnstalleerd hebben staan, dan kan je deze het beste eerst deïnstalleren met het volgende commando;
sudo apt-get uninstall speedtest-cli
PIP installeren
PIP is een package manager uit de hoek van Python. Zonder duidelijke reden wordt vanuit PIP wel de nieuwste versie van speedtest-cli geïnstalleerd. Om PIP hiervoor te kunnen gebruiken, dient dit eerst geïnstalleerd te worden via de volgende twee commando’s;
sudo apt-get update
sudo apt-get install python-pip
Nieuwe versie speedtest-cli installeren
Als PIP is geïnstalleerd, dan kan speedtest-cli vervolgens geïnstalleerd worden middels het volgende commando;
pip install speedtest-cli
Rebooten
En na het installeren van de nodige nieuwe packages is het altijd goed om even te rebooten;
sudo reboot
Virtuele sensoren aanmaken in Domoticz
Deze stap mag worden overgeslagen wanneer je de oude versie van dit script al gebruikte.
In Domoticz dienen drie virtuele sensoren aangemaakt te worden. Deze zullen met bovenstaand script worden gevuld met de waardes van de speedtest-resultaten.
Ga in Domoticz naar Instellingen en vervolgens naar Hardware. Maak onder aan de pagina een nieuw item aan met de naam Speedtest van het type Dummy.
Als je deze hebt aangemaakt kan je in hetzelfde scherm vervolgens op de knop Maak virtuele sensoren klikken. Doe dit drie keer en maak sensoren aan het type “Custom”. Geef deze de namen Ping, Download en Upload.
Ga nu naar Instellingen en vervolgens naar Apparaten en zoek in dit scherm de zojuist aangemaakte sensoren op. Deze hebben alle drie een eigen IDX-nummer (eerste kolom in de tabel). Deze IDX-nummers heb je zo nodig om in te vullen in het script.
Script plaatsen en configureren
Inmiddels hanteer ik de standaard om alle script t.b.v. Domoticz te plaatsen in de folder /home/pi/domoticz/scripts. Dus ik adviseer je om hetzelfde te doen met dit script, maar verplicht is het natuurlijk niet. Sla het bestand op onder de naam speedtest.sh.
In het begin van het script zijn er vier variablen die je zelf dient in te vullen;
Bij DOMOTICZ_SERVER vul je op de plaats van x.x.x.x:yy het IP-adres en de gebruikte poort in van Domoticz. Draai je dit script op de Raspberry Pi waarop je ook Domoticz draait en werkt je op de standaard poort van Domoticz, dan kan je hier localhost:8080 invullen.
Bij IDX_PING, IDX_DOWNLOAD en IDX_UPLOAD vul je de IDX-nummers in die je in de vorige stap hebt aangemaakt en opgezocht.
Schedulen van het script
Om het script op gezette tijden te laten draaien en dus met regelmaat je internet-aansluiting te testen, dien je deze als laatste nog te schedulen (dat is goed Nederlands voor inplannen).
Mocht je niet bekend zijn met crontab, dan adviseer ik je hier even op te Googlen. Voor het aanpassen van je cronjobs gebruik je het volgende commando;
crontab -e
Bij mijzelf laat ik het script 1 keer per uur draaien, precies in het midden van elk uur. De regel hiervoor in crontab ziet er alsvolgt uit;
30 * * * * /home/pi/domoticz/scripts/speedtest.sh
Hoe jij dit wilt inplannen moet je uiteraard zelf weten, maar vaker dan 1 keer per uur heeft in ieder geval weinig zin.
Testen en wachten
Als je alle stappen goed hebt uitgevoerd, dan ben je klaar. Binnen een uur zou je de eerste resultaten in Domoticz moeten zien verschijnen. Mocht je nou niet kunnen wachten (kan ik mij zo maar voorstellen), dan kan je met het volgende commando handmatig het script draaien;
bash /home/pi/domoticz/scripts/speedtest.sh
Zodra het script klaar is (duurt onveer 30 seconden), zou je de eerste waardes in Domoticz moeten terugzien.
Bedankt voor het script en ik heb hem geprobeert te instaleren maar op een of andere manier wil het script de waarde niet updaten via wget, als ik het rechtstreeks in de browser doet werkt het wel.
Enig idee wat dat kan zijn?
Laat maar ik heb het probleem gevonden, wachtwoord stond nog aan voor het lokale netwerk.
Dank voor het script. Bij de handmatige test moet de map scripts nog worden toegevoegd.
Goed gezien, thanks voor het melden, is aangepast!
Ik krijg geen waardes door 3x 0 🙁
Ik heb geen idee waar de fout zit, had ik ook met de CLI script
Pi zit op wifi, is dat het misschien?
WiFi zal geen verschil maken voor de werking, wel voor de eventuele gemeten snelheid als de wifi-verbinding niet heel snel is. 3 x 0 suggereerde dat je Pi überhaupt geen verbinding met internet heeft. Zou dat kunnen kloppen?
zeker wel verbinding via SSH, domoticz, intern als extern 🙂
pi@raspberrypi:~ $ bash /home/pi/domoticz/scripts/speedtest.sh
Start running speedtest script.
– Temp-directory already exists, no need to create it.
– Performing speedtest.
– Results of speedtest:
– Ping = ms
– Download = Mbps
– Upload = Mbps
– Updating download, upload and ping values in Domoticz.
– Removing temp file.
– Writing log to Domoticz.
Done running speedtest script.
Het is opgelost, ik had wat wisselend hoofdlettegebruik in mijn script
He wat goed dat je het hebt kunnen oplossen! Heb je nog interessante wijzigingen gedaan aan het script dan? Ben ik uiteraard altijd in geïnteresseerd!
Geweldig idee, leuke extra functie! Helaas levert die regex-regel bij mij ook niets op 🙁
Script loopt goed, ik zie ook waarden weggeschreven worden naar speedtest.txt
Ping: 9.394 ms
Download: 88.39 Mbit/s
Upload: 39.22 Mbit/s
maar vervolgens krijg ik
Start running speedtest script.
– Temp-directory already exists, no need to create it.
– Performing speedtest.
– Results of speedtest:
– Ping = ms
– Download = Mbps
– Upload = Mbps
– Updating download, upload and ping values in Domoticz.
– Removing temp file.
– Writing log to Domoticz.
Done running speedtest script.
Ook in de logging van Domoticz:
2020-10-27 15:30:27.421 Status: Incoming connection from:
2020-10-27 15:30:27.462 Status: Speedtest script finished with results: Ping: ms, Download: Mbps, Upload: Mbps.
Tot nu toe wist ik weinig van regex of sed dus ik heb het e.e.a. opgezocht en nagekeken maar ik krijg die regex-regel niet zo dat die alleen het getal weergeeft.
Bedoel je bijvoorbeeld de regel => cat $TEMP_FILE | sed -ne ‘s/^Ping: \([0-9]*\.[0-9]*\).*/\1/p’
Wanneer ik de temp-file tijdelijk niet laat verwijderen en via de command line deze cat over de temp-file laat uitvoeren, dan krijg ik netjes output in de command line.
Dus eerst voor de regel /bin/rm $TEMP_FILE een # zetten.
Dan vanuit de command het script uitvoeren met: bash speedtest.sh
Daarna commando: cat /home/pi/temp/speedtest.txt | sed -ne ‘s/^Ping: \([0-9]*\.[0-9]*\).*/\1/p’
Kan je eens uitproberen wat dat doet?
Geweldig! Nu loopt alles perfect. Dank je wel!
Beste Jos,
Ik zit met het zelfde probleem als Rob, op het moment dat ik de cat regel met de hand uitvoer, krijg ik wel het correcte getal te zien.
Echter krijg ik ook geen log regel in Domoticz
Enige wat ik gewijzigd heb is http:// weggehaald, en dit veranderd naar https:// aangezien ik de https verbinding vereis. Alsook het juiste raspberrypi account ingevoerd.
Ik heb lokaal geen wachtwoord nodig om op domoticz in te loggen.
Heb je nog tips?
Alvast bedankt,
Mathijs
Heb je ‘m wel gedraaid met HTTP? HTTPS werkt waarschijnlijk prima vanaf je computer/telefoon, maar hoeft niet correct te werken vanaf de Raspberry zelf.
Hoi Jos,
Bedankt voor je snelle reactie.
Als ik het script draai via http, dan blijft deze zeer lang laden. Maar blijft het probleem dat de cat / sed -ne lijn geen data uit het tekst bestand ophaalt.
Daar waar dit wel lukt op het moment dat ik het handmatig uitvoer & het .txt bestand tijdelijk niet laat verwijderen.
Beste Jos,
het is inmiddels gelukt om de waardes zichtbaar te krijgen.
In het script op de site staat de cat sed -ne op het einde van de regel als:
//p; dit heb ik gewijzigd naar /\1/p.
Verder is het ook gelukt om de waardes in domoticz te krijgen. door de http poort te gebruiken (kleinigheidje houdt je toch.
Nogmaals bedankt voor het script en de snelle reacties.
Hoi Matthijs,
Je hebt een heel interessant issue op m’n site gevonden 😉 Door de caching plugin werd op één of andere manier de \1 weggefilterd… ik heb de cache nu uitgezet, en nu is ie wel weer zichtbaar in het script.
Top het dat nu bij jou ook werkt!
Het script draait en de waardes komen netjes terug, alleen de sensors blijven in Domoticz op 0 staan.
De IDX nummers van de sensors staan correct in mijn script. Wat zou er mis kunnen zijn?
Heb je Domoticz toevallig beveiligd met een username en wachtwoord? Het script roept een API aan via HTTP en moet dus wel toegang krijgen.
Hoi Jos,
Jazeker, maar ik heb in de settings ook de volgende adressen toegestaan (Local Networks (no username/password):)
127.0.0.*;192.168.1.*,localhost
Dit zou voldoende moeten zijn toch?
Ik weet niet of je localhost zo mag opnemen eerlijk gezegd. Hij staat bij mij alsvolgt ingesteld, en dat werkt zonder probleem: 192.168.1.*;127.0.0.*
Hmm. De poort die ik moet hanteren is (in mijn geval 8080) ook de poort waarmee ik de interface via een browser benader?
Nevermind, het was mijn eigen fout. Ik had de quotes om het DOMOTICZ_SERVER adres laten staan (just getting started ;))
Bedankt voor je hulp! Het werkt nu.
Leuke toevoeging aan domoticz en werkt in één keer hier. Bedankt Jos!
Hoi Jos,
Eventueel heb ik een RPI 3b gekocht daarop ook Domoticz. In eerste instantie voor het uitlezen van mijn slimmen meter. Sinds dien zie ik steeds meer nieuwe en leuke dingen, zoals het script voor het bijhouden van de internet snelheid. Alles lijkt ook te werken, behalve de planningregel van Cronjob. Als ik het script handmatig start komt alles keurig in Domoticz. Daarna blijft het stil. Moet de aangemaakte Cronjob op een specifieke plek staan om te werken?
Hi, waar staat het script precies opgeslagen en hoe ziet je regel in crontab eruit?
Hoi Jos,
De regel wordt opgeslagen in: /tpm/crontab.(dit verschilt bij elke keer opslaan)14DE9Y/crontab
Mijn crontab heeft de volgende inhoud:
# m h dom mon dow. Command
20 * * * * /home/pi/domoticz/scripts/speedtest.sh
Zonder punt tussen dow en command
Hoe bedoel je precies “/tpm/crontab.(dit verschilt bij elke keer opslaan)14DE9Y/crontab”? Met crontab -e bewerk je in principe rechtstreeks. Nu lijkt het of je iets op een verkeerde of tijdelijk locatie hebt staan.
Elke keer als ik de crontab op sla na een aanpassing veranderd de lettercombinatie. Het blijft in /tmp. De combi die dan volgt is altijd anders. Dan weer een /crontab
Wat zou een logische plek zijn om het op te slaan?
Is een crontab automatisch actief? Ik heb veel gelezen over hoe je het in moet vullen maar niet hoe het zich verhoud binnen het OS. Dat maakt het voor mij lastig te begrijpen.
Gebruik je wel het commando “crontab -e”? Welke editor gebruik je hiervoor? En zijn je aanpassingen wel opgeslagen als je deze opnieuw opent?
Crontab is het standaard mechanisme voor het inplannen van scripts. Dit is standaard actief.
Via het commando crontab-e kom ik in de GNU nano 3.2 editor.
daarin heb ik de regel geplakt uit de tekst boven, zonder hekje er voor. In deze editor worden de wijzigingen goed opgeslagen. Net nog ff getest.
met het commande sudo crontab -l krijg ik de melding, “no crontab for root.
Crontab -e met een spatie tussen de b en de – neem ik aan? Staat hierboven zonder, dus even voor de check!
Klopt dat als je een sudo crontab draait dat je ‘m daar dan niet ziet. Je draait dan crontab .er sudo rechten, dus dat levert een aparte lijst op.
Probeer maar een crontab -l zonder de Audi ervoor. Dan zou je de taak die je hebt toegevoegd netjes moeten terug zien.
Hoi Jos,
het duurde een poosje maar daar ben ik weer. Ben er inmiddels achter dat de crontab werkt. In de syslog kan ik zien dat er geregeld een opdracht loopt voor de speedtest.
Weet jij of er ook verschil zit in het uitvoeren van de opdracht via crontab of via de bash opdracht via de terminal? Via de bash opdracht wordt de data wel in Domoticz geupdated, dat kan ik zien in UI van Domoticz. Als de crontab draait volgt er geen update. Ik kan wel in de Domoticz database kijken via SQL maar daar begrijp ik geen hout van.
Zoals ik het nu zie lijkt het er op dat het script op een of ander manier niet een update kan uitvoeren via de crontab maar wel mbv een directe opdrachtregel in de terminal. Kan dit met met rechten te maken hebben?
Weet jij waar ik de letterlijke output van de crontab-speedtest opdracht zou moeten zien en hoe?
Hi, sorry voor de late reactie. Het maakt niet uit of je het script rechtstreeks vanaf een prompt draait of via een cronjob. Mits uiteraard de rechten gelijk zijn waarmee wordt uitgevoerd.
In het script wordt aan het einde het txt bestand verwijderd, je zou deze regel even kunnen uitzetten door de inhoud van het bestand in te zien.
thanks, ga ik proberen
Het script heeft het altijd gedaan maar ineens loopt het in een foutmelding. Geen idee waardoor. Iemand een idee?
bash /home/pi/domoticz/scripts/speedtest.sh
Traceback (most recent call last):
File “/usr/bin/speedtest-cli”, line 11, in
load_entry_point(‘speedtest-cli==2.0.2’, ‘console_scripts’, ‘speedtest-cli’) ()
File “/usr/lib/python3/dist-packages/speedtest.py”, line 1887, in main
shell()
File “/usr/lib/python3/dist-packages/speedtest.py”, line 1783, in shell
secure=args.secure
File “/usr/lib/python3/dist-packages/speedtest.py”, line 1027, in __init__
self.get_config()
File “/usr/lib/python3/dist-packages/speedtest.py”, line 1113, in get_config
map(int, server_config[‘ignoreids’].split(‘,’))
ValueError: invalid literal for int() with base 10: ”
Download = Mbps
Upload = Mbps
Ping = ms
Niemand?
Had hetzelfde na Ziggo bandbreedte update, draaide ook nog met de speedtest-cli 2.02 versie, nu met 2.1.3.
Opgelost met navolgende commando’s :
cd /home/pi/domoticz/scripts
sudo cp speedtest.sh speedtest_v1old.sh
cd /usr/bin
sudo rm speedtest-cli
sudo rm speedtest
sudo apt-get update
sudo apt-get install python-pip
pip install speedtest-cli (voor pi user, bash commando)
sudo pip install speedtest-cli (voor root, crontab sh commando)
sudo reboot
cd /home/pi/domoticz/scripts
sudo nano speedtest.sh
plak/knip 1.1 script deze site
Vervang waarden met eerdere (uit voorgaann script te halen)
DOMOTICZ_SERVER
IDX_DOWNLOAD
IDX_UPLOAD
IDX_PING
Verander als gewenst tempdir naar:
TEMP_DIR=”/home/pi/domoticz/scripts”
test of alles weer werkt :
bash /home/pi/domoticz/scripts/speedtest.sh
sudo sh /home/pi/domoticz/scripts/speedtest.sh
hier hetzelfde probleem vanaf 1 april. ik vermoed een update die ergens is geïnstalleerd
Gebruik je v1.1 van het script al?
Als je upgrade doet van 1.0 wel even goede commando van apt-get gebruiken: sudo apt-get remove speedtest-cli
Goedemorgen Jos,
Allereerst complimenten voor de duidelijke instructie hoe dit script in Domoticz te implementeren.
Ik heb de stappen doorlopen en ben er bijna. Wat nog niet werkt is de update van de info in Domoticz.
Ik zie in het log van Domoticz dat ieder uur de speedtest wordt uitgevoerd:
2021-05-16 07:30:04.547 Status: Speedtest script finished with results: Ping: ms, Download: Mbps, Upload: Mbps.
Doe ik het handmatig met bash command dan ziet de regel in het log er zo uit:
2021-05-16 07:58:09.645 Status: Speedtest script finished with results: Ping: 53.155 ms, Download: 209.09 Mbps, Upload: 17.77 Mbps.
Ik heb daarna een # voor de /bin/rm $TEMP_FILE command line gezet en gewacht tot na de automatische uitvoering van het script.
Daarna in de file ” speedtest.txt” gekeken of er waarden in staan maar die was leeg.
Hieruit trek ik de conclusie dat bij de automatische uitvoer van het script er geen info overgaat naar Domoticz omdat die er op dat moment niet is (speedtest.txt is leeg). Het probleem zit dus niet aan de kant van Domoticz maar blijkbaar wordt het script niet goed uitgevoerd als die via crontab wordt opgestart.
Enig idee wat de oorzaak hiervan zou kunnen zijn?
Ik heb de crontab line aangepast van
30 * * * * /home/pi/domoticz/scripts/speedtest.sh
naar
*/2 * * * * /home/pi/domoticz/scripts/speedtest.sh
en nu werkt het wel.
Poeh, na lang puzzelen heb ik het ook aan de praat. Ik ben een Linux-kenner en heb mijn scripts altijd draaien in de crontab door deze te starten met ‘sudo crontab -e’, daardoor bleek het script wel het bestand speedtest.txt aan te maken maar bleek dit leeg te blijven. Nu lijkt het goed te gaan. Ik heb dus gewoon niet exact gedaan wat er in de instructie staat :-(.
Wellicht dat iemand anders nog baat heeft bij deze oplossing.
Dankjewel voor het delen van je ervaring, kan inderdaad nuttig zijn voor anderen om hier goed op te letten!
Vandaag heb ik speedtest toegevoegd aan mijn Domoticz configuratie. Werkt prima, maar de gerapporteerde download snelheid is minder dan de helft (~70-80Mbps) van wat ik momenteel via Ziggo speedtest haal terwijl de PI direct aan de switch hangt en mijn laptop via WiFi verbonden is.
Kan het zijn dat ik tegen de maximale schrijfsnelheid van mijn sd-kaart aanloop i.p.v. de daadwerkelijke download snelheid?
Hallo Theo,
Wat voor type Raspberry Pi gebruik je precies? De 3 is beperkt qua netwerksnelheid, dus daar zou een beperking kunnen zitten. Verder zou ik de vergelijking doen met http://www.speedtest.net aangezien deze test daar ook op gebaseerd is. Dan heb je een zuiverder vergelijking.
Gr. Jos
Hallo Jos,
Ben inderdaad ook zojuist tot dezelfde conclusie gekomen. Ik heb een PI 3 Model B met 100Mbit Eth poort, dus dat verklaart de cap.
Dank voor je snelle reactie,
DK
Na maanden dat het script prima heeft gefunctioneerd zag ik afgelopen week dat het aantal meet momenten gestaag afnam en tenslotte sinds gisteravond krijg ik helemaal geen input meer binnen. Ik heb de PI herstart, maar geen resultaat. Er zijn geen updates of andere config wijzigingen aangebracht aan Domoticz of de PI.
Domoticz log geeft nu telkens:
Speedtest script finished with results: Ping: ms, Download: Mbps, Upload: Mbps.
Run ik het script handmatig via Putty, dan krijg ik:
bash speedtest.sh
Start running speedtest script.
– Temp-directory already exists, no need to create it.
– Performing speedtest.
Cannot retrieve speedtest configuration
ERROR: HTTP Error 403: Forbidden
– Results of speedtest:
– Ping = ms
– Download = Mbps
– Upload = Mbps
– Updating download, upload and ping values in Domoticz.
– Removing temp file.
– Writing log to Domoticz.
Done running speedtest script.
Hi, excuses voor de late reactie. Ik gebruik dit script zelf niet meer i.v.m. de overstap naar Home Assistant. Maar een klein stukje Google-werk lijkt op te leveren dat Speedtest tegenwoordig verplicht om een secure verbinding te gebruiken.
Zou je deze regel:
/home/pi/.local/bin/speedtest-cli –simple > $TEMP_FILE
eens willen vervangen voor:
/home/pi/.local/bin/speedtest-cli –simple –secure > $TEMP_FILE
Ik denk dat zit al voldoende zou moeten zijn, maar zoals gezegd, ik kan dus zo gauw even niet testen.
Parameter –secure toegevoegd en het script loopt weer. Dank!
Hallo Boris, dankjewel voor het doorgeven. Ik had nog geen bevestiging binnen, maar ik zal het gelijk even aanpassen in bovenstaand script.
het script geeft bij mij een error als ik hem handmatig draai.
Op automaat geeft hij ook geen waardes weer.
Start running speedtest script.
– Temp-directory does not exists, creating it now.
– Performing speedtest.
usage: speedtest-cli [-h] [–no-download] [–no-upload] [–single] [–bytes]
[–share] [–simple] [–csv]
[–csv-delimiter CSV_DELIMITER] [–csv-header] [–json]
[–list] [–server SERVER] [–exclude EXCLUDE]
[–mini MINI] [–source SOURCE] [–timeout TIMEOUT]
[–secure] [–no-pre-allocate] [–version]
speedtest-cli: error: unrecognized arguments: –simple –secure
– Results of speedtest:
– Ping = ms
– Download = Mbps
– Upload = Mbps
– Updating download, upload and ping values in Domoticz.
– Removing temp file.
– Writing log to Domoticz.
Done running speedtest script.
Deze error “speedtest-cli: error: unrecognized arguments: –simple –secure” had ik ook, maar waarschijnlijk is dit bij het plakken veroorzaakt.
je moet simple en secure even aanpassen van een smart – naar 2 losse — en dan werkt het wel correct. (thx M$)
bedankt het was inderdaad een M$ fuckup met copy paste.
Nou werkt het script wel alleen bij crontab werkt het niet.
nou zag ik ergens in een log permission denied.
” From pi@raspberrypi Sat Feb 10 13:34:01 2024
Return-path:
Envelope-to: pi@raspberrypi
Delivery-date: Sat, 10 Feb 2024 13:34:01 +0100
Received: from pi by raspberrypi with local (Exim 4.92)
(envelope-from )
id 1rYmYT-00033l-Kk
for pi@raspberrypi; Sat, 10 Feb 2024 13:34:01 +0100
From: root@raspberrypi (Cron Daemon)
To: pi@raspberrypi
Subject: Cron /home/pi/domoticz/scripts/speedtest.sh
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
Message-Id:
Date: Sat, 10 Feb 2024 13:34:01 +0100
/bin/sh: 1: /home/pi/domoticz/scripts/speedtest.sh: Permission denied”
Handmatig werkt het script wel prima.
heb chmod 777 speedtest.sh gedaan en daarna werkt het script ook.
Dus er zal wel iets met een wachtwoord ofzo zijn geweest.
Top nu kunnen we eens kijken hoe stabiel het internet werkelijk is.