Problème Console & Arduino + ESP8266


#1

Bonjour,

J’ai plusieurs questions / problèmes avec mon installation :

  1. J’ai installé le serveur + console + sentinelle sur une VM debian dédié et je n’ai jamais aucune info dans la console, j’ai pourtant refait une installation propre au cas ou. J’ai testé une installation sur Windows et là pas de problème, la console fonctionne.

  2. J’ai installé graylog et kibana et j’ai plusieurs questions :
    2.1. Quand une state object arrive a expiration il serait intéressant de pouvoir le signaler et de le passer à 0.
    L’utilité est pour kibana, je l’utilise pour suivre le CPU d’un pc par exemple, mais quand il est éteint pendant puis rallumé, kibana ne passe pas le CPU à 0 et tire un trait entre la dernière valeur reçus et la nouvelle. Du coup, à voir le graphique, le PC n’était pas éteint.
    Si il y a un moyen de le gérer dans kibana, je veux bien vos conseils :slight_smile:

2.2. Est-il possible de calculer le coût d’une consommation électrique ? (Au total et pour une période)
2.3. Avez-vous une solution pour superposer différents relevés du package HWMonitor dans kibana ?

  1. Je souhaite utiliser un Arduino Mega avec un module Wi-Fi ESP8266 pour faire la relève de plusieurs capteurs.
    J’ai fait un script basique avec la lib WiFiEsp.h (qui fonctionne correctement) avec ArduinoJson (V5.13.2) et Constellation (V2.4.18186) et j’ai une erreur à la compilation :

Constellation.h:37:20: fatal error: base64.h: No such file or directory
#include <base64.h>

Je suis allé cherché la lib sur internet pour la rajouter mais ensuite j’ai pleins d’autres lib qui manquent…

Merci pour votre aide !


#2

Bonsoir Kuma,

Oui tout à fait il s’agit d’un bug lié à Mono 5.10 ou + qui a été corrigé en Avril dans la branche “beta” (voir ce post : Performances sur RPi3) :

Pour lancer l’update vers la beta : wget -O install.sh https://developer.myconstellation.io/download/installers/install-linux.sh && chmod +x install.sh && ./install.sh beta

J’avais proposé un bout de code sur ce post : [C#] Evènement mise à jour SO qui surchargeait le StateObjectCollection pour ajouter un événement C# à l’expiration d’un SO dans une collection.
Tout est expliqué sur le post ! De ce fait il serait possible d’ajouter un handler pour pusher dans graylog une valeur à 0 dès que le SO expire.

La question est liée à Graylog/Kibana si j’en crois les n°. Oui on peut au niveau de kibana ajouter des “champs scriptés” ( Scripted fields) dans Settings > Indices et/ou dans graylog ajouter des Rules.
On peut donc inclure le coût lié et le “grapher” ensuite dans Kibana!

Oui vous pouvez sur les X-Axis faire un "Split Lines " en choisissant un “Sub Aggregation” de type “Terms” puis spécifier le champs de cette sous agrégation. Par exemple le “stateobjects.sentinelname” pour avoir plusieurs courbes par machine.

Hum je n’ai pas tester avec un Mega ! Deux pistes de réponses :

  1. Pourquoi un Arduino couplé à un ESP8266 ?? Pourquoi ne pas utiliser juste un ESP8266 tout court ?
  2. La lib base64 a été ajouté très récemment (le 5 Juillet) pour supporter l’authen HTTP : https://github.com/myconstellation/constellation-arduino/commit/afa12cc74dbd2ce902f5b1ef82ebd0fc8f66048c. De ce fait soit vous downgradez dans la version précédente (via l’arduino IDE vous pouvez choisir la version des lib) soit vous modifiez mon code pour supprimer les refs à base64 (c’est à dire la ligne 37 pour l’include et la méthode setAuthorization(user, password) entre les lignes 1015 et 1023).

Bon développement :wink:

Sébastien


#3

Bonjour,

Merci pour vos réponses !

Pour la console c’est ok avec la version beta :slight_smile:

Pour envoyer un 0 après l’expiration il faut que je postasse, j’ai pas bien compris et je ne maîtrise ni VS ni le c++ et encore moins les packages constellation…

Pour calculer le tarif d’une consommation elec, je ne vois pas d’autre moyen que de le calculer directement dans l’ampèremètre et d’envoyer un stateobject avec le montant pour les x dernières secondes/minutes.
Le problème dans kibana c’est que je ne vois pas comment faire une moyenne des values sur 1min par exemple et appliquer la multiplication sur cette donnée. Ils parlent bien d’aggrégation mais je ne comprends pas comment l’utiliser…

Super le Split en X sur Terms, c’est exactement ce que je cherchais !

Concernant la compilation, j’avais déjà testé et j’ai :

fatal error: type_traits: No such file or directory
#include <type_traits>

J’ai lu sur un post que c’est lié au fait que selon la carte choisi les librairies incluses ne sont pas les même, problème c’est que la carte choisi est la bonne :confused:

Je veux utiliser un arduino Mega pour utiliser un certains nombre d’entrées analogiques (pour mes ampèremètres), le but au final est d’avoir un bandeau de prises pilotés et logués unitairement.

J’ai aussi le projet d’utiliser un ESP12 pour gérer une prise isolé.

Merci d’avance pour votre aide ! :slight_smile: