Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

MQTT

Retrouvez ici des sujets concernant le protocole MQTT et les modules domotiques de type MQTT utilisés avec JEEDOM
/!\ Plugin MQTT non officiel
scalz
Timide
Messages : 136
Inscription : 01 mars 2015, 15:31
Localisation : Pays-de-la-Loire

Re: [Sujet officiel] Plugin MQTT

Message par scalz » 06 avr. 2015, 19:30

salut.
j'ai effacé les fichiers puis lancé l'install comme tu me l'as conseillé mais ça n'a rien changé. Desactive/active le plugin/sauvegarde mais rien de plus. pas grave. ça va bien finir par fonctionner.

Code : Tout sélectionner

jeedom@jeedom ~ $ sudo rm /etc/apt/sources.list.d/mosquitto-wheezy.list.*
jeedom@jeedom ~ $ apt-get -y install mosquitto mosquitto-clients libmosquitto-dev php5-dev
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
jeedom@jeedom ~ $ sudo apt-get -y install mosquitto mosquitto-clients libmosquitto-dev php5-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
mosquitto is already the newest version.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libmosquitto-dev : Depends: libmosquitto1 (>= 1.4-0mosquitto2~nows) but 1.3.5-0mosquitto1 is to be installed
E: Unable to correct problems, you have held broken packages.
jeedom@jeedom ~ $
Mysensors
Jeedom en stable/RPI3
https://github.com/scalz

domos
Timide
Messages : 381
Inscription : 22 juil. 2014, 12:56

Re: [Sujet officiel] Plugin MQTT

Message par domos » 07 avr. 2015, 13:23

scalz a écrit :salut.
j'ai effacé les fichiers puis lancé l'install comme tu me l'as conseillé mais ça n'a rien changé. Desactive/active le plugin/sauvegarde mais rien de plus. pas grave. ça va bien finir par fonctionner.

Code : Tout sélectionner

jeedom@jeedom ~ $ sudo rm /etc/apt/sources.list.d/mosquitto-wheezy.list.*
jeedom@jeedom ~ $ apt-get -y install mosquitto mosquitto-clients libmosquitto-dev php5-dev
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
jeedom@jeedom ~ $ sudo apt-get -y install mosquitto mosquitto-clients libmosquitto-dev php5-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
mosquitto is already the newest version.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libmosquitto-dev : Depends: libmosquitto1 (>= 1.4-0mosquitto2~nows) but 1.3.5-0mosquitto1 is to be installed
E: Unable to correct problems, you have held broken packages.
jeedom@jeedom ~ $
J'ai eu le même souci, surement un problème de package sur le dépot Mosquitto.

J'ai contourné le problème en faisant ceci (en tant que root ou sudo):

Installer les packages suivants:

Code : Tout sélectionner

# apt-get -y install mosquitto mosquitto-clients  php5-dev

Et récupérer et installer le package de la lib dev (méthode pas forcement très propre !) :

Code : Tout sélectionner

# wget http://repo.mosquitto.org/debian/pool/main/m/mosquitto/libmosquitto-dev_1.4.1-0mosquitto1%7enows_all.deb
# dpkg -i libmosquitto-dev_1.4.1-0mosquitto1~nows_all.deb 
Tu devrai obtenir ceci dans la liste des package mosquitto installés:

Code : Tout sélectionner

# dpkg -l|grep mosq
ii  libmosquitto-dev                     1.4.1-0mosquitto1~nows             all          MQTT version 3.1 client library, development files
ii  libmosquitto1                        1.4.1-0mosquitto1~nows             i386         MQTT version 3.1 client library
ii  mosquitto                            1.4.1-0mosquitto1~nows             i386         MQTT version 3.1/3.1.1 compatible message broker
ii  mosquitto-clients                    1.4.1-0mosquitto1~nows             i386         Mosquitto command line MQTT clients
SI ok, n'oublie pas d'installer la lib php Mosquitto avec la commande "pecl install .." se trouvant dans le script install.sh.
Dernière édition par domos le 07 avr. 2015, 13:25, édité 1 fois.
Bidouilles Linux ...

domos
Timide
Messages : 381
Inscription : 22 juil. 2014, 12:56

Re: [Sujet officiel] Plugin MQTT

Message par domos » 07 avr. 2015, 13:23

