MQTT : Problème d'envoi de commande

Bonjour,

depuis quelques mois j’ai installé le plugin mqtt.
Jusqu’a l’instant l’utilisation unique etait la réception de valeur via mqtt.

Par contre quand j’essaie d’envoyer une commande via le plugin matt ca ne fonctionne pas et je recois le message d’erreur suivant au niveau des logs http.error :

[Thu Mar 18 18:00:31.387476 2021] [php7:error] [pid 9965] [client 192.168.1.106:51364] PHP Fatal error: Uncaught Error: Class ‹ Mosquitto\Client › not found in /var/www/html/plugins/MQTT/core/class/MQTT.class.php:221
Stack trace:
#0 /var/www/html/plugins/MQTT/core/class/MQTT.class.php(257): MQTT::publishMosquitto(‹ 1919 ›, ‹ shellies/shelly… ›, ‹ toggle ›, ‹ 0 ›)
#1 /var/www/html/core/class/cmd.class.php(998): MQTTCmd->execute(Array)
#2 /var/www/html/core/ajax/cmd.ajax.php(88): cmd->execCmd(Array)
#3 {main}
thrown in /var/www/html/plugins/MQTT/core/class/MQTT.class.php on line 221, referer: http://192.168.1.70/index.php?v=d&p=dashboard
Error resolving ntp.google.com: Name or service not known (-2)

Avez-vous une idée comment résoudre ce problème.
J’ai déjà essayer de reinstaller les dépendance de mqtt mais ca ne fonctionne toujours pas.

Merci pour votre aide,
Kim

Si j’essaye d’envoyer en direct via MQTT Explorer un message ca fonctionne.

Il y a du avoir un problème entre Jeedom et mon Mosquito Broker.

Mais je ne sais pas vraiment ou commencer a chercher.

Merci

1 « J'aime »

Hello

Vu le messsage, tu peux commencer par reinstaller les dépendances (et poster les logs), il semble que le client ne soit pas accessible

Mais vu que ca marche en direct via MQTT Explorer, tu pense quand même que je dois reinstaller les dépendances ? Merci

cliquer sur un bouton ne te coûte rien et peut lever le doute …

1 « J'aime »

MQTT Exploreur c’est sur ton poste… Aucun composant en commun jeedom…

1 « J'aime »

Si j’utilise l’interface MQTT Explorer et je me connect au broker Mosquito qui tourne sur le meme RPI que Jeedom.

Je vois même au niveau des logs MQTT de jeedom aparaitre le command envoyer en utilisant l’interface MQTT Explorer.

Voic le log de l’installation des dépendances :

Début d’installation des dépendances
Reading package lists…
Building dependency tree…
Reading state information…
lsb-release is already the newest version (10.2019051400+rpi1).
php-pear is already the newest version (1:1.10.6+submodules+notgz-1.1+deb10u1).
The following package was automatically installed and is no longer required:
raspi-gpio
Use ‹ sudo apt autoremove › to remove it.
0 upgraded, 0 newly installed, 0 to remove and 109 not upgraded.
Hit:1 Index of /debian buster InRelease
Reading package lists…
Reading package lists…
Building dependency tree…
Reading state information…
libmosquitto-dev is already the newest version (1.5.7-1+deb10u1).
mosquitto is already the newest version (1.5.7-1+deb10u1).
mosquitto-clients is already the newest version (1.5.7-1+deb10u1).
The following package was automatically installed and is no longer required:
raspi-gpio
Use ‹ sudo apt autoremove › to remove it.
0 upgraded, 0 newly installed, 0 to remove and 109 not upgraded.
Reading package lists…
Building dependency tree…
Reading state information…
raspi-gpio
Use ‹ sudo apt autoremove › to remove it.
0 upgraded, 0 newly installed, 0 to remove and 109 not upgraded.
Fin installation des dépendances

Non quand même :

  • RPI = client ET serveur (et il te manque le client)
  • Ton poste/MQTT Exploreur = client

Mais si tu es si sûr de toi, j’insiste pas… Regarde la notion de client/serveur …

ok je comprends mieux…

Mais bizarre que le client ne s’installe pas lors de l’installation du plugin Mqtt

Oui c’est bien pour ça que le premier truc à regarder c’est les logs

Donc 2 remarques :

  • tu es pas à jour… 109 packages en attente
  • vieille installation stretch=> buster ?

Si tu es sur un PI, ça vaut le coup de faire un :

sudo update && sudo upgrade

Puis un reboot… c’est pas forcement la soluce mais c’est pas inutile

Et pour finir, ça

sudo apt-get -y install mosquitto mosquitto-clients libmosquitto-dev

je viens de mettre tout a jour et puis :

