Aller au contenu

Messages recommandés

Posté(e) (modifié)

Bonjour à tous,

 

J'aurais aimé savoir si quelqu'un utilise MQTT avec Fibaro.

J'avoue ne pas tout comprendre (comme d'ab) de comment tout cela fonctionne.

 

Il semble que ce soit possible chez Fibaro https://manuals.fibaro.com/knowledge-base-browse/hc3-quick-apps-mqtt-client/

 

Après je lis des termes comme Brockers etc.. 

 

Le serveur Blueiris peut communiquer avec MQTT, ce qui est bien en cas d'un évènement avec une caméra, qu'il soit possible d'avoir une action avec notre HC3.

 

J'aimerais savoir comment tout cela fonctionnent.

De ce que je comprends, le périphérique (dans mon cas la caméra) doit disposer du protocole MQTT, dans le serveur j'indique les informations du broker, et ensuite il faut une relation avec la HC3 pour par exemple lancer les fumigènes :lol:

 

Est-ce que c'est cela le fonctionnement ?

 

Merci à vous

Domodial

Modifié par Domodial
Posté(e)

Déjà pour utiliser MQTT il te fait un "brocker", qui est en fait le serveur qui va centraliser tous les messages MQTT.

Le plus connu, et surtout gratuit, c'est Mosquitto.
Perso je le fais tourner dans une VM de mon serveur.

 

Ensuite, si tu écris un QuickApp sur la HC3, alors celui-ci peut publier des messages vers le brocker, ou bien alors s'abonner à certains topics et ainsi être automatiquement notifié dès lors qu'un message est publié par un autre client.

C'est justement ce qu'explique la doc Fibaro.

Mais comme dit ne intro, il te faut un Brocker, et ça ne peut pas être la HC3, car impossible d'installer Mosquitto dessus.

Posté(e)

Hello @Lazer 

Quand tu dis : qui est en fait le serveur qui va centraliser tous les messages MQTT

 

ça veut dire quoi exactement "Messages" ?

En fait je me trompe peut être de chemin... 

 

Ce que je veux faire (entre autres) c'est lorsque la plaque d'immat est lu par la caméra, ça ouvre le portail.

Pour communiquer entre le serveur vidéo et HC3 j'ai MQTT, port COM et un autre truc (me souviens plus).
 

Posté(e)
il y a 19 minutes, Domodial a dit :

lorsque la plaque d'immat est lu par la caméra, ça ouvre le portail.