Après, je ne suis pas aller plus loin, j'ai un souci avec le plugin:
Le daemon MQTT Jeedom se relance toutes les minutes sans arriver à se connecter, je n'ai pas plus d'info. dans la log du plugin.
Mon broquer mosquitto le voit se connecter et se déconnecter dans la log .

Si @lunarok passe pas là ?
Bidouilles Linux ...

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: [Sujet officiel] Plugin MQTT

Message par lunarok » 07 avr. 2015, 15:53

@scalz : toi aussi tu as des logs de déco/reco dans Mosquitto ?

@domos : ton Mosquitto il est en conf de base juste installé, t'as pas mis de login ?
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

domos
Timide
Messages : 381
Inscription : 22 juil. 2014, 12:56

Re: [Sujet officiel] Plugin MQTT

Message par domos » 07 avr. 2015, 21:10

Non, je n'ai mis aucune sécurité, ni login, ni SSL.
j'ai testé avec un client Python et même Arduino et cela fonctionne bien avec le serveur Mosquito.

Envoyé de mon cpc6128 en utilisant Tapatalk.
Bidouilles Linux ...

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: [Sujet officiel] Plugin MQTT

Message par lunarok » 07 avr. 2015, 22:53

@domos : tu peux tester si toi aussi par contre la publication d'évènement fonctionne ? (en créant une commande)

@scalz @domos : l'un ou les deux pouvez me dire si par hasard il y aurait des logs en erreur pour php ou nginx ?
Autres tests (en cherchant sur les problèmes possibles) :
/core/class/MQTT.class.php ligne 44
$client->loopForever(); devient while (true) { $client->loop(); }

@domos : 32bits wheezy c'est ca ? quelle version de PHP ?
@scalz : même question, distrib exacte et version PHP