jeedom@jeedom:~ $ sudo apt-get -y install mosquitto mosquitto-clients libmosquitto-dev
[sudo] Mot de passe de jeedom :
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Fait
libmosquitto-dev est déjà la version la plus récente (1.5.7-1+deb10u1).
mosquitto est déjà la version la plus récente (1.5.7-1+deb10u1).
mosquitto-clients est déjà la version la plus récente (1.5.7-1+deb10u1).
Le paquet suivant a été installé automatiquement et n’est plus nécessaire :
raspi-gpio
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

le résultat reste malheuresement le même…

ça donne la même chose les 2 commande locate ci-dessous

root@jeedom:/applications/docker# locate mosquitto_sub
/usr/bin/mosquitto_sub
/usr/share/man/man1/mosquitto_sub.1.gz
root@jeedom:/applications/docker# locate mosquitto_pub
/usr/bin/mosquitto_pub
/usr/share/man/man1/mosquitto_pub.1.gz

Voici le résultat :

jeedom@jeedom:~ $ locate mosquitto_sub
/usr/bin/mosquitto_sub
/usr/share/man/man1/mosquitto_sub.1.gz
jeedom@jeedom:~ $ locate mosquitto_pub
/usr/bin/mosquitto_pub
/usr/share/man/man1/mosquitto_pub.1.gz

Donc cette partie là c’est bon.

Ce qu’il manque c’est donc la librairie php.
C’est quoi l’historique de la machine ? un php 7.x qui a été mis à jour ?

Il y a environ 6 mois j ai du faire un restore de backup parce que ma carte sd etait mort.

Mais je ne sais pas si la version php a ete mis a jour. Desole.

Et ça (réinstallation des dépendances en super verbose)

sudo bash -x /var/www/html/plugins/MQTT/resources/install.sh

voila :

jeedom@jeedom:~ $ sudo bash -x /var/www/html/plugins/MQTT/resources/install.sh
[sudo] Mot de passe de jeedom :

  • echo ‹ Début d ›'‹ installation des dépendances ›
    Début d’installation des dépendances
  • touch /tmp/mqtt_dep
  • echo 0
  • apt-get -y install lsb-release php-pear
    Lecture des listes de paquets… Fait
    Construction de l’arbre des dépendances
    Lecture des informations d’état… Fait
    lsb-release est déjà la version la plus récente (10.2019051400+rpi1).
    php-pear est déjà la version la plus récente (1:1.10.6+submodules+notgz-1.1+deb1 0u1).
    Le paquet suivant a été installé automatiquement et n’est plus nécessaire :
    raspi-gpio
    Veuillez utiliser « sudo apt autoremove » pour le supprimer.
    0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
    ++ lscpu
    ++ grep Architecture
    ++ awk ‹ { print $2 } ›
  • archi=armv7l
  • ‹ [ › armv7l == x86_64 ‹ ] ›
  • echo 10
  • apt-get update
    Atteint :1 Index of /debian buster InRelease
    Lecture des listes de paquets… Fait
  • echo 30
  • apt-get -y install mosquitto mosquitto-clients libmosquitto-dev
    Lecture des listes de paquets… Fait
    Construction de l’arbre des dépendances
    Lecture des informations d’état… Fait
    libmosquitto-dev est déjà la version la plus récente (1.5.7-1+deb10u1).
    mosquitto est déjà la version la plus récente (1.5.7-1+deb10u1).
    mosquitto-clients est déjà la version la plus récente (1.5.7-1+deb10u1).
    Le paquet suivant a été installé automatiquement et n’est plus nécessaire :
    raspi-gpio
    Veuillez utiliser « sudo apt autoremove » pour le supprimer.
    0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
  • echo 60
    ++ php --version
    ++ head -n 1
    ++ cut -d ’ ’ -f 2
    ++ cut -c 1-3
  • phpv=7.3
  • apt-get -y install php7.3-dev
    Lecture des listes de paquets… Fait
    Construction de l’arbre des dépendances
    Lecture des informations d’état… Fait
    php7.3-dev est déjà la version la plus récente (7.3.27-1~deb10u1).
    Le paquet suivant a été installé automatiquement et n’est plus nécessaire :
    raspi-gpio
    Veuillez utiliser « sudo apt autoremove » pour le supprimer.
    0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
  • [[ -d /etc/php/7.3/cli/ ]]
    ++ cat /etc/php/7.3/cli/php.ini
    ++ grep mosquitto
  • [[ ! -n extension=mosquitto.so ]]
  • [[ -d /etc/php/7.3/fpm/ ]]
  • [[ -d /etc/php/7.3/apache2/ ]]
    ++ cat /etc/php/7.3/apache2/php.ini
    ++ grep mosquitto
  • [[ ! -n ;extension=mosquitto.so ]]
  • rm /tmp/mqtt_dep
  • echo ‹ Fin installation des dépendances ›
    Fin installation des dépendances

Logique … ça fait pas le plus important, car considéré comme déjà installé

sudo  pecl install Mosquitto-beta