PROJET AUTOBLOG


le hollandais volant

Site original : le hollandais volant

⇐ retour index

Ma gestion améliorée de cache statique PHP/Apache

jeudi 7 octobre 2021 à 22:44

Programmation.
Ceci est une implémentation de l’idée que j’avais postée ici et qui concernait une gestion de cache basée sur le .htaccess et les erreur 404.

Le modèle habituel d’un cache statique PHP

Habituellement, pour gérer les caches de fichiers statique, on envoie une requête sur un fichier PHP qui va s’occuper de récupérer une ressource statique et l’envoyer vers le navigateur :

cache.php

<?php
    readfile($fichier_statique);
?>

Le $fichier_statique contient des données HTML déjà prêtes. Normalement, une fois que la page HTML est envoyée au visiteur, elle est oubliée de la mémoire de l’ordi. Si un autre visiteur fait la même requête, le serveur doit tout refaire.

L’idée d’un cache est de stocker le code HTML que l’on a envoyé au visiteur. Comme ça, si un second visiteur fait la même requête, on lui envoie ce qui se trouve en cache, sans avoir à tout recalculer : c’est beaucoup plus rapide.

Dans mon cas, je le fais avec des images d’avatar de chez Gravatar et avec des favicon que je met en face des sites dans mon lecteur RSS. Je ne fais pas une requête vers ces sites, mais vers mon lecteur RSS. C’est lui qui va faire une requête externe, sauver l’avatar ou la favicon localement, puis l’envoyer au client. La fois d’après, il envoie directement l’icône locale au client, sans faire de requête réseau. On gagne beaucoup en performances globales.

Le problème que je vois ici, c’est que le fichier cache.php est appelé pour chaque requête sur un fichier. C’est plus rapide que recalculer une miniature, mais une instance PHP est tout de même créée, ne serait-ce que pour lancer le readfile(), et éventuellement après quelques calculs rapides pour déterminer quel fichier cache on envoie au navigateur.

On peut s’affranchir de cette requête et de PHP.

Utiiliser .htaccess

On va prendre l’exemple du cache pour les images favicon et gravatar, car c’est ce que j’utilise et c’est ce pourquoi j’ai fait cette méthode.

Avant je faisais une requête vers cache.php?w=favicon&site=example.com
Et j’avais cette arborescence :

cache.php
var/
| - - cache/
      | - - favicon/
            | - - icone1.png
            | - - icone2.png
            | - - ...
      | - - gravatar/
            | - - avatar1.png
            | - - avatar2.png
            | - - ...
      | - - .htaccess

Quand je voulais une icône, je faisais un hit sur cache.php?get=icone1.png, et il m’envoyait l’icone1.png après l’avoir soit téléchargée, soit lue sur le disque.
Pour moi, l’image était située à l’URL cache.php?get=icone1.png, pas ailleurs.

Maintenant je fais autrement.

Je fais mon hit sur /var/cache/favicon/icone1.png. Plus besoin de PHP : si l’image existe, l’icône est envoyée directement.

Mais si le fichier n’existe pas, ça renvoie un 404, non ?

Exactement ! Mais ça, c’est uniquement si le fichier n’est pas là.
La distinction « fichier là / fichier pas là » n’est plus à faire par PHP comme avant : elle est déjà faite par le serveur (Apache, …), et on va s’en servir !

Il est possible d’utiliser une redirection en cas de 404. Dans le fichier .htaccess de notre arborescence, je vais mettre :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) ../../cache.php?w=gravatar&q=$1 [L]

L’important ici est le !-f de la première ligne.

Un simple -f signifierait « notre requête est un fichier ». Mais avec le point d’exclamation devant, ça signifie « notre requête n’est pas un fichier », dans le sens « un fichier qui n’est pas, qui n’existe pas ».

Si je demande un fichier qui n’est pas là (donc un 404), cette condition est est satisfait : « le fichier n’est pas ! » et on accède à la ligne suivante, c’est à dire le renvoie vers le script PHP.

Ce n’est pas une redirection 301 ou 302 : le serveur demande uniquement à PHP de s’occuper de la demande au lieu de s’en occuper lui-même par l’envoie d’une erreur 404.

Une fois que PHP a fait son boulot, il sauvegarde le fichier et la renvoie au navigateur : le navigateur ne reçoit jamais de 404 : si le fichier est là, le serveur lui donne. Si le fichier n’est pas là, PHP produit le fichier avant de lui donner également. Le fichier est également sauvegardé pour la prochaine fois.

