Hardware incorrectement détecté

Bonjour,

Sur le market de Jeedom :
Une installation de Jeedom sur un Pi3B indique que le hardware est : RPI 3 B
Une installation de Jeedom sur un Pi4B indique que le hardware est : RPI 3 B (alors que cela devrait être Rpi 4 B)

Dans Jeedom (page configuration [Général])
Sur le Pi3B+ c’est indiqué : RPI 3 B (ok)
Sur le Pi4B c’est indiqué : rip (trop générique)

Merci.

Bonsoir,

Ca doit dépendre du model de Pi 4 @Fabrice car sur le market j’en ai un qui est bien vu en RPI 4 :thinking:
image

Je constate la même chose que @iPapy sur 2 RPI4 différents, j’ai rpi dans un cas, « rpi 4 B » dans l’autre

Mes infos sont cohérentes entre le market et l’interface jeedom

Bonsoir.

C’est louche alors, pourtant c’est le même Jeedom (enfin, la même restauration).
Il doit bien y avoir quelque chose qui ne va pas.

Et dans vos pages de configuration de Jeedom, vous avez quoi ?

pour l’un:
image

pour l’autre
image

J’ai pas ouvert le boitier pour voir la révision mais celui vu en rpi est un 2Go et celui vu en RPI 4 est un 4Go

Il y a des rpi qui ont été ajouté

Il faudrait lancer cette fonction

Et voir ce qui retourne après il faut l ajouter dans le core via un PR

Bonsoir.

Il n’y a pas besoin de l’ouvrir, il y a une commande pour cela :
cat /proc/cpuinfo
Il y a le hardware révision, su le net tu trouves des tableaux de correspondance.

Ou directement là :
cat /sys/firmware/devicetree/base/model
Le chemin change légèrement avec les anciennes versions d’os.

Moi j’ai un 1.2

Merci à toi.

Question : c’est information est dynamique dans Jeedom ou c’est écrit quelques part, d’où le problème que j’ai ? A l’origine j’étais bien sur un pi3b+, mais depuis au moins 2 ans je suis sur le pi4b.

Je suis sur smartphone là, tu sais où se trouve la table de correspondance ?

Merci.

Bonsoir,

Alors la table de correspondance est bien en hard dans le core, et elle semble ne pas être a jour.

J’ai 2 Rpi :

  • Raspberry Pi 4 Model B Rev 1.4 [8G] → d03114
  • Raspberry Pi 4 Model B Rev 1.2 [2G] → b03112

C’est 2 Rpi sont reconnu comme simple Rpi.

image

Le Core vérifie 1 seul fois cette info pour être save en config, une fois save elle ne bouge plus.

Avec un bloc code je récupère en 1er temps le hardware_revision

if (file_exists('/usr/bin/raspi-config')) {
  $hardware_revision = strtolower(shell_exec('cat /proc/cpuinfo | grep Revision'));
  $scenario->setLog('hardware_revision -> ' . $hardware_revision);
  $result = 'rpi';
  global $JEEDOM_RPI_HARDWARE;
  foreach ($JEEDOM_RPI_HARDWARE as $key => $values) {
    foreach ($values as $value) {
      if (strpos($hardware_revision, $value) !== false) {
        $result = $key;
      }
    }
  }
  $scenario->setLog($result);
  //config::save('hardware_name', $result);
}

Je modifie le core en ajoutant mon hardware_revision issu du bloc code (d03114)
Ligne 41 : 'RPI 4 B' => array('a03111','b03111','c03111','d03114'),

Ensuite pour que le core enregistre cette valeur en config, je re-execute le bloc code en décommentant la dernière ligne.

Résultat :

image

Quelques minutes après le Market a bien récupéré aussi cette info.

Edit :

Je pense que la liste peut être mise a jour en fonction de cette liste :

https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#old-style-revision-codes

Edit 2 :
Voici le code avec liste mise a jour :

$JEEDOM_RPI_HARDWARE = array(
	'RPI 1 A' => array('0007','0008','0009'),
	'RPI 1 B' => array('0002','0003','0004','0005','0006','000d','000e','000f'),
	'RPI 1 B+' => array('0010','900032','0013'),
	'RPI 1 Compute' => array('0011','0014','900061'),
	'RPI 1 A+' => array('0012','0015','900021'),
	'RPI 2 B' => array('a01041','a21041','a22042','a02042','a01040'),
	'RPI Zero' => array('900092','900093','920092','920093'),
	'RPI Zero W' => array('9000c1'),
	'RPI Zero 2 W' => array('902120'),
	'RPI 3 A+' => array('9020e0'),
	'RPI 3 B' => array('a02082','a22082','a22083','a52082','a32082'),
	'RPI 3 B+' => array('a020d3'),
	'RPI 3 Compute' => array('a220a0','a020a0'),
	'RPI 3 Compute+' => array('a02100'),
	'RPI 4 Compute' => array('a03140','b03140','c03140','d03140'),
	'RPI 4 B' => array('a03111','b03111','b03112','b03114','b03115','c03111','c03112','c03114','c03115','d03114','d03115'),
	'RPI 5' => array('c04170','d04170'),
);
6 « J'aime »

Bonsoir.

Comme à ton habitude, tes réponses sont exemplaires !

Je tente demain.

Bonjour,

Alors celui reconnu en RPI 4 B (Pi 2Go) donne:
Raspberry Pi 4 Model B Rev 1.1

Le second qui lui est reconnu en rpi (Pi 4Go) donne:
Raspberry Pi 4 Model B Rev 1.4

Bravo @Phpvarious mais je vais rien toucher pas envie de tout casser :wink:

Salut,

En GROS, la 1ere version est détectée et pas les suivantes. Je vais m’attaquer à ce qu’a indiqué Phpvarious pour voir.

1 « J'aime »

Bah voilà !

2023-12-17 14:20:42 RPI 4 B 4.3.21
2023-12-16 16:34:02 RPI 3 B 4.4.0

Big merci !

Tu peux le faire les yeux fermés !

En gros, tu n’a plus besoin de l’étape 1, je résume :

Tu modifies cette page :
html/core/config/compatibility.config.php
Avec les infos qu’a donné Phpvarious (copier ici et remplacer l’existant de la ligne 30 à la fin)

Et ensuite, dans un bloc code de scénario, tu exécutes 1 seule fois le bloc qu’il a écrit en supprimant les deux // de l’avant dernière ligne.
=> Et c’est tout,

Dans Jeedom, c’est visible de suite. Ensuite, fait une recherche les mises à jour dans Jeedom et cela se met à jours directement sur le Market.

et pi c’est tout !

Tu as 5 minutes, interro surprise à 14h36 !

Merci

Les 5 minutes sont passées :crazy_face:

On va élaborer une punition collective ?

La restore inclus :rofl:

Pour infos, le PR est merge en Alpha, donc pour ceux qui sont en alpha a jour, il faut simplement utiliser le bloc code.

Hello,

Euh les yeux fermés peut être pas car c’est ma prod :wink:

Ligne 30 du fichier j’ai 'username' => 'jeedom', et dessous 'password' => tu es sûr que c’est là qu’il faut que je touche, c’est pas plutôt compatibility.config.php

ouais j’essai de pas tout cassé et surtout j’essai de comprendre car il y en a un qui parle de ligne 41, un autre de ligne 30 donc je suis perdu

Je pense que c’est plutôt compatibility.config.php