Synology mon amour....

J'utilise des NAS Synology à titre professionnel depuis plus de 10 ans avec une plutôt bonne expérience. J'en ai par exemple de gros qui fonctionnent encore très bien mais par exemple un RS3411xs de 2011 mérite d'être changé préventivement...

Je commande donc un RS3621RPxs et 6 disques Western Digital Ultrastar HC530, un modèle que j'avais utilisé avec succès il y a deux mois dans un RS820RP+. Disque de classe entreprise. Et là c'est le flop, dans ce dernier NAS il apparaissent comme disques non vérifiés et impossible de les monter en SHR, alors que ce disque est compatible avec le RS820RP+ !

Me voici donc partit à la recherche d'informations, le constat est des plus simples et probablement surtout mercantile. Synology vend maintenant ses propres disques en apposant leur étiquette sur des disques Toshiba, et les disques concurrents encore présent dans les listes de compatibilité sont de plus en plus rares. Rien de bien neuf sous le soleil, HPE, Dell et d'autres ont les mêmes pratiques. Saut que Synology nous avait d'une part habitué à pouvoir utiliser n'importe quel disque, le credo des fabricants de NAS, et surtout que les disques estampillés Synology sont peu disponibles et coutent souvent jusqu'à 30/40 % plus cher. Scandaleux, et les groupes d'utilisateurs ne se privent pas pour le dire et orienter les clients vers d'autres solutions.

Bref, j'ai donc 6 disque de 16 TO sur les bras. On va voir qu'il existe des contournements, mais pour des questions légales et de responsabilité vis à vis de mon client, je ne peux pas me permettre d'utiliser ces disque en production sensible. Donc Synology à gagné, et je repasse une commande de 6 disques Synology que je vais monter en stockage de VM. Quant aux 6 premiers je vais les utiliser dans un second groupe dédié à des sauvegardes secondaires en utilisant un contournement.

Synology

Dans la terminologie de Synology, il existe 3 classes de disques :

  • Compatible : Les disques compatibles ont été testés par Synology et sont certifiés pour fonctionner sans limitation.
  • Incompatible : les disques incompatibles sont « mis sur liste noire » par Synology et ne peuvent pas être utilisés (les disques SMR sont inclus dans ce lot). Rien que du normal.
  • Non vérifié : un disque qui n'a pas été testé par Synology est défini comme un lecteur non vérifié. Ca ne veut pas dire qu'il n'est pas 100% compatible, et ici c'est bien plus contestable.

Les disques non vérifiés sont utilisables dans un état non pris en charge avec les contraintes suivantes :

  • L'état d'un disque non vérifié peut apparaître comme non vérifié dans le gestionnaire de stockage de DSM.
  • Des avertissements s'afficheront lors de la sélection de lecteurs non vérifiés pour créer un pool de stockage.
  • Il est parfois impossible de créer des volumes de type SHR avec des disques non vérifiés.
  • Les pools de stockage contenant des lecteurs non vérifiés peuvent afficher un état de danger pouvant faire peur.
  • DSM peut envoyer des notifications d'avertissement lorsque des lecteurs non vérifiés sont en cours d'utilisation.
  • Les informations sur le lecteur telles que l'état de l'allocation, le nombre de secteurs défectueux, la température, le numéro de série, 4K natif peuvent ne pas être affichées.
  • La prise en charge de Synology sera limitée si le problème de prise en charge peut être lié au lecteur non vérifié (la décision de refuser la prise en charge reste à la discrétion de Synology)
  • L'utilisation de disques non vérifiés n'a aucun effet sur la garantie matérielle de Synology

Bien sur cette liste n'est pas exhaustive et malheureusement Synology est resté vague sur le fonctionnement de leur classification de disques et de SSD. Par exemple…

  • Les disques approuvés comme compatibles pour un modèle de NAS peuvent être non vérifiés pour un autre modèle.
  • Les disques approuvés comme compatibles peuvent voir leur classification changée en incompatible ou non vérifié sans préavis par Synology.
  • La compatibilité du lecteur est liée à la version du micrologiciel du lecteur.
  • Le test des disques nouvellement sortis est souvent retardé de plusieurs mois.
  • Le résultat de ces classifications de disques est que l'achat de disques compatibles est souvent limité à des disques rares dans le commerce, avec des micrologiciels obsolètes, qui sont soit indisponibles à la vente, soit en nombre insuffisant, auprès de fournisseurs non éprouvés, à des coûts non compétitifs.