En plus de ça, la requête est faite directement sur le fichier que l’on veut, pas sur une page à PHP qui devra lire le fichier. On gagne donc en logique aussi.

Pour aller plus loin

Comme je l’ai dit, j’utilise ce système à la fois pour des icônes de site et pour des avatars de commentaires. Il y a donc une distinction à un moment. Les images sont mis en cache dans deux répertoires dédiés :

var/
| - - cache/
      | - - favicon/
      | - - gravatar/
      | - - .htaccess

Aussi, une complication est de ne faire qu’un seul fichier .htaccess.

Pourquoi ? Car je ne veux pas mettre un .htaccess dans chaque dossier et ceci pour une raison simple : quand veux purger le cache (en supprimant le dossier et son contenu), je ne veux pas perdre mon fichier .htaccess.

Avec un seul fichier situé à un niveau plus haut, je supprime les dossier favicon/ et gravatar/ et c’est bon, ils seront recréés par PHP lors de la prochaine requête.

Mon .htaccess doit distinguer quel est le dossier où l’on fait la requête. Je fais ça comme ça :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ./gravatar/(.*)$
RewriteRule (.*)gravatar/(.*)$ ../../favatar.php?w=gravatar&q=$2 [L]

Explication ligne par ligne :

RewriteCond %{REQUEST_FILENAME} !-f

↑ Je regarde si le fichier existe. Si oui, le fichier est envoyé au navigateur et ça s’arrête. Autrement on continue.

RewriteCond %{REQUEST_URI} ./favicon/(.*)$

↑ Je regarde sur la requête concerne un fichier dans /favicon

RewriteRule (.*)favicon/(.*)$ ../../favatar.php?w=favicon&q=$2 [L]

↑ Si oui et oui, on renvoie sur favatar.php?w=favicon&q=icone.png, et PHP fera son travail. Le [L] permet de dire qu’il s’agit de la dernière condition et que le traitement du .htaccess s’arrête.

Il reste une ligne à ajouter. En effet, si je fais une requête sur le dossier .favicon/, je ne veux pas que ça renvoie sur PHP. C’est un dossier, pas une image. Et même si je gère cette exception dans PHP pour plus de sécurité, il faut mieux mettre un garde-fou en plus.

Par conséquent, ça nous fait quatre lignes :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ./gravatar/(.*)$
RewriteCond %{REQUEST_URI} !./gravatar/$
RewriteRule (.*)gravatar/(.*)$ ../../favatar.php?w=gravatar&q=$2 [L]

