Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

[Plugin Tiers][Sujet Principal] Jeedouino

Pour échanger sur les plugins classés en catégorie "Protocoles domotiques"
Avatar de l’utilisateur
gdelaune
Timide
Messages : 28
Inscription : 03 janv. 2019, 09:10

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par gdelaune » 23 mai 2019, 06:22

Dans ce cas il te faut un programme en python qui pilote ton afficheur, et que tu dois exécuter en tant que service au démarrage du linux.
Tu peux avoir plusieurs programmes/services qui affichent tout à tour "stade 1 ok", "stade 2 ok", etc...
Mais tout ceci n'a rien à voir avec jeedouino.

Avatar de l’utilisateur
sheep300
Actif
Messages : 1202
Inscription : 27 mai 2015, 23:27
Localisation : la rochelle

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par sheep300 » 23 mai 2019, 08:40

gdelaune a écrit :Dans ce cas il te faut un programme en python qui pilote ton afficheur, et que tu dois exécuter en tant que service au démarrage du linux.
Tu peux avoir plusieurs programmes/services qui affichent tout à tour "stade 1 ok", "stade 2 ok", etc...
Mais tout ceci n'a rien à voir avec jeedouino.
Merci de ton conseil la partie qui concernait jeedouino c'est que je ne sais pas comment appeler la partie print.lcD de jeeduino

Envoyé de mon Mi MIX 2S en utilisant Tapatalk

Damien

christbd
Timide
Messages : 49
Inscription : 18 déc. 2016, 15:58

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par christbd » 23 mai 2019, 19:15

Bonjour à tous
Est ce que quelqu'un sait s'il est envisagé le développement d'une option de ce plugin pour une carte s'intitulant Arduino Méga 2560 R3 avec Wifi intégré, carte de chez Wemos, dont lien ci dessous :
https://www.banggood.com/Wemos-Mega-WiF ... ehouse=CN
ou
est ce que quelqu'un sait comment modifier le sketch distribué par le plugin Jeedouino pour faire marcher cette carte sous Jeedom ?
Il faudrait bien sûr la partie ESP 8266 ET la partie Mega 2560 ...
Merci
Chris
RPI 3, Arduino, Gateway Xiaomi Aquara
Zwave, Thermostat DANFOSS, VR Fibaro

Jef73
Timide
Messages : 366
Inscription : 27 déc. 2017, 10:41
Localisation : Nantes

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Jef73 » 04 juin 2019, 21:46

Bonjour,
Est-ce possible d'intégrer le support pour les modules BME280 SVP ?
Ils sont pratiquement aux même prix que les AM2302, mais ils remontent la pression barométrique en plus des température et humidité.

Loutre38
Timide
Messages : 8
Inscription : 01 juin 2019, 13:16

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Loutre38 » 05 juin 2019, 00:32

Bonsoir,

Je suis nouveau sur Jeedom (avant sur domoticz),
J'ai 3 DS18B20 sur le GPIO 4 (pin 7) de raspberry (elles marchaient très bien sur domoticz).
En ssh j'ai bien les 3 sondes + les valeurs mais rien dans jeedom avec le plugins Jeedouino.
J'ai du mal le configuré.
Pouvez vous m'aider svp ?
Merci

Bono2007 a écrit :
11 févr. 2019, 21:35
Petite contribution pour une sonde DS18B20 sur un Raspberry Pi zéro W

A partir de : https://jeedom-facile.fr/index.php/2018/12/11/la-raspberry-blea-jeedouino-snips/

Procéder de la même façon pour l'installation basique de Raspbian + wpa_supplicant.conf + ssh
Une fois en ssh je n'ai pas fait exactement pareil :

Code : Tout sélectionner

sudo su
apt update && apt upgrade -y && apt dist-upgrade -y
apt install nginx php5-fpm -y
Pas de

Code : Tout sélectionner

update-alternatives --config php 
Ensuite comme benj :

Code : Tout sélectionner

cd /var/www/html
wget http://ip/plugins/jeedouino/ressources/JeedouinoExt.zip
unzip JeedouinoExt.zip
cd JeedouinoExt
/bin/bash JeedouinoExt.sh

chmod -R 775 $(pwd)
chown www-data:www-data $(pwd)

Puis Jeedom etc.

Attention de bien cocher RPI sans jeedom


CABLAGE :
DS18B20 : cablage
https://leanpub.com/RPiMRE/read#singleTempMeasurement
---------------------------------------------------------------
Vérifier que la sonde fonctionne :

Code : Tout sélectionner

nano /boot/config.txt
rajouter dtoverlay=w1-gpio
ctrl+o ctrl+x
reboot

ensuite :

Code : Tout sélectionner

ls /sys/bus/w1/devices
Repérer 28-xxxxxxxxxxx ---> C'est le serial unique de la sonde

Code : Tout sélectionner

cat /sys/bus/w1/devices/28-xxxxxxxxxxx/w1_slave
tadaaaa :
32 01 55 05 7f 7e 81 66 2a : crc=2a YES
32 01 55 05 7f 7e 81 66 2a t=19125

soit 19.125
pi 3 b+ Z-Wave+ Z-Stick GEN5
Vision ZM1602+ PST02-A 4 in 1 + hank HKZW-DWS01 x2 + Aeotec ZW116 x2 + FGBS-222 DS18B20x2 + DSM 213 + surveillance station + Foscam R4M
Jeedom

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par benj29 » 06 juin 2019, 20:59

Bonsoir,

Je tourne sous jeedouinoext en PI3. Depuis quelques temps, mes PI3 se figent. Les températures ne remontent plus (ne changent plus). Pourtant les valeurs remontent dans Jeedom.
J'ai toujours accès au php, html, ssh aucun souci. Juste les valeurs restent les mêmes et la remontée ne se fait plus. Le démon reste OK. Il me faut réinstaller jeedouino, redémarrer...

Quelqu'un a le même phénomène ?

Filoucaenais
Timide
Messages : 125
Inscription : 01 juil. 2014, 09:00

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Filoucaenais » 09 juin 2019, 17:51

Bonjour à tous

je me bats avec jeeduino depuis quelque temps afin de mettre à jour jeedom.
j'ai besoin d'une communication avec un arduino Nano en USB, un NodeMCU V3.
ma config : PC avec debian 9.9 et la derniere version de jeedom.
je vais commencer avec le nodeMCU V3.
j'ai suivi la doc et
j'ai bien réussi à mettre le programme générer par jeedom.
j'arrive à faire des ping mais jeedom ne le vois qu'une fois, aprés plus rien.
je n'ai rien dans les logs non plus.
serait-il possible d'avoir un peu plus d'information de comment le debuger ?
voici les log du nodeMCU de l'arduino :
17:33:35.827 -> JEEDOUINO IS HERE.
17:33:35.827 -> Connecting to freebox_Carre
17:33:36.338 -> ...Conf. Pins:
17:33:37.359 ->
17:33:37.359 ->
17:33:37.359 -> EqLogic:1
17:33:37.359 ->
17:33:37.359 -> WiFi connected
17:33:37.359 -> 192.168.1.44
17:33:37.671 ->
17:33:37.671 -> Sending : &ipwifi=192.168.1.44
17:33:37.671 ->
17:33:37.671 -> To eqLogic: 1
17:33:38.171 -> At IP: 192.168.1.20
17:37:26.265 ->
17:37:26.265 -> RECEIVING:
17:37:26.265 -> C..l.............l...C
17:37:26.265 ->
17:37:26.265 -> RECEIVING:
17:37:26.265 -> B0M
17:37:26.312 ->
17:37:26.312 -> Sending : &REP=BMOK
17:37:26.312 ->
17:37:26.312 -> To eqLogic: 1
17:37:26.637 -> At IP: 192.168.1.20
17:37:27.078 ->
17:37:27.078 -> RECEIVING:
17:37:27.078 -> E1Q
17:37:27.125 ->
17:37:27.125 -> Sending : &REP=EOK
17:37:27.125 ->
17:37:27.125 -> To eqLogic: 1
17:37:27.453 -> At IP: 192.168.1.20
17:37:27.881 ->
17:37:27.881 -> RECEIVING:
17:37:27.881 -> I192.168.1.20P
17:37:27.915 ->
17:37:27.915 -> Sending : &REP=IPOK
17:37:27.915 ->
17:37:27.915 -> To eqLogic: 1
17:37:28.272 -> At IP: 192.168.1.20
17:38:51.393 ->
17:38:51.393 -> RECEIVING:
17:38:51.393 -> GET / HTTP/1.1
17:38:51.521 ->
17:38:51.521 -> Sending : &REP=NOK
17:38:51.521 ->
17:38:51.521 -> To eqLogic: 1
17:38:51.879 -> At IP: 192.168.1.20


merci d'avance pour votre aide.

Magfel
Timide
Messages : 1
Inscription : 02 juil. 2019, 11:14

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Magfel » 02 juil. 2019, 11:24

Bonjour à tous,
Je suis nouveau sur le forum, j'ai scruté une bonne partie des pages sans trouver la solution à mon problème.
Mon arduino UNO est connecté en usb à mon NAS avec une machine virtuelle. Je pilote un relais (pin12) et la sortie 13 (LED) sans aucune difficulté.
J'ai connecté une sonde DHT11 (pin2) qui ne me renvoie aucune information, j'ai ajouté une sonde de temperature 18DS20 (pin4), même chose.
J'ai pourtant bien créé le sketch / Bibliothèques pour le compiler et le téléverser à partir du PC mais rien n'y fait, j'ai un retour vide sur ces deux sondes.
Quelqu'un peut-il m'aider ? Je suis à court d'idée ....

Faut-il installer "Arduinos sur port USB d'un Raspberry PI" car je suis sur un port USB même si c'est sur un NAS ?

cyber451
Timide
Messages : 56
Inscription : 30 avr. 2015, 15:10
Localisation : Orléans

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par cyber451 » 18 juil. 2019, 10:23

Bonjour à tous, je viens d'installer le plugin Jeedouino sur un rpi(local) pour pouvoir utiliser les GPIO (local)
J'ai bien installé les dépendances dont RPi.GPIO mais je ne vois aucun démon dans l'onglet "Démons"

Je ne peut donc rien ajouter quand je vais dans Plugins/Protocole Domotique/Jeedouino (page blanche)

Ai je oublié quelque chose ?
Jeedom 3.3.27 sur RPI3 & Rfxcom433 & Z-wave & Conbee v2

ericzen
Timide
Messages : 55
Inscription : 28 oct. 2014, 21:52

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par ericzen » 28 juil. 2019, 13:55

Bonjour à tous,

Je reviens vers vous car je n'arrive toujours pas à faire fonctionner correctement le module Jeeduino avec mes propres sketchs.

J'ai une sonde permettant de mesurer le ph. J'arrive sans aucune difficulté à remonter les valeurs lues. Par contre, les valeurs remontent toutes les secondes.

J'aimerais qu'elles ne remontent que toutes les minutes comme les autres données.

J'ai essayé de changer cette partie du code comme ceci mais rien n'y fait. Dans ce cas, je n'ai plus de lecture du tout de mes valeurs.

#if (UserSketch == 1)
//UserLoop(); // Appel de votre loop() permanent
if (NextRefresh<millis()) UserLoop(); // Appel de votre loop() toutes les 60s
#endif

Donc je sèche.

Qui pourrait m'aider svp ?

benj29
Actif
Messages : 3982
Inscription : 26 mars 2017, 09:57
Contact :

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par benj29 » 30 juil. 2019, 22:15

@revlys,

Petite doléance.
J'ai remarqué que des fois lors de coupure électrique d'une PI distante où est déployée Jeedouino, le plugin décide de renvoyer la valeur RESET !
Argh... horrible ! Surtout quand cela fait des mois que ça marche !

Ne serait-il pas possible de mettre à jour cette valeur par exemple 1 fois par heure ou par jour (voir une commande qu'on piloterait par scénario ?

Image

Depuis j'ai remis une nouvelle valeur de RESET, mais ce serait bien par exemple, que chaque heure elle se rafraichisse, voir c'est nous-même qui poussions une valeur "à jour" quand on le souhaite :)

Image

Je ne sais pas si je suis clair :)

Avatar de l’utilisateur
snakes68
Timide
Messages : 17
Inscription : 16 juin 2019, 17:41

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par snakes68 » 07 août 2019, 07:23

Bonjour, je suis a la recherche d'information pour la programation d'un lcd 2x16 connecter en i2c , la partie sketch est déjà régler jais bien le message de démarrage jeeduino v.... mais je ne sais pas comment configurer mes pin sur le plugins jeeduino et ni comment envoier le message que le lcd doit afficher

Materiel:
Arduino méga + shield ethernet
Lcd 16x 2 + i2c
- Jeedom : 3.3.29
- Raspbian : 10.0 BUSTER LITE | Stretch
- Materiel : RFXcom|Arduino mega shield ethernet|Philips Hue|Amazon Alexa
|Broadlink|Netatmo welcome |syno video station|syno surveillance station
- Raspberry Pi : Pi 3 B+

Theguilt
Timide
Messages : 196
Inscription : 04 nov. 2018, 07:48

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Theguilt » 10 août 2019, 17:22

Bonjour, je galère franchement avec ce plugin et je suis concé au tout début. Qu"'es ce que je fait mal svp?

Merci
Pièces jointes
Capture2.JPG
Capture2.JPG (112.52 Kio) Consulté 287 fois
Capture3.JPG
Capture3.JPG (72.17 Kio) Consulté 287 fois

Avatar de l’utilisateur
snakes68
Timide
Messages : 17
Inscription : 16 juin 2019, 17:41

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par snakes68 » 10 août 2019, 17:30

Quel est ta méthode de connections pour le arduino ? Usb ou ethernet ?

Envoyé de mon SM-N950F en utilisant Tapatalk


- Jeedom : 3.3.29
- Raspbian : 10.0 BUSTER LITE | Stretch
- Materiel : RFXcom|Arduino mega shield ethernet|Philips Hue|Amazon Alexa
|Broadlink|Netatmo welcome |syno video station|syno surveillance station
- Raspberry Pi : Pi 3 B+

Theguilt
Timide
Messages : 196
Inscription : 04 nov. 2018, 07:48

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Theguilt » 10 août 2019, 19:02

en ethernet

laurentm
Timide
Messages : 23
Inscription : 14 déc. 2017, 22:05

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par laurentm » 11 août 2019, 19:01

Bonjour,

Quelqu'un aurait-il réussi à utiliser le plugin pour le GPIO sur un orangePi? Si oui, je serais preneur d'un conseil...

Merci à tous! Laurent

crivchri
Timide
Messages : 15
Inscription : 27 août 2018, 22:31

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par crivchri » 13 août 2019, 09:03

Bonjour,

Est-il possible d'utiliser un capteur Pimoroni BME680 Breakout, connecté en I2C à un Raspberry Pi, pour récupérer les valeurs de température, humidité, pression et qualité de l'air à l'aide de ce plugin?

Dans la configuration des PINs, pour le GPIO2 I2C (SDA), je ne vois que le capteur de pression BMP085/180 dans la liste.

Merci d'avance pour votre aide!

Envoyé de mon Pixel en utilisant Tapatalk


Jef73
Timide
Messages : 366
Inscription : 27 déc. 2017, 10:41
Localisation : Nantes

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Jef73 » 13 août 2019, 09:40

crivchri a écrit :
13 août 2019, 09:03
Bonjour,

Est-il possible d'utiliser un capteur Pimoroni BME680 Breakout, connecté en I2C à un Raspberry Pi, pour récupérer les valeurs de température, humidité, pression et qualité de l'air à l'aide de ce plugin?

Dans la configuration des PINs, pour le GPIO2 I2C (SDA), je ne vois que le capteur de pression BMP085/180 dans la liste.

Merci d'avance pour votre aide!

Envoyé de mon Pixel en utilisant Tapatalk
Non ce capteur n'est pas supporté non plus malheureusement :(
J'ai demandé pour un 280 en haut de cette même page, mais je n'ai pas eu de retour encore :
Jef73 a écrit :
04 juin 2019, 21:46
Bonjour,
Est-ce possible d'intégrer le support pour les modules BME280 SVP ?
Ils sont pratiquement aux même prix que les AM2302, mais ils remontent la pression barométrique en plus des température et humidité.
Il utilise les mêmes ports de communication que ton 680 si je ne me trompe pas.
Du coup, j'ai installé les librairies AdaFruit et fait un petit script Python qui remonte les infos dans un virtuel toutes les x minutes.
Tu dois pouvoir faire pareil avec le tiens à vue de nez ;)

crivchri
Timide
Messages : 15
Inscription : 27 août 2018, 22:31

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par crivchri » 16 août 2019, 08:56


Jef73 a écrit :
crivchri a écrit :
13 août 2019, 09:03
Bonjour,

Est-il possible d'utiliser un capteur Pimoroni BME680 Breakout, connecté en I2C à un Raspberry Pi, pour récupérer les valeurs de température, humidité, pression et qualité de l'air à l'aide de ce plugin?

Dans la configuration des PINs, pour le GPIO2 I2C (SDA), je ne vois que le capteur de pression BMP085/180 dans la liste.

Merci d'avance pour votre aide!

Envoyé de mon Pixel en utilisant Tapatalk
Non ce capteur n'est pas supporté non plus malheureusement :(
J'ai demandé pour un 280 en haut de cette même page, mais je n'ai pas eu de retour encore :
Jef73 a écrit :
04 juin 2019, 21:46
Bonjour,
Est-ce possible d'intégrer le support pour les modules BME280 SVP ?
Ils sont pratiquement aux même prix que les AM2302, mais ils remontent la pression barométrique en plus des température et humidité.
Il utilise les mêmes ports de communication que ton 680 si je ne me trompe pas.
Du coup, j'ai installé les librairies AdaFruit et fait un petit script Python qui remonte les infos dans un virtuel toutes les x minutes.
Tu dois pouvoir faire pareil avec le tiens à vue de nez ;)
Bonjour Jef73,

Merci pour ta réponse.

C'est bien les mêmes ports de communication pour les BME280 et BME680.
Est-ce que tu serais d'accord de partager ton script python et ton virtuel ?

Merci d'avance pour ton aide.

Envoyé de mon Pixel en utilisant Tapatalk


Jef73
Timide
Messages : 366
Inscription : 27 déc. 2017, 10:41
Localisation : Nantes

Re: [Plugin Tiers][Sujet Principal] Jeedouino

Message par Jef73 » 16 août 2019, 09:50

Oui bien sûr, avec plaisir :)

Tout d'abord, vérifies bien l'adresse sur laquelle se trouve ton module, pour éventuellement soit le modifier lui-même, soit modifier les paramètres dans les librairies que tu installes (car forcément, ce n'est jamais pré-réglé sur la bonne LOL). Pour ça, lancer la commande :
i2cdetect -y 1
et le tableau en retour te donnera la (ou les) adresse(s) occupée(s).
Voici le résultat sur une BME280 en 0x76 :

Code : Tout sélectionner

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
Et le contenu de mon "petit" script (réglé pour l'utilisation sur le bus I2C) :

Code : Tout sélectionner

#!/usr/bin/python3
# -*- coding: utf-8 -*-

# ----------------------------------------------------------------------------
# JF - Envoi des informations de la sonde BME280 vers Jeedom.
# Version 1.0 du 2019/06/09.
# ----------------------------------------------------------------------------
# Virtuel Jeedom :
#	Température=3329 / Humidité=3330 / Pression=3331 / Point de rosée=3332
# ----------------------------------------------------------------------------
# Penser à renseigner/modifier la clé API Jeedom dans l'URL, ainsi que l'IP.
# ----------------------------------------------------------------------------


###########
# MODULES #
###########
import sys                      # fonctions systeme
import requests                 # pour faire des requêtes HTTP
import syslog                   # pour écrire dans les journaux
import board                    # librairies AdaFruit
import busio                    # librairies AdaFruit
import adafruit_bme280          # librairies AdaFruit


# SOIT : Création d'objet librairie en utilisant le port du bus I2C :
i2c = busio.I2C(board.SCL, board.SDA)
bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c)

# SOIT : Création d'objet librairie en utilisant le port du bus SPI :
#spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
#bme_cs = digitalio.DigitalInOut(board.D10)
#bme280 = adafruit_bme280.Adafruit_BME280_SPI(spi, bme_cs)

'''	# Mise en commentaire car pas besoin de ça pour l'envoi à Jeedom
# Récupération et affichage des valeurs de la sonde :
print("\n")
print("Température      : %0.1f °C" % bme280.temperature)
print("Humidité         : %0.1f %%" % bme280.humidity)
print("Pression         : %0.0f hPa" % bme280.pressure)
'''

# Calcul du point de rosée grâce à la formule de Magnus :
# https://en.wikipedia.org/wiki/Dew_point#Calculating_the_dew_point
import math
b = 17.62
c = 243.12
gamma = (b * bme280.temperature /(c + bme280.temperature)) + math.log(bme280.humidity / 100.0)
dewpoint = (c * gamma) / (b - gamma)
#print("Point de rosée   : %0.1f °C" % dewpoint)

'''	# Mise en commentaire car pas besoin de ça pour l'envoi à Jeedom
# Pour que le calcul de l'altitude soit correct, il faut indiquer la pression
# atmosphérique actuelle au niveau de la mer, donc la connaître à chaque appel.
# On cherche si un argument a été passé en ligne de commande, pour l'indiquer au script :
try:	# On fait le test d'affecter l'argument à la variable :
	bme280.sea_level_pressure = float(sys.argv[1])
except IndexError:	# On intercepte l'erreur si l'argument n°1 n'existe pas
	bme280.sea_level_pressure = bme280.pressure	# et on prends la pression locale à la place
print("Altitude évaluée : %0.2f mètres" % bme280.altitude)
print("(pour %0.1f hPa au niveau de la mer)" % bme280.sea_level_pressure)
'''



#on envoie maintenant les données au serveur Jeedom

if bme280.temperature is not None:
	transmissionERREUR=0
	transmissionOK=0
	base_URL_temp="http://192.168.0.82/core/api/jeeApi.php?apikey=APIKEYJEEDOM&type=virtual&id=3329&value="
	url=base_URL_temp+str(bme280.temperature)
	while ((transmissionOK !=1) & (transmissionERREUR <= 3)):
		#debug
		#print("Tranmission OK=",transmissionOK)
		#print("transmissionERREUR =", transmissionERREUR)
		try:
			r=requests.get(url)
			if (r.status_code!=200):
				print("Erreur HTTP :",r.status_code)
				syslog.syslog("Erreur HTTP :",r.status_code)
			reponse=r.text
			if reponse.find("OK"):
				# print("Données de température transmises : résultat :",reponse)
				# syslog.syslog("Données de température transmises.")
				transmissionOK=1
			else:
				print("Problème :", reponse)
				syslog.syslog("Problème : le serveur Jeedom n'a pas répondu par OK")
				transmissionERREUR+=1
				time.sleep(15) #on attend xx secondes avant d'essayer à nouveau de transmettre.
		except:
			transmissionERREUR+=1
			print ("Essai",transmissionERREUR," : il n'y a probablement pas de liaison avec le serveur.")
			syslog.syslog("Il n'y a probablement pas de liaison avec le serveur.")
			time.sleep(15) # on attend xx secondes avant de recommencer
	if (transmissionERREUR > 3):
		print("Abandon pour aujourd'hui : les données de température n'ont pas pu être transmises après",transmissionERREUR, "essais !")
		syslog.syslog("Abandon pour aujourd'hui : les données de température n'ont pas pu être transmises après plusieurs essais !")

if bme280.humidity is not None:
	transmissionERREUR=0
	transmissionOK=0
	base_URL_hum="http://192.168.0.82/core/api/jeeApi.php?apikey=APIKEYJEEDOM&type=virtual&id=3330&value="
	url=base_URL_hum+str(bme280.humidity)
	while ((transmissionOK !=1) & (transmissionERREUR <= 3)):
		#debug
		#print("Tranmission OK=",transmissionOK)
		#print("transmissionERREUR =", transmissionERREUR)
		try:
			r=requests.get(url)
			if (r.status_code!=200):
				print("Erreur HTTP :",r.status_code)
				syslog.syslog("Erreur HTTP :",r.status_code)
			reponse=r.text
			if reponse.find("OK"):
				# print("Données d'humidité transmises : résultat :",reponse)
				# syslog.syslog("Données d'humidité transmises.")
				transmissionOK=1
			else:
				print("Problème :", reponse)
				syslog.syslog("Problème : le serveur Jeedom n'a pas répondu par OK")
				transmissionERREUR+=1
				time.sleep(15) #on attend xx secondes avant d'essayer à nouveau de transmettre.
		except:
			transmissionERREUR+=1
			print ("Essai",transmissionERREUR," : il n'y a probablement pas de liaison avec le serveur.")
			syslog.syslog("Il n'y a probablement pas de liaison avec le serveur.")
			time.sleep(15) # on attend xx secondes avant de recommencer
	if (transmissionERREUR > 3):
		print("Abandon pour aujourd'hui : les données d'humidité n'ont pas pu être transmises après",transmissionERREUR, "essais !")
		syslog.syslog("Abandon pour aujourd'hui : les données d'humidité n'ont pas pu être transmises après plusieurs essais !")

if bme280.pressure is not None:
	transmissionERREUR=0
	transmissionOK=0
	base_URL_temp="http://192.168.0.82/core/api/jeeApi.php?apikey=APIKEYJEEDOM&type=virtual&id=3331&value="
	url=base_URL_temp+str(bme280.pressure)
	while ((transmissionOK !=1) & (transmissionERREUR <= 3)):
		#debug
		#print("Tranmission OK=",transmissionOK)
		#print("transmissionERREUR =", transmissionERREUR)
		try:
			r=requests.get(url)
			if (r.status_code!=200):
				print("Erreur HTTP :",r.status_code)
				syslog.syslog("Erreur HTTP :",r.status_code)
			reponse=r.text
			if reponse.find("OK"):
				# print("Données de pression transmises : résultat :",reponse)
				# syslog.syslog("Données de pression transmises.")
				transmissionOK=1
			else:
				print("Problème :", reponse)
				syslog.syslog("Problème : le serveur Jeedom n'a pas répondu par OK")
				transmissionERREUR+=1
				time.sleep(15) #on attend xx secondes avant d'essayer à nouveau de transmettre.
		except:
			transmissionERREUR+=1
			print ("Essai",transmissionERREUR," : il n'y a probablement pas de liaison avec le serveur.")
			syslog.syslog("Il n'y a probablement pas de liaison avec le serveur.")
			time.sleep(15) # on attend xx secondes avant de recommencer
	if (transmissionERREUR > 3):
		print("Abandon pour aujourd'hui : les données de pression n'ont pas pu être transmises après",transmissionERREUR, "essais !")
		syslog.syslog("Abandon pour aujourd'hui : les données de pression n'ont pas pu être transmises après plusieurs essais !")

if dewpoint is not None:
	transmissionERREUR=0
	transmissionOK=0
	base_URL_temp="http://192.168.0.82/core/api/jeeApi.php?apikey=APIKEYJEEDOM&type=virtual&id=3332&value="
	url=base_URL_temp+str(dewpoint)
	while ((transmissionOK !=1) & (transmissionERREUR <= 3)):
		#debug
		#print("Tranmission OK=",transmissionOK)
		#print("transmissionERREUR =", transmissionERREUR)
		try:
			r=requests.get(url)
			if (r.status_code!=200):
				print("Erreur HTTP :",r.status_code)
				syslog.syslog("Erreur HTTP :",r.status_code)
			reponse=r.text
			if reponse.find("OK"):
				# print("Données de point de rosée transmises : résultat :",reponse)
				# syslog.syslog("Données de point de rosée transmises.")
				transmissionOK=1
			else:
				print("Problème :", reponse)
				syslog.syslog("Problème : le serveur Jeedom n'a pas répondu par OK")
				transmissionERREUR+=1
				time.sleep(15) #on attend xx secondes avant d'essayer à nouveau de transmettre.
		except:
			transmissionERREUR+=1
			print ("Essai",transmissionERREUR," : il n'y a probablement pas de liaison avec le serveur.")
			syslog.syslog("Il n'y a probablement pas de liaison avec le serveur.")
			time.sleep(15) # on attend xx secondes avant de recommencer
	if (transmissionERREUR > 3):
		print("Abandon pour aujourd'hui : les données de point de rosée n'ont pas pu être transmises après",transmissionERREUR, "essais !")
		syslog.syslog("Abandon pour aujourd'hui : les données de point de rosée n'ont pas pu être transmises après plusieurs essais !")

## FIN
Au cas où la balise code modifierai malgré tout des apostrophes, guillemets ou que sais-je encore, je le renomme en ".txt" et le voici en pièce jointe :
jf - jeedom_adafruit_bme280.py.txt
(8.71 Kio) Téléchargé 11 fois

Nota : bien penser à modifier 3 fois (ou 4 si tu veux aussi le point de rosée) :
- l'adresse IP pour mettre à la place celle de ton Jeedom,
- la valeur des ID de virtuels vers lesquels envoyer les valeurs de la sonde,
- ainsi que la clé API.


PS : oui je sais, on peut très bien factoriser le code via une fonction pour l'envoi des valeurs à Jeedom, mais par manque de temps je ne l'ai pas encore fait, c'est resté en mode test et je crois qu'il va rester comme ça puisqu'il marche très bien. Suis pas un dév moi, alors je fais comme je veux tant que ça marche, na :D

Pour le virtuel, rien de spécial, tu en crées simplement un avec autant de lignes d'infos numériques que tu souhaites faire remonter par le script et tu recopies bien les ID de chaque ligne du virtuel dans le script.

Voilà, j'espère que ça pourra t'aider :)

Répondre

Revenir vers « [Catégorie] Protocoles domotiques »

Qui est en ligne ?

Utilisateurs parcourant ce forum : fcna et 3 invités