De manière réaliste, un disque SATA de classe NAS/Enterprise utilisant la technologie CMR devrait convenir. Bien sur tout cela vaut pour les SSD...

Contournements

Dans tous les cas, et quelque soient les disques utilisés, on commence toujours par monter un volume et stresser les disques avant une mise en production, en faisant par exemple de gros transferts de données pendant quelques jours... Et si ça se passe mal on n'hésite pas à renvoyer les disques.

Si ça se passe bien on peut envisager deux contournements, l'un va faire croire que le disque a été vérifié, et l'autre que l'on ne s'occupe pas de vérifications... Et rien ne dit que de futures mises à jour ne rendront pas ce contournement obsolète.

Attention : S'agissant de modifications de fichiers système, vous savez et comprenez ce que vous faites, je décline toute forme de responsabilité, tout comme les personnes qui ont trouvé ces hacks et les ont divulgués sur les forums cités en sources (non, ce n'es pas moi qui ait trouvé !).

Cette mise en garde étant posée, j'ai trouvé deux possibilités :

Première option, ajout du disque dans la liste de compatibilité

On active SSH, on se connecte au NAS et on fait :

sudo-i

Qui va vous redemander le mot de passe pour cette élévation. Enduite on va dans le répertoire idoine :

cd /var/lib/disk-compatibility

Et on repère les fichiers *_host.db et *_host.db.new qu'il faudra éditer, par exemple dans mon cas rs3621rpxs_host_v7.db et rs3621rpxs_host_v7.db.new. Attention, tout ça peut évoluer avec le temps et les révisions. Avant d'éditer, je vous conseille de faire une copie de sauvegarde de l'original et de chercher les information de vos disques avec :

sudo smartctl -i /dev/sdc

Qui devrait retourner quelque chose du genre !