La ligne ajoutée, la troisième, dit « si le fichier est autre que le dossier gravatar/, on applique la règle ». Dans le cas contraire, on laisse faire (et on ne renvoie pas vers PHP.

Ceci est bon pour les avatars.
Reste à faire la même chose pour les favicon. Il suffit de dupliquer tout ça :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ./gravatar/(.*)$
RewriteCond %{REQUEST_URI} !./gravatar/$
RewriteRule (.*)gravatar/(.*)$ ../../favatar.php?w=gravatar&q=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ./favicon/(.*)$
RewriteCond %{REQUEST_URI} !./favicon/$
RewriteRule (.*)favicon/(.*)$ ../../favatar.php?w=favicon&q=$2 [L]

Et voilà !

Exemple de fonctionnement

Juste pour résumer ce qui se passe :

Une requête sur ./gravatar/fichier.png sera traité par le premier bloc ci-dessus. Une requête sur ./favicon/fichier.png sera traité par le seconde bloc ci-dessus.

Dans les deux cas, si fichier.png existe, il est envoyé normalement au navigateur. Sinon, il est créé par PHP puis envoyé. Il n’y a pas de 404 envoyé au navigateur.
Si le fichier demandé est invalide, on renvoie une erreur 400 (Bad Request) avec PHP. C’est par exemple le cas si on demande un fichier à Gravatar qui n’est pas un MD5 d’une adresse e-mail, ou si l’on demande un favicon pour une URL qui n’est pas une URL correcte.

Enfin, si je fais une requête sur un autre dossier (./foo/fichier.png par exemple), alors il est ignoré par ce .htaccess et par PHP. Pas de risque donc de faire tourner PHP sur d’autres fichiers que des icônes ou des avatars.

image d’en-tête de Ferenc Almasi

Encore un peu d’optimisation pour les pages Web

jeudi 16 septembre 2021 à 18:23

Code de programmation.
J’ai déjà fait un article sur Pourquoi mettre le JavaScript à la fin et le CSS au début ?, et je vous invite à le lire.

Les astuces ici sont en plus.

Utiliser preload pour précharger les ressources utiles

Bien que l’on puisse mettre le CSS dans l’entête, il faut se souvenir que dans le CSS, on peut lier d’autres CSS, avec les @import, ou même des polices, des images (avec background-image). Cela peut ralentir l’affichage.

Si les fichiers sont petits, il est préférable de les précharger : le téléchargement en parallèle est alors avantageux sur le téléchargement en série des fichiers.

Pour ça, dans le head de la page HTML, on peut utiliser ça :

<link rel="stylesheet preload" href="style/style.css" as="style" />
<link rel="preload" href="fonts/font.woff2" as="font" type="font/woff2" crossorigin />

Cela permet de précharger les ressources en même temps que la page.

Quelques remarques :

Ne charger les scripts que quand ils sont utiles

Ensuite, les scripts doivent être mis à la fin (voir mon article lié plus haut).

Sauf que certains scripts dépendent du contenu d’une page.
Par exemple, sur Couleur-Science, les équations dans certains articles utilisent KaTeX (il existe un standard HTML pour afficher des équations (MathML), mais il n’est supporté que par Firefox, donc pour l’instant, on passe par une lib JS).

Certains de mes articles n’ont pas d’équations. Dans ce cas, pourquoi télécharger 150 ko de JS ?
Chez KaTeX, on identifie une équation en le plaçant entre des signes « $ ». Comme ça : « $ equation $ ».

Je fais donc un test : si le contenu de l’article contient un signe $, je charge Katex. Autrement, je ne le charge pas.

Ah et je fais ça seulement quand le reste de la page a fini de charger : rappelez-vous, si vous initiez le chargement d’un script, le rendu de la page se bloque.

Je fais donc ça :

document.addEventListener("DOMContentLoaded", function() {
	var contenuDom = document.getElementById('contenu').textContent;
	if (contenuDom.indexOf('$') !== -1) {

		// only if Katex needed is it added
		var newLink = document.createElement('link');
		newLink.rel = 'stylesheet';
		newLink.type = 'text/css';
		newLink.href = 'katex/katex.min.css';
		document.head.appendChild(newLink);

		var katexRes = document.createElement('script');
		katexRes.src = 'katex/katex.min.js';
		document.head.appendChild(katexRes);

		setTimeout(function() {
			renderMathInElement(
				document.getElementById('contenu'),
				{
					delimiters: [
						{left: "$$", right: "$$", display: true},
						{left: "$", right: "$", display: false},
					]
				}
			);
		}, 1000);
	}
});

Explications :

Pas de base64 pour le SVG inclus dans le CSS

Si l’image est très légère, une requête sera plus longue que le téléchargement, il est alors préférable de l’inclure directement dans la source. Quand on veut mettre des images très légères directement dans le CSS, on les inclut en Base64 : le fichier image se met sous une forme textuelle et on la copie-colle dans le CSS.

Inconvénient : le Base64 pèse 33 % plus lourd.

Si notre image est en SVG, tout ceci est inutile : le SVG est lui-même du texte. On peut dont le placer directement dans le code. Il suffit de dire que le format est du SVG :

background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'><path d='M10.5 15l7.5 7.5 7.5-7.5z' /></svg>");

En prime, le SVG reste lisible. Il faut juste faire attention à correctement échapper les caractères (quotes, doublequotes…).

Pour les polices d’icônes

Concernant les petites images/icônes, j’utilise une police qui contient les glyphes. Les icônes que j’utilise sont les icônes de Google Material Design. Il y en a plus de 1 000 différentes.

Si vous n’utilisez que 10 icônes, il ne sert à rien de toutes les intégrer. Dans ce cas, on peut n’intégrer que les polices nécessaires.

Pour cela, j’utilise personnellement Icomoon, un outil en ligne. On peut lui donner ses propres SVG (ceux de Google Material par exemple) et produire une police en .woff ou un autre format.
Seul problème : il ne produit pas de .woff2 (dont la taille de fichier est moitié moindre). Il faudra donc utiliser un autre convertisseur pour transformer le .woff en .woff2.

Là aussi, si nécessaire, utilisez un préload pour ce fichier, ou bien incluez le directement dans le CSS en Base64.

Enfin, n’oubliez pas qu’il faut peut-être autoriser la mise en cache avec .htaccess (les formats .woff et .woff2 ne sont pas forcément pris en charge nativement dans ce fichier) :

<IfModule mod_expires.c>
  AddType application/x-font-woff .woff
  AddType application/x-font-woff2 .woff2
  ExpiresActive On
  ExpiresDefault "access plus 1800 seconds"
  ExpiresByType application/x-font-woff "access plus 1 year"
  ExpiresByType application/x-font-woff2 "access plus 1 year"
</IfModule>

D’autres liens

J’espère que les quelques astuces ci-dessus seront utiles.
Ci-dessous, quelques autres astuces accumulées depuis les années :

Enfin, pour des astuces plus générales :

Passer en HTTP2

Enfin, et c’est probablement le plus gros gain que vous aurez, mais il faut que ça soit mis en place au niveau du serveur (ce qui peut ne pas dépendre de vous) : passez en HTTP2.

Voir ces liens : 1 , 2 , 3 , 4 .

(merci Thibault pour celui-ci)

Résultat

Résultat satisfaisant (pour ce que ça vaut, mais ça donne une idée) :

Score PageSpeed Insight Google.
Donc non, il n’est pas nécessaire d’avoir un design ultra-flat tout blanc et noir si l’on veut qu’elles soient rapides.

image d’en-tête de Lucas Bravo

Résoudre le problème n’est pas leur solution

lundi 30 août 2021 à 05:21

Lire :

EELV veut taxer le CO2.
EELV veut aussi remplacer le nucléaire par du gaz et du charbon (en tout cas, c’est ce qu’ils font partout où ils passent).

C’est logique : ce sont avant tout des politiques et des buziness(wo)man.

Plus de CO2 émis = plus de taxes = plus de revenus.

J’appelle ça le paradoxe de pôle emploi, et ça existe sous plein de formes partout dans l’industrie.

En vrai, on ne résoudra jamais un problème en faisant confiance aux gens qui vivent de l’existence de ce problème.

Et les politiques sont très fort à ça, car c’est un peu leur job, leur poste qui en dépend. Les politiques sont élus par un programme où ils adressent des problèmes avec leurs solutions. Mais une fois que tout est fait, ils ne servent plus à rien. Résultat, ils ne résoudront jamais tout.

Ainsi, il est illusoire de croire le baratin politique habituel de tous les « grands » politiques, passés ou futurs :

On ne peut pas compter sur quelqu’un pour résoudre un problème s’il tire toute sa puissance de l’existence même du problème.

Comment résoudre ces problèmes, du coup ?
Probablement en supprimant la carotte qui pousse des gens à profiter du problème, plutôt que profiter de la solution. Pour ma part, quand on a une solution à un problème, je ne vois aucun souci à gagner sa vie avec, si ça résout effectivement le problème. J’ai en revanche plus de mal avec ceux qui profitent du problème seul, par exemple en mettant une taxe nouvelle, en installant des radars de vitesse ou en punissant ceux qui donnent aux SDF. Ces choses-là ne solutionneront jamais rien. Ils profitent du problème, c’est tout.

Empêchez plutôt de vendre du CO2.
Empêchez les lois anti-pauvres.
Empêchez la surveillance.
Et agissez réellement plutôt.

Pour le climat : punissez les responsables directs du CO2 (centrales fossiles, qui répercuteront leur amendes sur les clients, qui comprendront vite qu’ils voudront du nucléaire et du solaire pour payer moins pour la même chose, et par conséquent émettre 20x moins), subventionnez les installations moins émettrices autant qu’on subventionne le fossile (le fossile est largement plus subventionné que les ENR).

Ce ne sont que quelques idées, il y en a probablement d’autres. Mais installer des centrales à gaz à la place de centrales nucléaires, c’est absolument tout, y compris criminel, sauf un cadeau à la planète et à l’humanité.

De la folie humaine

lundi 16 août 2021 à 05:17

La science permet de progrès technique et le progrès technique permet les avancées sociales dans leur ensemble : santé, culture, économie, politique… tout ça découle directement ou indirectement du savoir collectif accumulé par notre civilisation.

Pourtant, parfois, les étoiles de notre civilisation ne sont pas permises de briller comme elles le devraient. La folie des hommes et l’égo de quelques-uns en sont la cause. Même chez les grands savants, des ravages sont opérés par de tels comportements.

Par exemple, quel procédé aurait pu être inventé 200 ans à l’avance si des avant-gardistes comme Lavoisier n’avaient pas été décapités pour leur statut social par la violence des révolutionnaires ?

Quelle science aurions-nous eue si des scientifiques comme Carnot, Fresnel ou Maxwell n’étaient pas morts si jeune (respectivement à 36, 39 et 48 ans à cause d’une médecine lacunaire, si longtemps interdite au profit des prières ?

Combien de décennies de retard ont été accumulées parce que des génies comme Boltzmann ou Cantor ont été détruits par leur communauté à la grosse tête ?

Combien de temps a été perdu parce qu’Edison se disputait avec Tesla au lieu de regarder les faits et travailler ensemble plutôt que défendre chacun un modèle qui, au final, ne peut se passer de l’autre ?

La folie des Hommes existe partout, et c’est également partout qu’elle se fait ressentir.

Peut-être que nous n’aurions toujours pas eu les voitures volantes pour autant, mais si les personnes citées ici avaient pu avoir une vie digne de leur génie, alors nous aurions pu avoir l’ordinateur, le wifi, les smartphones depuis déjà un siècle.

Quand on sait que les téléphones tactiles existent depuis 15 ans maintenant, et que tant de chemin a été parcouru en si peu de temps, ce qui nous attend comme révolution à nouveau dans 15 ans promet d’être tout aussi spectaculaire.
Eh bien ceci, nous aurions pu l’avoir 40 ans plus tôt, laissant à notre époque 4 générations technologiques d’avance par rapport à ce qu’on aujourd’hui.

Qui sait ce qu’on aurait eu si la bêtise avait laissé place à la sagesse depuis 4 000 ans ?
Qui sait ce qu’il manquera aux générations futures si on continue à faire les mêmes bêtises aujourd’hui ?

Va-t-on continuer à nier l’évidence, pour qu’une poignée de gens se partagent le pognon du monde au détriment de la recherche, de l’éducation, de la santé, l’égalité ? Ou voulons nous faire avancer notre civilisation pour la rendre éternelle et maître d’un destin à l’horizon galactique ?

Installer une dashcam dans sa voiture

vendredi 23 juillet 2021 à 17:40

Position finale de la dashcam dans la voiture.
Ici un petit tuto sur l’installation d’une dashcam « en dur » dans sa voiture, avec branchement directement dans la boîte à fusibles et quelques astuces diverses en plus.

Mon matériel :

Il y a une carte micro-SD de 16 Go fournie avec cette caméra, et qui suffit pour enregistrer environ 2 h de vidéo full-HD.

Si vous souhaitez pouvoir enregistrer davantage, prenez une carte plus grande. La carte doit être certifiée UHC-1, sinon votre dashcam ne la reconnaîtra pas. Pour info : une carte micro-SD de 64 Go certifiée UHC-1 coûte environ 10 € en ligne, en 2021.

Si possible, privilégiez en plus une carte avec une bonne capacité d’écriture / réécriture (les cartes « endurance » sont précisément faites pour ce genre d’usage, par exemple chez Samsung ou chez Sandisk).
À ces niveaux d’enregistrement en continu, la carte mémoire constitue un consommable, et une bonne carte vous évitera de devoir en changer tous les 4 matins.

La dashcam F770

Je ne suis pas spécialiste en dashcam, mais j’ai trouvé cette référence dans une vidéo où ils montrent comment l’installer dans une Ioniq, donc ma voiture. J’ai décidé de faire pareil.

En voici quelques caractéristiques rapides :

Un truc cool : la dashcam peut envoyer le flux vidéo sur le téléphone via du Wifi (il devient un hotspot wifi sur lequel se connecte le téléphone). On peut alors avoir une vision directe de la caméra sur le téléphone, ce qui est très pratique lors de la mise en place et vérifier le centrage. C’est aussi pratique pour mettre en place le filtre polarisant : il doit être orienté correctement pour filtrer les reflets.
L’application permet aussi de récupérer la vidéo sans PC et sans débrancher la carte-SD.

À noter que les vidéos sont coupés en blocs d’une minute qui pèsent chacun environ 80 Mo (soit environ 4,8 Go par heure)

Si l’on n’utilise pas le Wifi, on peut toujours lire les vidéos depuis un PC en retirant la carte micro-SD : l’adaptateur μSD→SD et μSD→USB sont fournis avec. Les vidéos sont directement accessibles sur la carte sans besoin de lecteur spécifique.

Hardwire ou prise allume-cigare ?

De façon générale, il y a deux façons de brancher une dashcam dans une voiture.

La première consiste à brancher la dashcam sur la prise allume-cigare de la voiture.
C’est de loin ce qu’il y a de plus simple : on branche et ça marche.

Attention : normalement, l’allume cigare d’une voiture n’est pas alimenté quand le contact est coupé. C’est très important, sinon la caméra ou tout autre accessoire viderait votre batterie en une nuit et vous ne pourrez plus démarrer le lendemain. Sur certaines voitures, l’allume-cigare pourrait rester allumé ! Il faut s’en assurer avant de laisser la dashcam branché. Faites bien attention !

Cette façon d’installer la caméra laisse cependant apparaître sa prise et une partie du câblage. Pour ceux qui veulent un montage plus propre et discret, on peut utiliser ce qu’on appelle le « hardwire » (« câblage en dur »). C’est la seconde façon de faire.

Avec le hardwire, on branche la caméra directement dans le circuit de la voiture (en passant par la boîte à fusible). Cela demande un peu de bricolage, mais le résultat est nettement plus propre : tous les câbles sont cachés et la dashcam fait alors partie intégrante de la voiture (sans avoir l’air d’un accessoire ajouté après).
Il s’allume directement avec la voiture et s’éteint quand on coupe le contact.

Principe du hardwire

Chaque élément de la voiture (rétroviseur électrique, fenêtres, clignotants, sièges électriques, prises USB…) a son fusible dédié dans la boîte à fusible.

Bien-sûr, par défaut il n’y a pas de prise pour dashcam, mais on peut en créer une : pour ça, on va utiliser un dédoubleur de fusible pour pouvoir brancher un élément en plus dans le boitier. Ainsi, une prise du boitier aura le fusible qu’il avait déjà (par exemple : les vitres électriques) et un autre fusible pour brancher un accessoire tiers, c’est-à-dire votre dashcam.

Le dédoubleur, c’est le petit kit hardwire listé plus haut.

Avec ce système on n’a rien modifié dans la voiture. Pour tout annuler, il suffira de virer le kit et de remettre le fusible original à sa place.

Côté technique

Premièrement, il faut savoir que toutes les voitures n’ont pas les mêmes formats de fusibles. Il faut donc un kit hardwire spécifique. Pour la Hyundai Ioniq, il faut le kit micro-2.
Si vous achetez un kit, regardez bien celui qu’il vous faut.

Ensuite dans une voiture, il y a deux circuits électriques principaux :

La dashcam doit être branchée sur le second circuit : celui qui n’est sous tension que quand la voiture est allumée (sinon il va rester brancher tout le temps et vider votre batterie en quelques heures).

Note : La dashcam F770 version Royaume-Uni vient directement avec le kit hardwire et sur deux fils : il a le mode normal quand on roule et un mode « parking » basse consommation (qui prend dix image par minute, par exemple) quand la voiture est éteinte. La caméra intègre une sécurité qui détecte la tension de la batterie et se coupe par sécurité quand elle est trop basse.
Cela permet d’avoir un enregistrement H24, voiture éteinte.

La dashcam F770 vendue sur le marché européen est capable de tout ça aussi (je suppose), mais le kit de connexion fourni avec ne le permet pas : le packaging UE ne contient que le connecteur prise allume-cigare (et ne peut donc as se brancher en mode parking).

Cela n’empêche pas de la brancher sur le boîtier à fusibles, mais pour ça il faudra sectionner le câble allume-cigare (avec une pince, donc, et irréversiblement)
À noter que dans mon cas, c’est le vendeur lui-même qui m’a conseillé de faire ainsi.

Bref, il vous faudra faire un choix :

Ce qui suit est l’explication pour le hardwire, car c’est ce que j’ai fait.

Le branchement en dur de la dashcam

Quel fusible retirer pour le installer le kit ?

Sur la Ioniq, le boîtier à fusible se trouve à gauche sous le volant. Il y a une trappe qui s’enlève.

Vous voyez alors tous les fusibles avec des numéros 5, 10, 15, 25… écrit dessus : ce sont les courants maximums que permet ce fusible. Pour la dashcam, un fusible de 5 suffit, mais ce n’est pas tout.

Comme j’ai dit, il y a deux circuits sur une voiture :

Il faut mettre la dashcam sur le second. Vous pouvez utiliser le schéma de câblage dans le manuel de la voiture ou alors et détecter les accessoires non fonctionnels quand le contact est coupé : typiquement, vitres électriques, radio, éclairage intérieur.
Pour en être sûr, il faut utiliser un voltmètre et vérifier quel fusible se trouve effectivement hors tension quand le contact est coupé.

Les fusibles ont un petit point métallique sur le dessus, qui permet de les tester. Avec le voltmètre, on va mettre la borne rouge sur le fusible et la borne noire sur la masse de la voiture : c’est-à-dire la carcasse ou n’importe quel écrou non peint pas trop loin. Sur la Ioniq, il y en a une dans le boîtier à fusible.

Intérieur de la boîte à fusibles.
En s’aidant du schéma orange sur la trappe du boîtier à fusible, repérez celui des vitres électriques par exemple :

Pour comparer, essayez avec d’autres fusibles : certains afficheront toujours 12 V, même après avoir coupé le contact.

Il faut choisir un fusible : on peut utiliser celui que l’on veut qui réponde au critère ci-dessus. Perso j’ai utilisé celui d’un accessoire non essentiel (et que je n’ai pas) : le volant chauffant.

Dans tous les cas, évitez ceux des airbags ou de l’alarme. Si la dashcam pompe un peu trop de courant, cela peut influer sur leur déclenchement, ce qui serait dangereux.

Une fois que vous avez choisi un fusible, notez-le et repérez-le. Cela nous servira pour après.

Installation de la dashcam

Traditionnellement, on place la dashcam derrière le miroir central. Dans la Ioniq, il y a déjà la caméra de reconnaissance des panneaux et le détecteur d’humidité pour l’auto-désembuage.

Il reste de la place pour la dashcam du côté du conducteur. Prévoyez alors 2 cm de plus à droite pour pouvoir retirer la dashcam de son socle (la dashcam se clip sur son socle par la droite).

À ce stade, il est pratique de mettre le contact, brancher la dashcam sur l’allume-cigare et allumer la dashcam. Connectez-vous au Wifi de la cam avec votre téléphone et utilisez l’application Thinkware et affichez directement le flux vidéo. Vous pourrez alors juger du bon centrage et de la bonne orientation et inclinaison de l’image.

Quand vous êtes sûrs de votre positionnement, et que vous avez vérifié que vous pourrez toujours la retirer du socle, ôtez le film protecteur 3M pour permettre de coller la dashcam sur la vitre.

Je recommande de faire ça par temps chaud et ensoleillé : la colle 3M prend beaucoup mieux lorsqu’il fait chaud et il ne risquera pas de tomber en pleine conduite. Rassurez-vous, ça tient très bien : ça fait 3 mois que je l’ai mis, et elle n’est jamais tombée (encore heureux).

La dashcam collée, il faut maintenant masquer le câble. Dans la vidéo, le monteur a l’ingénieuse idée d’enrouler du ruban adhésif à l’envers (collant vers l’extérieur) autour du câble, et de pousser le câble sous la mousse du plafonnier. Ça marche très bien et ça ne bougera pas. Perso j’ai fait ça par endroit, pas sur tout le câble.

Débranchez la dashcam de l’allume-cigare mais laissez la cam elle-même fixée. En partant de la dashcam à côté du rétroviseur centrale, on va passer le câble sur la gauche, jusqu’à la portière puis descendre en passant derrière le joint en caoutchouc de la portière, et enfin quand on y sera, on passera dans le compartiment à fusibles.

Enfin, passez le connecteur dans la boîte à fusible :

Cacher le câble de la dashcam.

  1. remontez le câble jusqu’au plafonnier
  2. passez le câble sous le plafonnier, jusqu’à la gauche. Arrivé au bout, passez le câble sous le plastique ; attention à l’airbag qui se trouve à cet endroit (n’y allez pas au couteau)
  3. Descendez le câble, caché par le joint de porte (côté intérieur)
  4. passez le câble par derrière dans la boîte à fusible.

(voir en grand)

Installation du kit hardwire

Maintenant que l’on sait où brancher la dashcam et que la câble (avec sa prise cigare) se trouve dans le compartiment à fusibles, on va devoir commencer la partie électrique.

Il faut retirer le fusible que vous avez repéré. Le kit vient avec une pince spéciale pour ça, sinon vous en avez une dans le second boîtier fusible qui se trouve sous le capot (dans le cas de la Ioniq).

Retirez un fusible, insérez ce fusible dans le kit. Ensuite, ajoutez un fusible pour la dashcam (venu avec le kit) :

Branchement du hardwire kit.

Enfin, branchez le kit dans l’emplacement libéré de la boîte à fusible.

C’est bon pour le kit.

Branchement de la dashcam

Schéma de câblage de la dashcam.
« Le fil vert sur le bouton vert, le fil rouge… »

Il faut alors sectionner le connecteur allume-cigare. Perso, j’ai coupé juste sous le connecteur, ne coupant pas trop de fil (si jamais je change de voiture, ça permettra de récupérer la cam et de ne pas manquer de fil).

Dénudez alors les câbles noirs (sur 5~10 cm) puis dénudez les deux petits fils (blanc et jaune sur la mienne) sur 2~3 cm.

Le fil jaune est à connecte au fil du kit hardwire. Au besoin, et avant de souder/nouer les deux fils, passez les fils dans un bout de gaine thermorétractable. Nouez ensuite les fils, glissez la gaine thermo sur la jonction et passez un peu de chaleur dessus pour serrer et fixer la gaine isolante. Branchez enfin le kit hardwire dans son emplacement fusible.

Et le fil blanc ?
C’est la masse : il faut le mettre sur la carcasse de la voiture. Dans la Ioniq, il y a un écrou pas loin : on peut enrouler le fil autour, tel quel, puis utiliser un boulon pour le fixer (le tout sans défaire quoi que ce soit de la voiture).

Il ne reste plus qu’à ranger un peu le fil de la dashcam dans la boîte à fusible (pour éviter que ça ne traîne partout) et à remettre le cache.

Démarrez la voiture et normalement la dashcam s’allume (on peut voir la petite LED du GPS qui s’allume).
Coupez le contact et la caméra s’éteint.

Fini !

Notes à l’utilisation

Si vous avez une vieille carte SD qui traîne chez vous, et que vous la mettez dans la dashcam, vous pouvez l’entendre dire qu’il y a une erreur avec la carte. Souvent au démarrage, mais parfois en pleine conduite.
Dans ce cas, la caméra reboot toute seule. C’est sûrement une section de la mémoire qui ne fonctionne plus, ou alors que la carte n’est pas (ou pas pleinement) compatible. Pour rappel : il faut une carte UHC-1 minimum, capable d’enregistrer de la vidéo HD à la volée.

Si ça se produit trop souvent, remplacez la carte SD par une neuve. Comme j’ai dit, pour ces applications intensives, les cartes mémoire sont des consommables. Il en existe qui sont adaptés à l’enregistrement continu, et qui devraient fonctionner plus longtemps (voir lien au début de l’article).

Parfois la dashcam émet une petite musique de quelques notes, parfois à l’allumage, parfois quelques minutes après le début de la conduite. Je ne sais pas du tout ce que c’est. En règle général par contre, la caméra se fait parfaitement oublier.

De temps en temps, la dashcam dit qu’il faut formater régulièrement la carte. Si les vidéos qui sont dessus ne vous importent pas, appuyez alors sur le bouton « format » de la caméra. La voix dira quand c’est bon.

Intérêt de la dashcam, assurances et législation

La dashcam est une caméra embarquée. Elle filme toute votre conduite, en particulier un accident qui pourrait survenir. Elle peut aussi enregistrer votre vitesse. Certains modèles envoient également tout ça directement dans « le cloud » (ce n’est pas le cas de la F770).

Cela permet donc d’analyser votre conduite, de filmer vos road-trips, ou un « événement » qui surviendrait sur la route. Mais surtout, l’intérêt est de filmer un accident et de fournir l’enregistrement à votre assureur, aux autorités ou au tribunal. Rien ne dit que ça soit accepté comme une preuve, mais ça peut faire pencher la balance et au moins prouver votre « bonne foi ».

Certains assureurs proposent (ou proposaient) des ristournes pour l’usage de dashcam. Pas forcément parce que cela constitue une preuve en cas de sinistre, mais aussi parce que les conducteurs, se sachant filmés, ont tendance à conduire de façon plus respectueuse du Code de la route, et seraient alors moins susceptibles de provoquer un sinistre responsable. Renseignez-vous auprès de votre assurance, et surtout voyez si ça vaut le coup pour vous (en combien de temps le coût de la caméra est rentabilité par la ristourne éventuelle) !

Pour info, certains pays (Russie) les rendent obligatoires. Certains pays (comme le Portugal, l’Autriche ou le Luxembourg) en interdisent l’utilisation pour des problèmes de confidentialité.

Les autres pays, comme la France, restent dans le flou. Et dans le flou juridique.

La loi ne dit rien sur les caméras embarquées, si ce n’est qu’en cas de diffusion, la vidéo doit être anonymisée : les visages et les plaques doivent être floutées.
Il doit également être indiqué (sur la voiture) que celle-ci enregistre tout. La dashcam F770 vient d’ailleurs avec un autocollant destiné à cet effet.

Pour le reste, même si le Cerfa-13806-3 existe pour déclarer la mise en place d’un système de vidéo surveillance protection, il n’est pas sûr que ça soit nécessaire pour une caméra embarquée et mobile : la déclaration est liée à un lieu, et on ne peut pas faire une déclaration pour chaque ville que l’on traverse…

La loi ne suit donc pas les usages actuellement. Ceci étant dit, je suis pas avocat.

Quelques liens :