sympa l'idée. Je vois quand-même 2 "objections" :

  1. LRGAL : est-ce autorisé de filmer la voie publique ?
  2. SECURITE : si l'interpréteur se trompe dans sa lecture, ou que quelqu'un se promène dans la rue avec une copie de ta plaque (ok, peu probable, mais un voisin qui ne t'aime plus), ...; ton portail s'ouvre
Posté(e)

MQTT est un protocole de communication léger et centralisé.

Je ne vais pas tout réexpliquer, déjà parce que je suis loin de maitriser le protocole, et aussi parce qu'il y a des tonnes d'explications très claires en ligne sur ce qu'est MQTT.

 

Après je n'ai jamais utilisé Blueiris, donc je ne connais pas ses possibilités.
Est-ce que MQTT est le meilleur choix ?
Ou bien utiliser une API HTTP classique ?
Je n'en sais rien, il va te falloir faire quelques recherches, mais dans tous les cas, pas mal de développement en LUA pour intégrer ça sur la HC3, car personne ne l'ai fait (en tout cas, personne n'a partagé son éventuel travail à ce sujet)

 

Avantage de MQTT : la légèreté des message.
Inconvénient : la communication entre Bluiris et la HC3 nécessite un tiers (le broker), donc un SPOF supplémentaire et une architecture plus lourde à maintenir (sauf si tu utilises MQTT pour d'autres usages sur le réseau)

 

Avantage d'une API http : communication directe.

Inconvénient : plus lourd (mais la HC3 en a suffisamment dans le ventre pour que ça ne soit pas un problème)... reste à voir la charge coté serveur Bluiris.

 

Mais pour revenir à ta question de base, oui Fibaro permet de faire du MQTT avec la HC3, il est expliqué dans la doc que tu as linké comment programmer un client MQTT sur la HC3.

Et j'ajoute qu'il te faudra un broker sur ton réseau, tel que Mosquitto.

 

 

Posté(e) (modifié)
il y a 2 minutes, jojo a dit :

LRGAL : est-ce autorisé de filmer la voie publique ?

C'est totalement illégal en France.

 

Il faut obtenir des autorisations qui ne sont jamais données au particulier.

Après c'est comme d'habitude, pas vu pas pris, reste qu'une caméra tournée vers la rue c'est généralement très visible...

 

Modifié par Lazer
Posté(e) (modifié)
il y a une heure, jojo a dit :

sympa l'idée. Je vois quand-même 2 "objections" :

  1. LRGAL : est-ce autorisé de filmer la voie publique ?
  2. SECURITE : si l'interpréteur se trompe dans sa lecture, ou que quelqu'un se promène dans la rue avec une copie de ta plaque (ok, peu probable, mais un voisin qui ne t'aime plus), ...; ton portail s'ouvre

Pour le point 1 en gros je film tout et partout et en infini, même sur la table de la cuisine des voisins :lol:

Plus sérieusement la cam du parking pointe sur un parking privé, et seul celui ci est visible sur l'image, il n'y a pas de masque car rien à masquer.

 

Le point 2 je n'y avais pas pensé ^^ Mouarf !

Mais je pense que je peux lui demander de reconnaitre parfaitement la calandre et la marque du véhicule. Après sauf aller chercher une calandre de même marque à la casse et même couleur ça va être chiant pour le gars lol

 

Modifié par Domodial
  • 1 mois après...
Posté(e)

Hello, 

 

Je viens d'installer un container Mosquitto.

Je peux connecter blue iris et robonect. 

Les tests effectués lors de l'activation des clients fonctionnent.

 

C'est déjà un début. Mais loin d'avoir fait le tour du sujet. 

 

  • 2 mois après...
Posté(e)

Salut @Domodial,

Aurais-tu avancé dans l'utilisation et l'interfaçage de ta QA avec mqtt? Je demande ça, car je vais devoir me pencher de près dessus pour une utilisation prochaine pour mettre en relation ma PAC Altherma avec la box HC3. Le dialogue avec Daikin a fait l'objet de quelques posts par le passé, mais il est vrai que Daikin a plutôt verrouillé les choses... ou alors ils faut acheter toutes leurs passerelles qui ne transmettent finalement que peu de données!

Je devrais ouvrir un topic à ce sujet prochainement afin de présenter mon projet et comment la solution que je souhaite mettre en place permet d'interconnecter le matériel. Je pense qu'il y a plein d'utilisateur que cela pourrait intéresser (mais aussi plein de variantes possibles selon les modèles de PAC). Je sais déjà que je m'aventure dans des terres inconnues (et que c'est largement hors champ de mes compétences), mais j'espère que les "pointures" de ce forum pourront être de bon conseil et éventuellement mettront la main à la patte pour donner un coup de pouce de temps en temps...

 

Peut-être qu'une QA dédiée pour gérer les échanges mqtt entre le broker, les publishers et les suscribers pourrait décomposer les étapes en vue d'une réutilisation dans nos QA respectives ? Ou est-ce que ça alourdirait l'architecture ? des avis @Lazer ? @Nico ? @jojo ?

 

Posté(e)

A mon avis pas besoin de QA dédié pour gérer les échanges MQTT, ça alourdirait le fonctionnement du bouzin.
Je ne suis pas fan des QA interdépendants les uns des autres, ça rend le système plus complexe à maintenir... suivi des versions, indisponibilité d'un QA qui impacte les autres, etc.

 

En plus, l'utilisation de MQTT est vraiment facile, ça se fait en quelques lignes dans un QA, c'est pas beaucoup plus compliqué que de faire une requête HTTP, et moins compliqué que de faire des communications TCP/UDP avec une socket.

Voir la doc de Fibaro qui donne la syntaxe à utiliser. Limite la doc est plus compliquée sur l'utilisation. Au moins pour une fois ils ont rédigé une doc complète sur le sujet.

 

En fait comme toujours, la difficulté c'est d'organiser correctement la structure de son QA, puisque tu mentionnais sur un autre topic que tu n'es pas très à l'aise avec ça.

 

Posté(e)

Merci @Lazer pour ton retour.

J'ai réussi à mettre en place la liaison entre le broker, le QA (en cours de développement) et l'équipement qui diffuse les messages. J'ai une question concernant le message que je récupère :

[20.12.2023] [21:05:09] [DEBUG] [DAIKIN ALTHERMA 3 ID:390]: onMessage: {"qos":0,"retain":false,"topic":"espaltherma\/ATTR","payload":"[{\"Operation Mode\":\"Fan Only\",\"Thermostat ON\/OFF\":\"OFF\",\"Defrost Operation\":\"OFF\",\"Error type\":\"Normal\",\"Error Code\":\" 0\",\"Outdoor air temp.(R1T)\":11.5,\"O\/U Heat Exch. Temp.\":0,\"Heat exchanger mid-temp.\":10,\"Liquid pipe temp.(R6T)\":0,\"INV primary current (A)\":0,\"INV secondary current (A)\":0,\"INV frequency (rps)\":0,\"INV frequency 2 (rps)\":0,\"STD Compressor 1\":\"OFF\",\"STD Compressor 2\":\"OFF\",\"Fan 1 (10 rpm)\":0,\"Fan 2 (step)\":0,\"I\/U operation mode\":\"DHW\",\"Thermostat ON\/OFF\":\"OFF\",\"Freeze Protection\":\"OFF\",\"Silent Mode\":\"OFF\",\"Freeze Protection for water piping\":\"OFF\",\"Error Code\":\" 0\",\"Error detailed code\":0,\"Error type\":\"Normal\",\"DHW setpoint\":47,\"LW setpoint (main)\":26.2,\"Benefit kWh rate power supply\":\"OFF\",\"Solar input\":\"OFF\",\"SG 1 contact status\":\"OFF\",\"SG 2 contact status\":\"OFF\",\"3way valve(On:DHW_Off:Space)\":\"OFF\",\"BSH\":\"OFF\",\"BUH Step1\":\"OFF\",\"BUH Step2\":\"OFF\",\"BPH\":\"OFF\",\"Water pump operation\":\"ON\",\"Leaving water temp. before BUH (R1T)\":21.9,\"Leaving water temp. after BUH (R2T)\":22.1,\"Inlet water temp.(R4T)\":21.8,\"DHW tank temp. (R5T)\":44.6,\"Indoor ambient temp. (R1T)\":20.8,\"Reheat ON\/OFF\":\"OFF\",\"Storage eco ON\/OFF\":\"OFF\",\"Storage comfort ON\/OFF\":\"OFF\",\"Powerful DHW Operation. ON\/OFF\":\"OFF\",\"Space heating Operation ON\/OFF\":\"ON\",\"System OFF (ON:System off)\":\"OFF\",\"LW setpoint (add)\":38,\"RT setpoint\":20.5,\"Add. Ext. RT Input Heat.\":\"OFF\",\"Main RT Heating\":\"OFF\",\"Pwr consumption limit 4\":\"OFF\",\"Pwr consumption limit 3\":\"OFF\",\"Pwr consumption limit 2\":\"OFF\",\"Pwr consumption limit 1\":\"OFF\",\"Tank preheat ON\/OFF\":\"OFF\",\"Circulation pump operation\":\"OFF\",\"Space H Operation output\":\"ON\",\"Flow sensor (l\/min)\":22.1,\"Water pressure\":1.9,\"Water pump signal (0:max-100:stop)\":24,\"Boiler DHW Demand\":\"OFF\",\"Add pump\":\"OFF\",\"Main pump\":\"OFF\",\"2nd Domestic hot water temperature\":46.3,\"Target delta T heating\":4,\"M5VIN\":\"5.04V\",\"M5AmpIn\":\"60mA\",\"M5BatV\":\"4.17V\",\"M5BatCur\":\"0mA\",\"M5BatPwr\":\"0mW\",\"WifiRSSI\":\"-75dBm\",\"FreeMem\":\"187284\"}]","dup":false}

J'aimerais récupérer chaque paramètre de "payload" pour les mettre dans une table avec le nom du paramètre et la valeur qui lui est attribuée. Existe-t-il une fonction spéciale pour "décoder" l'ensemble de cette liste (jsonDecode)? Ou pas le choix faut-il créer des fonctions pour venir découper la liste et faire la reconnaissance des différents paramètres ?

Autre question : est-ce que le fait que les noms des paramètres contiennent des espaces est un pb ?

 

Posté(e)

Oui c'est ça, avec json.decode(), tu trouveras pas mal d'exemples d'utilisation sur le forum.

Tu obtiendras une table avec tous les champs/valeurs bien rangés.
Attention je vois que tu as une structure JSON imbriquée, donc ça te donneras des tables à plusieurs niveaux.

 

Les espaces dans le nom des champs c'est un peu pénible mais pas bloquant.

Il faut utiliser des crochets :

local maValeur1 = maTable.monChamp
local maValeur2 = maTable["mon champ avec espace"]

 

×
×
  • Créer...