Model Family:     Ultrastar
Device Model:     WDC  WUH721816ALE6L4
Serial Number:    3WJAK3BJ
LU WWN Device Id: 5 000cca 284e0faf1
Firmware Version: PCGNW232
User Capacity:    16,000,900,661,248 bytes [16.0 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   Unknown(0x0ffc) (unknown minor revision code: 0x009c)
SATA Version is:  SATA >3.2 (0x1ff), 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Tue Oct 18 19:04:29 2022 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Ensuite on édite avec VI et ça devrait donner quelque chose de ce genre :

{"model":"WUH721816ALE6L4","firmware":"PCGNW232","rec_intvl”:[1]},

Et si on est pas sur, le mieux est d'aller lire, si on en dispose, ces informations dans un fichier pour un autre NAS ou le disque est indiqué compatible (notamment la dernière information en fin de ligne).

Seconde option, ne pas vérifier la compatibilité

J'aurais tendance à préférer cette option bien plus simple. Mais ça sous entend que nos disque sont testés et non incompatibles. On passe toujours par SSH et on va éditer ce fichier :

/etc.defaults/synoinfo.conf

Et dans ce fichier on va passer cette ligne de yes à no.

support_disk_compatibility="no"

On sauvegarde et on redémarre le NAS et nos disques ne devrait plus s'afficher en rouge. Cependant ça ne joue pas sur les unités d'extension.

Conclusion

Synology nous enfume mais ils font de bons produits et je n'ai pas envie de vous dire qu'il va falloir changer de crèmerie. D'autant plus que d'autres fabricants seront surement tentés de faire de même. Pour autant je me poserait la question lors de mes prochains investissement ou conseils.

Dans l'absolu que ces avertissements soient présents, pour de louables raisons, est une bonne chose. Il serait par contre raisonnable que l'utilisateur informé puisse les supprimer, notamment quand un disque est largement reconnue par la communauté. Mais il y a également les mauvaises raisons, comme pour les extensions mémoire ou une barrette Crucial à 100 € fonctionnera parfaitement là ou Synology nous en demande près de 400 ! On pourrait également parler de la collecte de données, pas pire que d'autres...

Une alternative consistera à intégrer du logiciel Open Source (FreeNAS, TrueNAS, etc.) dans des serveurs recyclés disposant d'un bon support disque (HPE par exemple) que l'on trouve à des tarifs intéressant sur le marché du reconditionné. Ca fait du NAS dédié stockage pas cher et fiable. Je précise stockage, car contrairement à ce que veulent nous faire croire les fabricants, il faut, à mon sens, oublier l'idée d'installer tout et n'importe quoi sur un NAS, mais c'est là un autre débat....

Sources

 

Home Assistant & Wake on Lan

L'heure est aux économies d'énergies et il parait qu'il faut éteindre "la" Wi-Fi ! Ce n'est peut être pas ce qui consomme le plus et notre domotique fait certainement mieux.... Par contre nombre d'entre nous ont des PC énergivores qui mériteraient de passer en veille. Sauf que dans la pratique on laisse souvent ce PC allumé en se disant que l'on pourra en avoir besoin depuis l'extérieur... Ce que j'ai longtemps fait !

Un PC moderne avec un SSD sait sortir de veille en quelques secondes. Alors pourquoi ne pas ressortit une vieille fonctionnalité très peu utilisée, le Wake on Lan.

Sous Linux, Windows, voire même les mobiles il existe des application GUI ou CLI. Il faut tout de même savoir que Wake on Lan n'a pas été conçu à l'époque pour fonctionner à distance, et même s'il existe des possibilités ça reste compliqué. Alors pourquoi ne pas simplement utiliser Home Assistant qui lui sera toujours disponible, voire même simplement ajouter ça à un ESP existant, sous ESP Home par exemple..

La première chose pour vos tests sera de vérifier en local que le Wake on Lan fonctionne (il y a pas mal d'utilitaires et d'explications sur ce site).

Avec Home Assistant

On commence par ajouter l'intégration au fichier de configuration et on redémarre :

wake_on_lan:

Ensuite on peur créer un switch: , mais aujourd'hui on préfèrera un button: dans Lovelace qui actionnera le service correspondant :

  - action_name: 'Sleep/UnSleep'
    double_tap_action:
      action: call-service
      service: button.press
      target:
        entity_id: button.lia_monitors_off
      action: call-service
      confirmation:
        text: Etes vous sur ?
    tap_action:
      action: call-service
      service: wake_on_lan.send_magic_packet
      data:
        mac: 00-0C-29-FB-77-97
    icon: mdi:microsoft-windows
    name: 'Windows 10 PC'
    type: button

Vous remarquerez que j'ai configuré ça sur le tap_action:, le double_tap_action: étant lui configuré pour la commande de mise en veille via Home Assistant Agent.

Avec ESP Home

J'ai un client full cloud qui dispose d'une douzaine de PC, mais pas de serveur et encore moins de Home Assistant. La première solution était de laisser un PC allumé et y installer de quoi faire du Wake on Lan en remote. Il y a également des possibilités via TeamViewer et hélas pas de base dans l'UDM Pro d'Ubiquiti. On verra ce l'on utilisera mais j'ai également pensé faire ça via un simple ESP qui lui pourrait resté allumé...

Dans ESP Home on va éditer la config et simplement ajouter (attention, ici les séparateurs ne sont pas des "-" mais ":") :

web_server:    

button:
- platform: wake_on_lan
  name: "VM Annia"
  target_mac_address: 00:0C:29:FB:77:97

A partir de là il est possible de presser notre button: qui remonte dans Home Assistant, sur la page web de l'Esp, mais également via la commande curl (la doc est ici) :

curl -X POST http://192.168.210.153/button/vm_annia/press

Et comme on ne va pas demander à l'utilisateur final de faire un "curl" on va lui emballer tout ça dans une page web accessible que l'on sécurisera afin que lui seul puisse y accéder, en partant de cette base :

<HTML>
<center>

	<form name="myform" action="http://192.168.210.153/button/vm_annia/press" method="post">
  	<button>PC Annia ON</button>
	</form>

</center>
</HTML>

Infos

  • Attention, Microsoft a introduit un concept de veille moderne qui souvent demandera à être désactivé. Des infos ici et .
  • Il n'est pas possible de réveiller un PC connecté en Wi-Fi ou en Ethernet via USB.
  • A noter que la Freebox dispose d'une option permettant de laisser passer du Wake on Lan. Ce n'est pas le cas pour tous les routeurs et il faut parfois ruser avec le port 9.

Sources

 

Home Assistant & BLE Proxy

J'entend souvent parler d'esp32, je ne suis pas un crack du fer à souder, ma vue baisse et je ne me lance généralement pas dans des montages au delà de mes compétences. De plus j'aime que ce que je déploie soit maintenable le plus facilement possible par des tiers. Je reste donc dans les standards, par exemple tous mes Shelly ont leur firmware d'origine, là ou ils seraient plus simples à gérer en ESP Home...

Ceci étant, j'aime aussi bricoler et j'avais un problème à résoudre. Si les petits capteurs de température Aqara en Zigbee sont parfaits, pas mal d'utilisateurs ont une préférence pour des sondes avec afficheur. Et le marché ne nous propose quasiment que des sondes afficheur en Bluetooth (BLE), Xiaomi, Aqara, Swithboot, Goovee ou encore InkBird... En général on peut facilement les gérer avec BLE Monitor et un bon dongle Bluetooth. Mais.

Depuis la version 2022.09 Bluetooth est géré nativement dans Home Assistant, il travaillent avec le développeur de BLE Monitor, une intégration qui devrait disparaitre à terme. Dans la pratique tout n'est pour l'instant pas reconnu mais les premiers résultats avec la version intégrée sont très honorables et j'ai obtenu des meilleurs résultats en BLE Proxy qu'avec des dongles USB ou du Bluthoot de base (NUC).

Pour autant se pose toujours le problème de la porté des sondes, dans notre cas d'usage BLE est uni directionnel et l'intégration se contente d'écouter, de décoder les trames et d'intégrer ce qui est exploitable. Sauf que s'il ne reçoit rien il n'intègre rien, et tout le monde sait que la portée du Bluetooth n'est pas phénoménale.

Lors de mes débuts avec HA j'avais essayé avec des potes des passerelles BLE, l'idée était de dédier des RPI Zero judicieusement placés à cet usage. Ca c'était soldé par un échec, certainement trop débutant que nous étions.

Mais avec la release 2022.09 une nouvelle option intégrée à HA a vu le jour : BLE Proxy

L'idée géniale est de se servir d'un module ESP configuré sous ESP Home et disposant du Bluetooth afin de capter les trames et les présenter à HA qui les décode. Et bien sur ce module sera judicieusement placé là ou on a besoin (cave, dépendance, aile gauche du château, etc...), pour peu que l'endroit dispose de Wi-Fi ou à minima d'Ethernet.

Le plus basic

La méthode la plus simple consiste à acheter un ESP-WROOM-32 (ici ou encore moins cher sur Ali), de le connecter au PC en USB après avoir installé les drivers et de le configurer à partir de cette page qui en fin de configuration vous proposera de l'intégrer à Home Assistant. 

Pour ceux qui jouent déjà avec l'add-on ESP Home il est aussi possible d'intégrer directement ce module et d'ajouter le code que vous trouverez ici et qui ressemble à ça :

esphome:
  name: "esp32-ble-proxy"
esp32:
  board: esp32dev
  framework:
    type: arduino
logger:
api:
  encryption:
    key: "AnUMyESfgsfgsdfhgjfjhhjkhg1WJLcGZHTiD7NoOEog="
ota:
  password: "3fb1ee84wgfsdhgsgh46sgh869d9a4856"
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Ss Fallback Hotspot"
    password: "ws7qfgsfgh6Bl"
captive_portal:
web_server:
dashboard_import:
  package_import_url: github://esphome/bluetooth-proxies/[email protected]
esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true
bluetooth_proxy:
button:
- platform: safe_mode
  name: Safe Mode Boot
  entity_category: diagnostic

Une fois que le module est intégré à Home Assistant celui ci décodera les trames et vous proposera les sondes qu'il reçoit. Il est également possible de les ajouter avec leur adresse MAC.

Le plus compact

L'Atom Lite me plait bien (détails ici). D'une part il n'est pas plus gros qu'une pièce de monnaie, et d'autre part il est livré dans un petit boitier plastique ce qui sera toujours plus élégant que le précédent. De plus on peut avec un coupleur USB-A / USB-C le brancher directement sur un chargeur, à défaut un câble court fera l'affaire. On trouve l'Atom Lite sur Ali ou sur le site de son fabricant.

La mise en œuvre est identique, et en bonus on peut piloter la led multicolore qui pourra éventuellement servir à notifier visuellement des états de ce que vous voulez via HA :

light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: 27
    num_leds: 1
    rgb_order: GRB
    id: status_led
    name: Stack Light
    effects:
      - random:
      - flicker:
      - addressable_rainbow:  

Et comme il expose des ports GPIO rien n'empêche, comme pour les autres de s'en servir pour faire autre chose. Je vous conseille d'ailleurs d'aller explorer l'univers M5STACK ou vous pourrez piocher des idées, comme ce lecteur RFID par exemple....

Le plus complet

L'Olimex (qui s'achète ici) est le plus complet car il dispose en plus du Wi-Fi d'un port Ethernet ce qui permettra de le placer là ou le Wi-Fi est absent. De plus il est disponible dans une version avec antenne externe pour une meilleure réception, ainsi qu'une version industrielle garantie de -40 + 85C. Le sports GPIO sont présents mais il faudra sortit le fer à souder...

Coté configuration c'est identiques au autres. On peut commence par configurer en USB en Wi-Fi et ensuite on active le port Ethernet en mettant à jour en Wi-Fi. Il semble déconseillé d'utiliser le port USB et le port Ethernet en même temps et on ne va pas jouer... Par contre je vous conseille de figer l'adresse affectée par la résa DHCP dans les deux cas car dans le cas contraire ESP Home a un peu de mal à le retrouver via son adresse en .local qui par définition changera.

# wifi:
#   ssid: !secret wifi_ssid
#   password: !secret wifi_password
#   ap:
#     ssid: "Esp-Test Fallback Hotspot"
#     password: "MHPdiJUnJ8i8"
#   use_address: 192.168.210.69
  
ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO17_OUT
  phy_addr: 0
  power_pin: GPIO12
  use_address: 192.168.210.108

Alternatives

Il existe d'autre options que je n'ai pas testé, comme le GL-Inet GL-S10, que je n'ai pas pu me procurer. Dans un petit boitier on a du Wi-FI, de l'Ethernet et une antenne externe pour $ 25.

Usages

En fait tout cela nous ouvre pas mal de portes. Imaginons que je veuille faire des relevés de température / humidité sur un site distant ou il n'y a pas de domotique. J'ai alors le choix d'un ESP du genre Atom Lite sur une prise USB qui va remonter les informations des sondes locale sou Bluetooth vers un site Home Assistant distant qui le verra dès lors que j'ai ouvert le port 6053. Mon ESP communiquera alors via l'API avec Home Assistant comme s'il était local et je pourrais le maintenir, changer sa config et le mettre à jour avec ESPHome. L'alternative consiste à monter MQTT et à le faire communiquer avec un brooker. Ca évite d'avoir un port à ouvrir, mais je ne pourrais plus le maintenir.

On peut échanger ici ou sur HACF.

Home Assistant & Entity Controler

Vous voilà content, vous pouvez allumer, gérer et éteindre votre ampoule via Home Assistant. Je suis sur que vous savez également faire ça via un bouton sans fil, par exemple via ControlerX etc... Mais on peut mieux faire et automatiser en détectant la présence dans une pièce avec quelques lignes et un capteur d'occupation genre Aqara ou Xiaomi... Et pour ça il y a plusieurs méthodes.

EDIT 25/10/2022 : Finalement le problème majeur de Entity Controler est que toute modification impose un redémarrage complet de Home Assistant. J'ai donc basculé sur AD-Automoli qui lui est sous AppDaemon, donc dynamique car les modifications sont prises en compte immédiatement. A considérer également Light Automation pour des éclairages  heures fixes.

L'option classique en YAML

- id: 'fab33b5b-b526-4f6c-a23f-ee98c300012c'
  alias: "PRESENCE : Eclairage Bureau"
  description: ''
  trigger:
    - platform: device
      type: occupied
      id: enter
      device_id: a65b2d5c507be85f0964131f26f8d31e
      entity_id: binary_sensor.motion_bureau_occupancy
      domain: binary_sensor
    - platform: device
      type: not_occupied
      id: leave
      device_id: a65b2d5c507be85f0964131f26f8d31e
      entity_id: binary_sensor.motion_bureau_occupancy
      domain: binary_sensor
  condition:
  action:
    - if:
      - condition: trigger
        id: enter
      then:
        - service: light.turn_on
          data:
            entity_id: light.shellydimmer_db2f18
    - if:
        - condition: trigger
          id: leave
      then:
        - service: light.turn_off
          data:
            entity_id: light.shellydimmer_db2f18

Alternatives

Pour les plus flémards on peu aussi faire ça avec des BluePrint's, ou même en NodeRed si on veut se compliquer la vie (je déteste mais ça vous le savez). Mais j'ai encore plus simple à vous proposer.

Entity Controler

EC pour les intimes. EC est un moteur qui va contrôler des entités (light, switch, scènes, etc...) en fonction d'informations binaires. Donc les sensor: d'entrée seront de détecteurs de présence ou de mouvement, des capteurs d'ouverture ou dans l'absolu n'importe quel binary_sensor: , et pourquoi pas ceux que vous aurez créé dans un usage détourné... A ce contrôle on va bien sur pouvoir appliquer diverses contraintes (horaires, nuit/jour) ou simplement dire que dès lors qu'une lampe s'est allumée automatiquement elle ne s'étendra que manuellement. C'est assez souple et adaptable à quasiment tous les besoins. En tous cas les miens.

Le Git est ici et la doc très complète .

Voici un exemple pour allumer une lampe pendant 180 secondes (durée par défaut) : 3 lignes

motion_light:
  sensor: binary_sensor.motion_sejour
  entity: light.shellydimmer_d3e57c

On peut bien sur régler la durée :

  delay: 320

Faire en sorte que ça ne s'allume que la nuit, avec ici un offset :

  start_time: sunset - 00:30:00
  end_time: sunrise + 00:30:00

Et appliquer des valeurs à la lampe :

  service_data:
    brightness: 255
    color_name: blue
  service_data_on: 
    transition: 5
  service_data_off: 
    transition: 10

Faire en sorte que ça ne s'éteigne pas !

  stay_mode: on

Ou applique une contrainte externe. Ici j'ai mis un input_boolean: mais ça aurait pu être l'état d'une autre lampe, voire un media_player:. A noter que l'on peu également se servir des overrides pour simplement désactiver le contrôle. J'ai par exemple un éclairage extérieur avec des projecteurs que je ne veux pas voir s'allumer quand on dine et que l'éclairage via la guirlande est amplement suffisant et plus agréable.

  overrides:
    - input_boolean.auto_motion_salon

Pareil quand on regarde un film il ne faut pas que l'éclairage se mette en route si on bouge sur le canapé. Pour ça j'ai déjà une automation qui fonctionne sur le play/pause et qui augmente lentement l'éclairage quand je fait pause et inversement (comme au cinéma). Pour l'instant ça ne fonctionne que sur Emby, il faut que je l'intègre à Android TV et EC., je métrais à jour ici quand je le ferait).

Conclusion

Un peu comme ControlerX, voilà de quoi simplifier la chose et gagner des lignes de code. A noter que sous AppDaemon il y Wasp in a Box qui est un peu moins complet ou AD-Automoli qui lui est trop complet...

On peut en discuter ici ou sur HACF.

Windows et le yoyo des écrans....

Sous Windows lorsqu'on utilise plusieurs écrans se pose un problème majeur : si un des écrans passe en veille, déconnecté ou non alimenté, toutes les fenêtres ouvertes passent sur l'écran qui reste disponible. Dans l'absolu c'est logique sur un laptop sur lequel on connecte occasionnellement un écran externe, par contre sur un PC fixe que l'on utilise en permanence avec trois écrans il est extrêmement désagréable de devoir réorganiser ses fenêtres tous les matins... (sujet déjà évoqué ici).

La faute à qui, à quoi ?

Le problème se situe au niveau de la gestion de l'EDID (ici pour les détails).  Il s'agit d'une implémentation dans les écrans qui va transmettre à Windows pas mal d'informations, dont :

  • La résolution d’écran,
  • La profondeur de couleur prise en charge,
  • La résolution et fréquence d’images prises en charge,
  • Le rapport hauteur / largeur
  • Le format audio pris en charge, par exemple, par exemple sur un téléviseur ne prend en charge que les formats 2.0 ou 5.1,

Selon l’année de production du téléviseur ou du moniteur, la version prise en charge d’EDID peut être 1.0, 1.4, 2.0, 3.0 ou plus. Ces informations ne sont bien sur pas modifiables par l'utilisateur mais en dur dans l'écran. A noter également que certains moniteurs permettent de désactiver une partie des informations transmises via le port HDMI ou DP. On peut alors faire un réglage manuel et Windows ne verra pas l'écran disparaitre. Ca résout le problème.

Mais hélas ce n'est pas le cas de mes écrans Samsung.

Il faut savoir que sous Windows il n'y a absolument aucune solutions native ou via un utilitaire pour désactiver l'auto détection des écrans. Ca existait jadis sous Windows 7, sous la forme d'une clé de registre, mais depuis que Windows est devenu avant tout un outil de collecte de données c'est terminé, le marketing a probablement décidé d'éliminer tout ce qui pourrait générer du support... Et pourtant la demande est bien présente !

Contournement

J'ai exploré le net dans tous les sens et les seules solutions disponibles sont matérielles. Il s'agit de dongle HDMI qui se branchent sur le port HDMI ou DP (ou via un adaptateur USB-S) entre le PC et les écrans. Il s'agit d'un émulateur EDID qui va faire croire à Windows (ça doit être identique sous MacOS) que l'écran est présent alors même qu'il est en veille, off ou débranché.