C’est top, super.
Pour le code, je pense que tu as compris que tout le début c’est des définitions (variables, fonctions, etc.), puis la fonction setup() est exécutée une unique fois au démarrage.
Ensuite, c’est la fonction loop() qui boucle sur elle-même.
Le point à comprendre, c’est que l’esp ne peut faire qu’une tâche à la fois. Si veut « temporiser », soit on utilise delay(), mais cela bloque l’exécution (pas gênant si on n’a qu’une chose à faire), soit on utiliser les formules du type : if ( currentMillis - previousMillis > watchdog ) { }
=> l’idée c’est que si on est pas dans le « timing » que l’on souhaite, on sort du if pour exécuter ce qu’il y après. Bon là, on a rien d’autres du coup ça change rien.
La fonction millis(), c’est comme un chronomètre en ms dès que l’esp est allumé. previousMillis sert à mémoriser une valeur. Du coup, le if précédent est exécuté toutes les 5000 ms qui est la valeur de watchdog. Ensuite, si on déroule un peu le code, après sendToJeedom(url);
on voit un delay(1000) qui fait une pause d’une seconde avant d’envoyer la seconde valeur à Jeedom. A la limite pourquoi pas, mais ça peut se réduire je pense sans problème (à essayer), voire même s’enlever. Ensuite, il y a deux autres delay(1000) => ceux-là ne servent à rien puisque de toutes façons on va attendre 5 secondes derrière avant de relancer une mesure.
Avec le code actuel, il doit y avoir une mesure toutes les 8s environ. En enlevant les delay, cela va descendre à 5s. Et en réduisant watchdog, on peut aller encore plus loin. Mais cela va charger de plus en plus Jeedom pour rien, avec des requêtes en permanence pour mettre à jour les valeurs. Surtout pour une voiture garée 
Donc pour la partie test, c’est très bien de vouloir réduire les temps, mais dans les faits c’est inutile. L’astuce pour réagir immédiatement, c’est d’envoyer la valeur à Jeedom que toutes les 10 minutes par exemple, mais de continuer à mesurer fréquemment avec le capteur. Et on teste à chaque fois cette valeur pour voir si cela descend en dessous d’une certaine constante, puis dans ce cas déclencher un envoi immédiat à Jeedom (mais une seule fois, c’est à dire qu’il faut mémoriser avec une variable qu’on est passé en dessous, sinon cela continuera à envoyer tant que la distance mesurée est basse).