(j'allais dire, pensez à vos signatures ... mais ya plus de signatures snif perdues)
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

domos
Timide
Messages : 381
Inscription : 22 juil. 2014, 12:56

Re: [Sujet officiel] Plugin MQTT

Message par domos » 08 avr. 2015, 00:51

lunarok a écrit :@domos : tu peux tester si toi aussi par contre la publication d'évènement fonctionne ? (en créant une commande)

@scalz @domos : l'un ou les deux pouvez me dire si par hasard il y aurait des logs en erreur pour php ou nginx ?
Autres tests (en cherchant sur les problèmes possibles) :
/core/class/MQTT.class.php ligne 44
$client->loopForever(); devient while (true) { $client->loop(); }

@domos : 32bits wheezy c'est ca ? quelle version de PHP ?
@scalz : même question, distrib exacte et version PHP

(j'allais dire, pensez à vos signatures ... mais ya plus de signatures snif perdues)
- Debian Wheezy 32bits

- Version php:

Code : Tout sélectionner

$ php -v
PHP 5.4.39-0+deb7u2 (cli) (built: Mar 25 2015 09:10:46) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

- Fait la modif. dans MQTT.class.php mais sans succés:

Code : Tout sélectionner

$ diff MQTT.class.php MQTT.class.php.old 
44,45c44
<                       //$client->loopForever();
<                       while (true) { $client->loop(); }
---
>                       $client->loopForever();
La log montre toujours une relance du daemon toutes les mn.

Code : Tout sélectionner

$ tailf www/jeedom/log/MQTT 
08-04-2015 00:24:03 | info | Lancement du démon MQTT
08-04-2015 00:25:04 | info | Lancement du démon MQTT
08-04-2015 00:26:02 | info | Lancement du démon MQTT
08-04-2015 00:27:02 | info | Lancement du démon MQTT
08-04-2015 00:27:44 | info | Envoi du message 10 vers JeeMQTT           => Test de la commande
08-04-2015 00:28:03 | info | Lancement du démon MQTT
08-04-2015 00:29:02 | info | Lancement du démon MQTT
08-04-2015 00:30:06 | info | Lancement du démon MQTT



Pas d'erreur dans la log /var/log/php5-fpm.log
Erreur dans la log /var/log/apache2/error.log seulement au lancement de la commande pour publier un message:

Code : Tout sélectionner

500 : Internal Server Error         => dans Jeedom
[Wed Apr 08 00:27:04 2015] [error] [client 192.168.0.26] PHP Warning:  is_nan() expects parameter 1 to be double, string given in /var/www/jeedom/core/class/eqLogic.class.php on line 882, referer: http://vesta/jeedom/index.php?v=d&m=MQTT&p=MQTT&id=174&saveSuccessFull=1
[Wed Apr 08 00:27:36 2015] [error] [client 192.168.0.26] PHP Warning:  is_nan() expects parameter 1 to be double, string given in /var/www/jeedom/core/class/eqLogic.class.php on line 882, referer: http://vesta/jeedom/index.php?v=d&m=MQTT&p=MQTT&id=174&saveSuccessFull=1
[Wed Apr 08 00:27:44 2015] [error] [client 192.168.0.26] PHP Fatal error:  Class 'Mosquitto\\Client' not found in /var/www/jeedom/plugins/MQTT/core/class/MQTT.class.php on line 141, referer: http://vesta/jeedom/index.php?v=d&m=MQTT&p=MQTT&id=174&saveSuccessFull=1
Pourtant la lib php est installée et php5-fpm et apache (pas de nginx) ont été relancés.

Code : Tout sélectionner

# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package   Version State
Mosquitto 0.2.2   alpha
Et /etc/php5/fpm/php.ini contient bien "extension=mosquitto.so"
Bidouilles Linux ...

Avatar de l’utilisateur
trankil
Actif
Messages : 793
Inscription : 21 juil. 2014, 15:07

Re: [Sujet officiel] Plugin MQTT

Message par trankil » 08 avr. 2015, 07:19

@Domos: j'ai le même souci que toi sur mes RPI2: l'émission de message fonctione mais la souscription elle ne marche pas. Et le démon se relance toutes les minutes, à cause d'un bête problème d'objet invalide (peut être un souci de namespace) lors de l'appel du cron de la classe MQTT.
"L'erreur est la règle ; la vérité est l'accident de l'erreur." Georges Duhamel (1884 – 1966)
"Laitcronsaitpasbon et Laitsleepsaitpasbonnonplus" proverbe Trankilien (2014 – )

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: [Sujet officiel] Plugin MQTT

Message par lunarok » 08 avr. 2015, 08:23

@domos : ligne 37 $client = new Mosquitto\Client($mosqId); en supprimant le $mosqId pour donner $client = new Mosquitto\Client();

C'est la seule différence avec la connexion publish.
Je vais voir dans la journée pour refaire un passage sur la classe complète, les logs et aussi ajouter un début de support user/pass et SSL
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

Avatar de l’utilisateur
trankil
Actif
Messages : 793
Inscription : 21 juil. 2014, 15:07

Re: [Sujet officiel] Plugin MQTT

Message par trankil » 08 avr. 2015, 08:28

lunarok a écrit :@domos : ligne 37 $client = new Mosquitto\Client($mosqId); en supprimant le $mosqId pour donner $client = new Mosquitto\Client();
Ne marchera pas. (en tout cas n'a pas marché sur mes RPI )
Je ne suis pas développeur (et ne maîtrise déjà pas les "if" alors un code PHP ... :lol: ) mais je dirais qu'il y a un souci de namespace ... (la classe Mosquitto n'est pas référencée lors du pull())
"L'erreur est la règle ; la vérité est l'accident de l'erreur." Georges Duhamel (1884 – 1966)
"Laitcronsaitpasbon et Laitsleepsaitpasbonnonplus" proverbe Trankilien (2014 – )

scalz
Timide
Messages : 136
Inscription : 01 mars 2015, 15:31
Localisation : Pays-de-la-Loire

Re: [Sujet officiel] Plugin MQTT

Message par scalz » 08 avr. 2015, 09:23

salut. quand j'étais en vm jeedom j'étais dans le même cas. j'arrivais à publier mais pas à me connec. à présent jsuis rpi2. jfais des tests ce midi et jvous dis ça. mais j'avais vu dans le code php le souci sur la création de l'objet client.
Mysensors
Jeedom en stable/RPI3
https://github.com/scalz

scalz
Timide
Messages : 136
Inscription : 01 mars 2015, 15:31
Localisation : Pays-de-la-Loire

Re: [Sujet officiel] Plugin MQTT

Message par scalz » 08 avr. 2015, 10:59

@domos: Jviens dfaire ce que tu m'expliquais un peu avant. Mais pas de bol ça fonctionne pas pour moi. mais j'ai l'impression qu'on est pas sur la même distrib. du coup j'espère que je n'ai aps fait de betises.Ci-dessous ce que j'ai fait :

Code : Tout sélectionner

jeedom@jeedom ~ $ sudo apt-get -y install mosquitto mosquitto-clients  php5-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
mosquitto is already the newest version.
The following packages were automatically installed and are no longer required:
  gedit-common gir1.2-atk-1.0 gir1.2-clutter-1.0 gir1.2-cogl-1.0
  gir1.2-coglpango-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0
  gir1.2-gstreamer-0.10 gir1.2-gtk-3.0 gir1.2-gtksource-3.0 gir1.2-json-1.0
  gir1.2-pango-1.0 gir1.2-peas-1.0 gnome-js-common gnome-user-guide
  libclutter-1.0-0 libclutter-1.0-common libcogl-common libcogl-pango0
  libcogl9 libgirepository-1.0-1 libgtksourceview-3.0-0
  libgtksourceview-3.0-common libjson-glib-1.0-0 libpeas-1.0-0 libpeas-common
  libseed-gtk3-0 libyelp0 python-gi python-gi-cairo ttf-dejavu
  ttf-dejavu-extra yelp yelp-xsl
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libapache2-mod-php5filter libmosquitto1 php5-cli php5-common php5-curl
  php5-fpm php5-mysql
The following NEW packages will be installed:
  libmosquitto1 mosquitto-clients
The following packages will be upgraded:
  libapache2-mod-php5filter php5-cli php5-common php5-curl php5-dev php5-fpm
  php5-mysql
7 upgraded, 2 newly installed, 0 to remove and 35 not upgraded.
Need to get 8,740 kB of archives.
After this operation, 357 kB disk space will be freed.
Get:1 http://repo.mosquitto.org/debian/ wheezy/main libmosquitto1 armhf 1.3.5-0m                        osquitto1 [40.7 kB]
Get:2 http://repo.mosquitto.org/debian/ wheezy/main mosquitto-clients armhf 1.3.                        5-0mosquitto1 [43.4 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-fpm armhf 5.                        4.39-0+deb7u2 [2,500 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-cli armhf 5.                        4.39-0+deb7u2 [2,467 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libapache2-mod-ph                        p5filter armhf 5.4.39-0+deb7u2 [2,477 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-mysql armhf                         5.4.39-0+deb7u2 [69.2 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-curl armhf 5                        .4.39-0+deb7u2 [27.4 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-common armhf                         5.4.39-0+deb7u2 [618 kB]
Get:9 http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-dev armhf 5.                        4.39-0+deb7u2 [498 kB]
Fetched 8,740 kB in 6s (1,301 kB/s)
(Reading database ... 75928 files and directories currently installed.)
Preparing to replace php5-fpm 5.4.36-0+deb7u3 (using .../php5-fpm_5.4.39-0+deb7u                        2_armhf.deb) ...
Unpacking replacement php5-fpm ...
Preparing to replace php5-cli 5.4.36-0+deb7u3 (using .../php5-cli_5.4.39-0+deb7u                        2_armhf.deb) ...
Unpacking replacement php5-cli ...
Preparing to replace libapache2-mod-php5filter 5.4.36-0+deb7u3 (using .../libapa                        che2-mod-php5filter_5.4.39-0+deb7u2_armhf.deb) ...
Unpacking replacement libapache2-mod-php5filter ...
Preparing to replace php5-mysql 5.4.36-0+deb7u3 (using .../php5-mysql_5.4.39-0+d                        eb7u2_armhf.deb) ...
Unpacking replacement php5-mysql ...
Preparing to replace php5-curl 5.4.36-0+deb7u3 (using .../php5-curl_5.4.39-0+deb                        7u2_armhf.deb) ...
Unpacking replacement php5-curl ...
Preparing to replace php5-common 5.4.36-0+deb7u3 (using .../php5-common_5.4.39-0                        +deb7u2_armhf.deb) ...
Unpacking replacement php5-common ...
Selecting previously unselected package libmosquitto1.
Unpacking libmosquitto1 (from .../libmosquitto1_1.3.5-0mosquitto1_armhf.deb) ...
Selecting previously unselected package mosquitto-clients.
Unpacking mosquitto-clients (from .../mosquitto-clients_1.3.5-0mosquitto1_armhf.                        deb) ...
Preparing to replace php5-dev 5.4.36-0+deb7u3 (using .../php5-dev_5.4.39-0+deb7u                        2_armhf.deb) ...
Unpacking replacement php5-dev ...
Processing triggers for man-db ...
Setting up php5-common (5.4.39-0+deb7u2) ...
Setting up php5-fpm (5.4.39-0+deb7u2) ...
Setting up php5-cli (5.4.39-0+deb7u2) ...
Setting up libapache2-mod-php5filter (5.4.39-0+deb7u2) ...
[ ok ] Reloading web server config: apache2 not running.
Setting up php5-mysql (5.4.39-0+deb7u2) ...
Setting up php5-curl (5.4.39-0+deb7u2) ...
Setting up libmosquitto1 (1.3.5-0mosquitto1) ...
Setting up mosquitto-clients (1.3.5-0mosquitto1) ...
Setting up php5-dev (5.4.39-0+deb7u2) ...
Processing triggers for libapache2-mod-php5filter ...
[ ok ] Reloading web server config: apache2 not running.
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
N: Ignoring file 'mosquitto-wheezy.list.1' in directory '/etc/apt/sources.list.d                        /' as it has an invalid filename extension
N: Ignoring file 'mosquitto-wheezy.list.1' in directory '/etc/apt/sources.list.d                        /' as it has an invalid filename extension
jeedom@jeedom ~ $ wget http://repo.mosquitto.org/debian/pool/main/m/mosquitto/libmosquitto-dev_1.4.1-0  mosquitto1%7enows_all.deb
--2015-04-08 08:36:34--  http://repo.mosquitto.org/debian/pool/main/m/mosquitto/libmosquitto-dev_1.4.1  -0mosquitto1%7enows_all.deb
Resolving repo.mosquitto.org (repo.mosquitto.org)... 85.119.83.194, 2001:ba8:1f1:f271::2
Connecting to repo.mosquitto.org (repo.mosquitto.org)|85.119.83.194|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41042 (40K) [application/x-debian-package]
Saving to: `libmosquitto-dev_1.4.1-0mosquitto1~nows_all.deb'

100%[============================================================>] 41,042      --.-K/s   in 0.05s

2015-04-08 08:36:34 (836 KB/s) - `libmosquitto-dev_1.4.1-0mosquitto1~nows_all.deb' saved [41042/41042]

jeedom@jeedom ~ $ dpkg -i libmosquitto-dev_1.4.1-0mosquitto1~nows_all.deb
dpkg: error: requested operation requires superuser privilege
jeedom@jeedom ~ $ sudo dpkg -i libmosquitto-dev_1.4.1-0mosquitto1~nows_all.deb
Selecting previously unselected package libmosquitto-dev.
(Reading database ... 75942 files and directories currently installed.)
Unpacking libmosquitto-dev (from libmosquitto-dev_1.4.1-0mosquitto1~nows_all.deb) ...
dpkg: dependency problems prevent configuration of libmosquitto-dev:
 libmosquitto-dev depends on libmosquitto1 (>= 1.4.1-0mosquitto1~nows); however:
  Version of libmosquitto1 on system is 1.3.5-0mosquitto1.

dpkg: error processing libmosquitto-dev (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db ...
Errors were encountered while processing:
 libmosquitto-dev
jeedom@jeedom ~ $ dpkg -l|grep mosq
iU  libmosquitto-dev                      1.4.1-0mosquitto1~nows                  all          MQTT ve  rsion 3.1 client library, development files
ii  libmosquitto1                         1.3.5-0mosquitto1                       armhf        MQTT ve  rsion 3.1 client library
ii  mosquitto                             1.3.5-0mosquitto1                       armhf        MQTT ve  rsion 3.1/3.1.1 compatible message broker
ii  mosquitto-clients                     1.3.5-0mosquitto1                       armhf        Mosquit  to command line MQTT clients
jeedom@jeedom ~ $
Sinon, comme demandais Lunarok, ma config :
- Je suis sur rpi2
- J'ai fait l'install tel que décrite ici pour la distrib (donc jeedom officielle je pense): http://doc.jeedom.fr/fr_FR/doc-installa ... _pi_1_et_2
- Pour la version php :

Code : Tout sélectionner

jeedom@jeedom ~ $ php -v
PHP 5.4.39-0+deb7u2 (cli) (built: Mar 29 2015 14:57:23)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
jeedom@jeedom ~ $
Sinon, après tout ça, j'ai retenté pour voir : Desactivation plugin/Activation/Sauvegarde. Rien dans nginx.error. J'ai bien le message en boucle de Lancement du démon mais pas de connec.
Si j'essaie de faire un publish depuis l'équipement, j'ai une erreur en rouge qui s'affiche "500 Internal Server Error", dans les logs MQTT j'ai "envoi du message 10 vers ..." (mais je ne recois rien dans mqttspy) et dans nginx.error :

Code : Tout sélectionner

2015/04/08 08:46:29 [error] 2299#0: *30813 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Class 'Mosquitto\Client' not found in /usr/share/nginx/www/jeedom/plugins/MQTT/core/class/MQTT.class.php on line 140" while reading response header from upstream, client: 192.168.0.12, server: , request: "POST /core/ajax/cmd.ajax.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.168.0.2", referrer: "http://192.168.0.2/index.php?v=d&m=MQTT&p=MQTT"
Jfais comment pour voir les logs de mosquitto pour voir s'il a des connec/deconnec. En même temps
Mysensors
Jeedom en stable/RPI3
https://github.com/scalz

Avatar de l’utilisateur
trankil
Actif
Messages : 793
Inscription : 21 juil. 2014, 15:07

Re: [Sujet officiel] Plugin MQTT

Message par trankil » 08 avr. 2015, 11:08

scalz a écrit : [...]
Jfais comment pour voir les logs de mosquitto pour voir s'il a des connec/deconnec. En même temps
T'modifies le fichier de configuration de Mosquitto (mosquitto.conf) et t'actives :
1. l'écriture des logs dans un fichier de ton choix
2. le bon niveau de log (par exemple le niveau "all").

PS: avant d'tester le plugin MQTT, l'est nécessaire de s'assurer que ton Mosquitto est parfaitement opérationnel (par exemple via les commandes mosquitto_pub et mosquitto_sub)
"L'erreur est la règle ; la vérité est l'accident de l'erreur." Georges Duhamel (1884 – 1966)
"Laitcronsaitpasbon et Laitsleepsaitpasbonnonplus" proverbe Trankilien (2014 – )

scalz
Timide
Messages : 136
Inscription : 01 mars 2015, 15:31
Localisation : Pays-de-la-Loire

Re: [Sujet officiel] Plugin MQTT

Message par scalz » 08 avr. 2015, 11:35

ok. donc dans mosquitto.conf, il y a une fichier de log de configuré. du coup jsuis allé y jeter un oeil. Et je ne vois aucune connexion mise à part mon client windows (mqttfx ou mqttspy).
Le niveau "all" pour les logs je le mets où? Dans le fichier de config, à la fin de la ligne de création du fichier de log? Dsl jdécouvre linux au fur et à mesure que j'avance avec jeedom!
D'ailleurs dans le log, en entete, il fait référence à mosquitto version 1.3.5. Quelle pouasse, j'ai toujours pas la bonne lib on dirait.

Sinon, oui le broker fonctionne. Je m'y connecte avec un client depuis une autre machine. Si je publie depuis cette machine, je reçois bien l'info en ayant fais un mosquitto_sub via putty sur jeedom.
Dernière édition par scalz le 08 avr. 2015, 11:39, édité 1 fois.
Mysensors
Jeedom en stable/RPI3
https://github.com/scalz

Avatar de l’utilisateur
trankil
Actif
Messages : 793
Inscription : 21 juil. 2014, 15:07

Re: [Sujet officiel] Plugin MQTT

Message par trankil » 08 avr. 2015, 11:38

@scalz, dans le fichier de configuration, tu verras une section concernant les logs et indiquant quoi mettre pour activer le niveau "All" (ou un autre, à ta convenance)

C'est normal que tu ne vois aucune connexion du plugin. Car l'objet ne s'instancie pas dans les appels de son "démon."
Si par contre tu fais un test de publication depuis le plugin MQTT, tu devrais alors voir une log de connexion/déconnexion dans ton fichier de log Mosquitto. Si tu ne la vois pas, (alors que tu vois celles de tes autres clients, prouvant que ton niveau de logging est OK dans ton fichier de configuration Mosquitto), c'est que ta librairie php mosquitto n'est pas opérationnelle.
"L'erreur est la règle ; la vérité est l'accident de l'erreur." Georges Duhamel (1884 – 1966)
"Laitcronsaitpasbon et Laitsleepsaitpasbonnonplus" proverbe Trankilien (2014 – )

domos
Timide
Messages : 381
Inscription : 22 juil. 2014, 12:56

Re: [Sujet officiel] Plugin MQTT

Message par domos » 08 avr. 2015, 12:56

@scalz, il semble que la version arm de mosquitto soit differente => 1.3.5

il faut que tu supprimes le package libmosquitto-dev avec
apt-get purge libmosquitto-dev

Par contre je ne vois pas de version 1.3.5 pour libmosquitto-dev.
C'est vraiment le bazar sur ce dépot.
Peut-être attendre une mise à jour ou partir des sources.

@trankil, tu n'as pas eu de souci pour installer les packages mosquitto sur ton serveur Debian, Raspbian ?
As tu réussi à publier des messages à partir du plugin ?
Pour ma part, il ne trouve pas la lib php mosquitto alors que je l'ai installée sans erreur.

@lunarok, pour la modif. proposée en ligne 37, je ne pourrai pas testé avant ce soir.
Bidouilles Linux ...

Avatar de l’utilisateur
trankil
Actif
Messages : 793
Inscription : 21 juil. 2014, 15:07

Re: [Sujet officiel] Plugin MQTT

Message par trankil » 08 avr. 2015, 13:05

@domos:
J'ai indiqué précédemment ici un lien permettant d'installer Mosquitto (et les librairies associées) en version 1.4 dans un environnement RPI (2 dans mon cas) Raspbian stable. (wheezy)

Lorsque j'ai testé le plugin (dès sa publication), j'arrivais bien à envoyer des messages vers un client Mosquitto externe . (==> lib OK donc)
Mais pour les raisons que j'indiquais précédemment (création de l'objet Mosquitto\Client impossible, probablement à cause d'un mauvais namespace lors du lancement du démon.), la souscription ne marchait quant à elle pas (normal , étant donné que le démon ne se connecte pas au hub Mosquitto !)

Depuis, je n'ai pas retesté mais comme il n'y a pas eu d'évolution du plugin, je serais étonné que le résultat soit différent.
"L'erreur est la règle ; la vérité est l'accident de l'erreur." Georges Duhamel (1884 – 1966)
"Laitcronsaitpasbon et Laitsleepsaitpasbonnonplus" proverbe Trankilien (2014 – )

scalz
Timide
Messages : 136
Inscription : 01 mars 2015, 15:31
Localisation : Pays-de-la-Loire

Re: [Sujet officiel] Plugin MQTT

Message par scalz » 08 avr. 2015, 13:30

j'ai peut-etre dit une betise avant. En fait dans mes logs mosquitto, j'ai trouvé une trace de connexion de jeedom (cf ci dessous).

Code : Tout sélectionner

1428484492: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
1428485002: New connection from 127.0.0.1 on port 1883.
1428485002: New client connected from 127.0.0.1 as mosqsub/5246-jeedom (c1, k60).
1428485013: New connection from 192.168.0.12 on port 1883.
1428485013: New client connected from 192.168.0.12 as MQTT_FX_Client (c1, k60).
Par contre je ne saurai dire si c'était avant que j'essaie de faire des manips de reinstall de libmosquitto. En tout cas, après un reboot du pi2, et qq tests de publish depuis un client, je ne la vois plus reapparaitre. Et de toute façon, je n'ai jamais réussi à me connec au broker depuis jeedom sur le pi.
Voici la fin de mon fichier de logs, comme quoi, le broker tourne.

Code : Tout sélectionner

12: mosquitto version 1.3.5 (build date 2014-10-18 21:06:44+0100) starting
12: Config loaded from /etc/mosquitto/mosquitto.conf.
12: Opening ipv4 listen socket on port 1883.
12: Opening ipv6 listen socket on port 1883.
12: Warning: Address family not supported by protocol
1428487122: New connection from 192.168.0.12 on port 1883.
1428487122: New client connected from 192.168.0.12 as MQTT_FX_Client (c1, k60).
1428487122: Sending CONNACK to MQTT_FX_Client (0)
1428487126: Received DISCONNECT from MQTT_FX_Client
1428487145: New connection from 192.168.0.12 on port 1883.
1428487145: New client connected from 192.168.0.12 as MQTT_FX_Client (c1, k60).
1428487145: Sending CONNACK to MQTT_FX_Client (0)
1428487155: Received PUBLISH from MQTT_FX_Client (d0, q0, r0, m0, 'test/topic', ... (6 bytes))
1428487157: Received PUBLISH from MQTT_FX_Client (d0, q0, r0, m0, 'test/topic', ... (6 bytes))
1428487159: Received DISCONNECT from MQTT_FX_Client
1428487672: New connection from 192.168.0.12 on port 1883.
1428487672: New client connected from 192.168.0.12 as Pascal_120742696 (c1, k60).
1428487672: Sending CONNACK to Pascal_120742696 (0)
1428487682: Received SUBSCRIBE from Pascal_120742696
1428487682:     test/tt (QoS 0)
1428487682: Pascal_120742696 0 test/tt
1428487682: Sending SUBACK to Pascal_120742696
1428487688: Received UNSUBSCRIBE from Pascal_120742696
1428487688:     test/tt
1428487688: Pascal_120742696 test/tt
1428487688: Received DISCONNECT from Pascal_120742696
1428487837: mosquitto version 1.3.5 terminating
1428487837: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
12: mosquitto version 1.3.5 (build date 2014-10-18 21:06:44+0100) starting
12: Config loaded from /etc/mosquitto/mosquitto.conf.
12: Opening ipv4 listen socket on port 1883.
12: Opening ipv6 listen socket on port 1883.
12: Warning: Address family not supported by protocol
1428488047: New connection from 192.168.0.12 on port 1883.
1428488047: New client connected from 192.168.0.12 as Pascal_120742696 (c1, k60).
1428488047: Sending CONNACK to Pascal_120742696 (0)
1428488059: Received SUBSCRIBE from Pascal_120742696
1428488059:     test/topictout (QoS 0)
1428488059: Pascal_120742696 0 test/topictout
1428488059: Sending SUBACK to Pascal_120742696
1428488080: Received UNSUBSCRIBE from Pascal_120742696
1428488080:     test/topictout
1428488080: Pascal_120742696 test/topictout
1428488080: Received DISCONNECT from Pascal_120742696
1428488135: mosquitto version 1.3.5 terminating
1428488135: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
Je dois sans doute avoir un problème de librairie. Je vais faire les manips de domos pour remettre ça dans l'ordre. Et jvais regarder ton lien trankil. Si je desinstall le plugin, est-ce que cela desinstall tout? Ainsi, jpourrais repartir sur de bonnes bases. Sinon, ouais on dirait un problème de namespace ou qq chose dans le genre. Car si Lunarok le fait tourner, c'est qu'il doit y avoir qq chose qui diffère entre son environnement pour dev le plugin et notre install.
Mysensors
Jeedom en stable/RPI3
https://github.com/scalz

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: [Sujet officiel] Plugin MQTT

Message par lunarok » 08 avr. 2015, 13:35

Bon, j'ai pas trop de temps. Mais juste un point : pas d'installer depuis les sources
@trankil : merci de ne pas donner ce genre de manip sur un sujet officiel. Ici c'est le script d'installer et si il a des problèmes on va le traiter
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: [Sujet officiel] Plugin MQTT

Message par lunarok » 08 avr. 2015, 15:00

Mise à jour publiée, elle est plus verbeuse (merci de cocher debug dans la conf des logs jeedom si la connexion ne se fait toujours pas)
Toujours aucun soucis de mon côté, connexion et souscription ok, publication ok

Il y a d'autres utilisateurs avec l'install fonctionnelle

Pour le dépot Debian et arm, effectivement dernière version dispo 1.3.5, mais la lib PHP demande 1.2 minimum donc ca devrait fonctionner (c'est le cas de retour sur github) Le mainteneur des dépots n'a plus de Pi pour faire les compilations et tests. Si une bonne âme en a un de trop, je suis sur qu'il serait preneur.
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

Répondre

Revenir vers « [Plugin Tiers] MQTT »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités