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

Samsung Gear S2/S3 [Tizen]

Pour parler de tout, et surtout de rien !
Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Didier3L » 31 déc. 2018, 11:37

Bonjour
Merci du retour. Moi aussi j’ai eu ce problème de Java.
Je vais mettre à jour le Tuto
Pour le retour d’information type température, je ne sais pas pour le moment
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Didier3L » 03 janv. 2019, 18:46

Tutorial Tizen Studio
Mise à jour 26/01/2019

Ce que l'on peut faire avec cette application :arrow: https://youtu.be/8xsHdPEtK80

En préambule un peu de lecture :arrow: https://drive.google.com/open?id=1JD2PA ... FhgiRpnipz

Installer Java SE Development Kit 8u191 :
https://www.oracle.com/technetwork/java ... 33151.html

Installer Tizen Studio 3.0 with IDE installer :
https://developer.tizen.org/development ... o/download
Dans Main SDK installer
:arrow: 2.3.2 Wearable
:arrow: 3.0 Wearable
Dans Extension SDK installer
:arrow: Samsung Certificat Extension
:arrow: Samsung wearable extension

:!: Si au lancement de Tizen Studio vous avez un message d'erreur JAVA_HOME not set in env variables
Appliquer cette procédure :arrow: https://javatutorial.net/set-java-home-windows-10 :!:

Créer votre certificat Samsung :
Cliquer sur l’icône Certificat Manager
Laisser vide Profile File Location. Cliquer sur OK
Cliquer sur la croix et choisissez Samsung
Mobile/Wearable / Next
Create new certificat Profile / Saisissez un nom / next
Create a new author certicate / next
Saisissez le nom et un mot de passe à définir
Vous allez rediriger vers une fenêtre pour vous connectez à votre compte Samsung. SI vous en avez pas il faudra le créer.
Dernière édition par Didier3L le 26 janv. 2019, 12:03, édité 6 fois.
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Didier3L » 03 janv. 2019, 18:47

Suite du Tutorial
Mise à jour 03/01/2019

Créer votre projet Tizen :
Créer un projet :arrow: : File / New / Tizen Project / sample / Wearable v2.3.2 / Web application
Cliquer sur next / Changer le nom du projet si vous le souhaitez dans Project name
Cliquer sur Finish

Le projet est crée. le fichier config.xml vous indique les informations de votre projet.
2018-12-28_12-41-35.png
2018-12-28_12-41-35.png (13.88 Kio) Consulté 947 fois
Installer tous les fichiers pour notre application Jeedom :
Récupérer les fichiers sur Github :arrow: https://github.com/Didier3L/JeedomGearS3
Ouvrer votre explorateur de fichier
faite un cliquer/déposer de votre explorateur vers Tizen Studio pour ajouter et remplacer les fichiers existant

Éditer les fichier de configuration pour l’accès à Jeedom et vos commandes :
Editer le fichier httprequest.js pour la configuration vers Jeedom
Editer le fichier index.html pour les commandes (lumières, scenario, alarme, etc.) en modifiant les valeurs requestcommand(id_jeedom)
Editer le fichier list_swipelist.js pour les commandes Lumières Swipe en modifiant les valeurs requestcommand(id_jeedom)
Pour tester son projet dans l'émulateur :
Cliquer sur l’icône Emulateur Manager
Créer ou lancer Wearable Circle

Une montre va s'afficher .... attendre .... l'heure s'affiche sur la montre
Cliquer sur Run (Ctr+F11)
:!: L'émulateur peut être très lent :!:
:!: si message d'erreur, essayer l’émulateur en Wearable 3.0 :!:
2019-01-03_20-39-04.png
2019-01-03_20-39-04.png (121.26 Kio) Consulté 908 fois
Pour envoyer votre projet sur votre montre :
Connecter le Wifi de votre montre sur Toujours activer
Désactiver le Bluetooth de votre montre
Activer le mode Debug sur la montre

Dans Tizen studio cliquer sur l'icone Device manager. Une fenêtre s'ouvre.
Cliquer sur l’icône Remote Device Manager
Ajouter l'adresse IP de votre montre. Laissez le port 26101 par défaut.
cliquer sur connection pour passer de Off à ON
Vous devriez voir SM-R760 (dev... 192.168.) dans Tizen Sudio
Cliquer sur l’icône
2018-12-28_12-38-36.png
2018-12-28_12-38-36.png (6.94 Kio) Consulté 947 fois
Vérifier votre montre et les log
Dernière édition par Didier3L le 03 janv. 2019, 20:42, édité 6 fois.
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

Pharmbattle
Timide
Messages : 132
Inscription : 06 sept. 2015, 15:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Pharmbattle » 03 janv. 2019, 18:54

Bonjour à tous,
et merci pour le super boulot.
j'ai adapté ce code à ma config et tous fonctionne parfaitement en local.
je sais que d'autres personnes ont posé la question mais je ne vois pas comment rentrer mon https://...... pour avoir accès de l'extérieur.
j'ai rentré mon ip locale et key:

llocalStorage.setItem("IP", "192.168.1.X");
localStorage.setItem("KEY", "00000000");

dois je rajouter une ligne ou le mettre à la suite comme ceci:
llocalStorage.setItem("IP", "192.168.1.10/https://......");
jai essayé plusieurs config mais ça ne marche pas je sais que je suis nul :oops: je débute.
et j'ai l'impression de bloquer sur une "connerie"car le reste fonctionne bien en local.

j'ai une autre question concernant l'émulateur:
Est ce que quelqu'un a remarqué que le bouton en haut à droite pour revenir au niveau sup ne fonctionne pas?
est ce chez moi un prob avec ma config?

merci pour votre aide.

Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Didier3L » 03 janv. 2019, 19:40

Soit

Code : Tout sélectionner

function initJeedomValue() {
	localStorage.setItem("IP", "192.168.1.x:80");
	localStorage.setItem("KEY", "votre_cle_API_jeedom");
}
Soit

Code : Tout sélectionner

function initJeedomValue() {
	localStorage.setItem("IP", "mon_nom_de_domaine.fr:443");
	localStorage.setItem("KEY", "votre_cle_API_jeedom");
}
Regarde dans Configuration / Réseaux de ton Jeedom
Dernière édition par Didier3L le 04 janv. 2019, 13:37, édité 1 fois.
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

Pharmbattle
Timide
Messages : 132
Inscription : 06 sept. 2015, 15:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Pharmbattle » 04 janv. 2019, 10:27

Bonjour et merci pour votre réponse.

Cela confirme mes manipulations.
J'ai renseigné correctement les infos mais ne fonctionne toujours pas en https .
je suis entrain d'installer l'émulateur 3.0 comme indiqué dans le tuto car j'ai l'impression qu'il y a qq bug avec le 2.3.2.

Est ce que cela à un rapport avec les dns de jeedom car pour me connecter en externe avec un navigateur j'utilise:
https://monnom.dnsx.jeedom.com (comme indiqué dans la config réseau de mon jeedom) et cela fonctionne très bien avec l'appli mobile etc...

je vous tiens au courant.

merci encore

chboc85
Timide
Messages : 55
Inscription : 16 déc. 2015, 11:18

Re: Samsung Gear S2/S3 [Tizen]

Message par chboc85 » 04 janv. 2019, 11:50

Pharmbattle a écrit :
04 janv. 2019, 10:27
Bonjour et merci pour votre réponse.

Cela confirme mes manipulations.
J'ai renseigné correctement les infos mais ne fonctionne toujours pas en https .
je suis entrain d'installer l'émulateur 3.0 comme indiqué dans le tuto car j'ai l'impression qu'il y a qq bug avec le 2.3.2.

Est ce que cela à un rapport avec les dns de jeedom car pour me connecter en externe avec un navigateur j'utilise:
https://monnom.dnsx.jeedom.com (comme indiqué dans la config réseau de mon jeedom) et cela fonctionne très bien avec l'appli mobile etc...

je vous tiens au courant.

merci encore
Bonjour,

Moi ca fonctionne tres bien en https. Je t'explique ce que j'ai fais:
Déjà tu met l'adresse de ton jeedom au format https a la place de ton adresse IP
ensuite j'ai ajouté le "s" a chaque fois que je voyais cette ligne de code:

"xhttp1.open("POST", "httpS://" + myIPValue + "/core/api/jeeApi.php");"

il y en a plusieurs xttp1, xttp2, xhttp3 etc. j'ai ajouté un "s" a toute les lignes.

Même choses un peu plus bas avec ce genre de ligne

"client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start");
console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start" );"

Et une fois que j'ai installé sur la montre, dans le settings même chose j'ai mis mon adresse jeedom version https et pas l'adresse IP.
Quelques screen de ce que j'ai fais ça sera bcp plus parlant:
Pièces jointes
code pour https 1.png
code pour https 1.png (38.97 Kio) Consulté 892 fois
code pour https 2.png
code pour https 2.png (47.83 Kio) Consulté 892 fois
code pour https 3.png
code pour https 3.png (35.61 Kio) Consulté 892 fois

chboc85
Timide
Messages : 55
Inscription : 16 déc. 2015, 11:18

Re: Samsung Gear S2/S3 [Tizen]

Message par chboc85 » 04 janv. 2019, 11:58

Par contre avec cette solution tu passe toujours par ton adresse jeedom externe.

Pour moi c'est un avantage je trouve, ça fonctionne toujours, que je sois a la maison ou a l'extérieur. en wifi ou 4g c'est pareil. ca marche toujours

Pharmbattle
Timide
Messages : 132
Inscription : 06 sept. 2015, 15:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Pharmbattle » 04 janv. 2019, 12:31

Re bonjour,

2 choses je confirme que le bon de retour arrière ne fonctionne pas (photos) même en émulateur V.3

j'ai essayé avec un autre nom de domaine en http://monnom.noip.me, et ne fonctionne pas non plus?
si je passe par mon navigateur cela marche ss prob.

merci également à chboc85 pour ses explications très claires mais je viens d'essayer également mais sans succès.
là je sèche vraiment... :roll: :roll: :roll:

je ne vois pas le rapport mais est ce que c'est parce que je travaille sous macOS.
Pièces jointes
Capture d’écran 2019-01-04 à 11.20.27.png
Capture d’écran 2019-01-04 à 11.20.27.png (316.63 Kio) Consulté 881 fois

Pharmbattle
Timide
Messages : 132
Inscription : 06 sept. 2015, 15:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Pharmbattle » 04 janv. 2019, 12:36

voici un image de mon code, y a t'il une erreur??
dans cette config fonctionne parfaitement.
j'ai essayé les diff manip que vous avez proposé mais rien en externe????
merci encore pour votre aide.

Code : Tout sélectionner

// Load Box value on start
// Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomValue() {
	localStorage.setItem("IP", "192.168.1.10");
	localStorage.setItem("KEY", "ma key");
}

// Save Box value

function saveJeedomValue() {
	var addressValue = document.getElementById("addressValue").value;
	var keyValue = document.getElementById("keyValue").value;
	localStorage.setItem("SavedAddress",addressValue);
	localStorage.setItem("SavedKey",keyValue);
}

//Load Box JSON value on start
//Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomJsonValue() {
	
var myKeyValue, myIPValue;
	
myKeyValue =  localStorage.getItem("KEY");
myIPValue =  localStorage.getItem("IP");
console.log("KEY Value: " + myKeyValue);
console.log("IP Value: " + myIPValue);

var xhttp1;
var xhttp2;
var xhttp3;

xhttp1=new XMLHttpRequest();
xhttp1.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp1.setRequestHeader("Content-Type", "application/text/plain");
xhttp1.send(JSON.stringify({"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "votre_cle_API_jeedom"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "votre_cle_API_jeedom"}, "id":1}' http://192.168.1.x/core/api/jeeApi.php


		xhttp1.onreadystatechange = function() {
			if (xhttp1.readyState == 4 && xhttp1.status == 200) {
				var data = JSON.parse(xhttp1.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Objects", JSON.stringify(data));
			}
		}

xhttp2=new XMLHttpRequest();

xhttp2.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp2.setRequestHeader("Content-Type", "application/text/plain");
xhttp2.send(JSON.stringify({"jsonrpc": "2.0", "method":"cmd::all","params":{"apikey": "votre_cle_API_jeedom"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "votre_cle_API_jeedom"}, "id":1}' http://192.168.1.x/core/api/jeeApi.php


		xhttp2.onreadystatechange = function() {
			if (xhttp2.readyState == 4 && xhttp2.status == 200) {
				var data = JSON.parse(xhttp2.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Commands", JSON.stringify(data));
			}
		}
				
xhttp3=new XMLHttpRequest();

xhttp3.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp3.setRequestHeader("Content-Type", "application/text/plain");
xhttp3.send(JSON.stringify({"jsonrpc": "2.0", "method":"scenario::all","params":{"apikey": "votre_cle_API_jeedom"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "votre_cle_API_jeedom"}, "id":1}' http://192.168.1.x/core/api/jeeApi.php


		xhttp3.onreadystatechange = function() {
			if (xhttp3.readyState == 4 && xhttp3.status == 200) {
				var data = JSON.parse(xhttp3.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Scenario", JSON.stringify(data));
			}
		}
}


// Basic HTTP request to launch command
// Les commandes sont en http. On peut mettre https si besoin.


function requestcommand(jeedomcmd)
 {
	
var myKeyValue, myIPValue;
	
myKeyValue =  localStorage.getItem("KEY");
myIPValue =  localStorage.getItem("IP");
console.log("KEY Value: " + myKeyValue);
console.log("IP Value: " + myIPValue);
	
var client = new XMLHttpRequest();
client.open("GET", "http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=cmd&id=" + jeedomcmd );
console.log("http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=cmd&id=" + jeedomcmd);
client.onreadystatechange = function() {
    if (client.readyState == 4) {
        if(client.status == 200) {
           console.log(client.responseText);
           navigator.vibrate([500, 500, 500]);
        }
    }
};
client.send();
};

//Basic HTTP request to launch command
//Les commandes sont en http. On peut mettre https si besoin.


function requestscenario(jeedomscenario)
{
	
	var myKeyValue, myIPValue;
		
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
		
	var client = new XMLHttpRequest();
	client.open("GET", "http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start");
	console.log("http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start" );
	client.onreadystatechange = function() {
	    if (client.readyState == 4) {
	        if(client.status == 200) {
	           console.log(client.responseText);
	           navigator.vibrate([500, 500, 500]);
	        }
	    }
	};
	client.send();
	};

	
function requestvoice()
{	
	var appControlData = new tizen.ApplicationControlData('http://tizen.org/appcontrol/data/input_type', ['input_voice']);
	var myKeyValue, myIPValue;
	
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
	
	var appControl = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/get_input", null, null, null, [appControlData], null);
	var appControlReplyCallback = {
		    onsuccess: function(data) {
		        for (var i = 0; i < data.length; i++) {
		            console.log('ret: ' + data[i].key);
		            console.log('result: ' + data[i].value[0]);
		            var client = new XMLHttpRequest();
		        	client.open("GET", "http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1");
		        	console.log("http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1" );
		        	client.onreadystatechange = function() {
		        	    if (client.readyState == 4) {
		        	        if(client.status == 200) {
		        	           console.log(client.responseText);
		        	           navigator.vibrate([500, 500, 500]);
		        	        }
		        	    }
		        	};
		        	client.send();
		        }
		    },
		    onfailure: function() {
		        console.log('The launch application control failed');
		    }
		}
	tizen.application.launchAppControl(appControl, null, function() {console.log("launch application control succeed");}, function(e) {console.log("launch application control failed. reason: " + e.message);}, appControlReplyCallback);
	console.log('launch application done');
};


function requesttext()
{	
	var appControlData = new tizen.ApplicationControlData('http://tizen.org/appcontrol/data/input_type', ['input_voice']);
	var myKeyValue, myIPValue;
	
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
	
	var appControl = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/get_input", null, null, null, null, null);
	var appControlReplyCallback = {
		    onsuccess: function(data) {
		        for (var i = 0; i < data.length; i++) {
		            console.log('ret: ' + data[i].key);
		            console.log('result: ' + data[i].value[0]);
				
		            var client = new XMLHttpRequest();
		        	client.open("GET", "http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1");
		        	console.log("http://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1" );
		        	client.onreadystatechange = function() {
		        	    if (client.readyState == 4) {
		        	        if(client.status == 200) {
		        	           console.log(client.responseText);
		        	           navigator.vibrate([500, 500, 500]);
		        	        }
		        	    }
		        	};
		        	client.send();
		        }
		    },
		    onfailure: function() {
		        console.log('The launch application control failed');
		    }
		}
	tizen.application.launchAppControl(appControl, null, function() {console.log("launch application control succeed");}, function(e) {console.log("launch application control failed. reason: " + e.message);}, appControlReplyCallback);
	console.log('launch application done');	
};
/code]

Avatar de l’utilisateur
breizh22
Actif
Messages : 1318
Inscription : 10 oct. 2015, 17:35

Re: Samsung Gear S2/S3 [Tizen]

Message par breizh22 » 04 janv. 2019, 13:29

perso, dans

Code : Tout sélectionner

// Load Box value on start
// Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomValue() {
	localStorage.setItem("IP", "192.168.1.10");
	localStorage.setItem("KEY", "ma key");
}
j'ai mis

Code : Tout sélectionner

// Load Box value on start
// Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomValue() {
	localStorage.setItem("IP", "nomdedomaine.fr");
	localStorage.setItem("KEY", "xxxxxxxxxxxxxxx");
donc pas de https:// avant le nom de domaine

à voir si cela va résoudre le souci, mais je pense que oui vu qu'autrement, ça va faire appel à

https://https://nom de domaine

et je n'ai pas mis de S avant cette ligne

Code : Tout sélectionner

// Basic HTTP request to launch command
// Les commandes sont en http. On peut mettre https si besoin.
Perso, j'ai fait deux applications, une pour le local et une pour la 4G en changeant le nom et la couleur de l'icone pour que cela soit pratique. Mais c'est vrai que la version 4G fonctionne partout.

Cela fonctionne bien en 2.3.2.

Voilà mon code

remplace

xxxxx.xxx.fr par nondedomaine.fr
CLE_API par ta clé API Jeedom

Code : Tout sélectionner

// Load Box value on start
// Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomValue() {
	localStorage.setItem("IP", "xxxxx.xxx.fr");
	localStorage.setItem("KEY", "CLE_API");
}

// Save Box value

function saveJeedomValue() {
	var addressValue = document.getElementById("addressValue").value;
	var keyValue = document.getElementById("keyValue").value;
	localStorage.setItem("SavedAddress",addressValue);
	localStorage.setItem("SavedKey",keyValue);
}

//Load Box JSON value on start
//Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomJsonValue() {
	
var myKeyValue, myIPValue;
	
myKeyValue =  localStorage.getItem("KEY");
myIPValue =  localStorage.getItem("IP");
console.log("KEY Value: " + myKeyValue);
console.log("IP Value: " + myIPValue);

var xhttp1;
var xhttp2;
var xhttp3;

xhttp1=new XMLHttpRequest();
xhttp1.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp1.setRequestHeader("Content-Type", "application/text/plain");
xhttp1.send(JSON.stringify({"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}' https://xxxxx.xxx.fr/core/api/jeeApi.php


		xhttp1.onreadystatechange = function() {
			if (xhttp1.readyState == 4 && xhttp1.status == 200) {
				var data = JSON.parse(xhttp1.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Objects", JSON.stringify(data));
			}
		}

xhttp2=new XMLHttpRequest();

xhttp2.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp2.setRequestHeader("Content-Type", "application/text/plain");
xhttp2.send(JSON.stringify({"jsonrpc": "2.0", "method":"cmd::all","params":{"apikey": "CLE_API"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}' https://xxxxx.xxx.fr/core/api/jeeApi.php


		xhttp2.onreadystatechange = function() {
			if (xhttp2.readyState == 4 && xhttp2.status == 200) {
				var data = JSON.parse(xhttp2.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Commands", JSON.stringify(data));
			}
		}
				
xhttp3=new XMLHttpRequest();

xhttp3.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp3.setRequestHeader("Content-Type", "application/text/plain");
xhttp3.send(JSON.stringify({"jsonrpc": "2.0", "method":"scenario::all","params":{"apikey": "CLE_API"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}' https://xxxxx.xxx.fr/core/api/jeeApi.php


		xhttp3.onreadystatechange = function() {
			if (xhttp3.readyState == 4 && xhttp3.status == 200) {
				var data = JSON.parse(xhttp3.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Scenario", JSON.stringify(data));
			}
		}
}


// Basic HTTP request to launch command
// Les commandes sont en http. On peut mettre https si besoin.


function requestcommand(jeedomcmd)
 {
	
var myKeyValue, myIPValue;
	
myKeyValue =  localStorage.getItem("KEY");
myIPValue =  localStorage.getItem("IP");
console.log("KEY Value: " + myKeyValue);
console.log("IP Value: " + myIPValue);
	
var client = new XMLHttpRequest();
client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=cmd&id=" + jeedomcmd );
console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=cmd&id=" + jeedomcmd);
client.onreadystatechange = function() {
    if (client.readyState == 4) {
        if(client.status == 200) {
           console.log(client.responseText);
           navigator.vibrate([500, 500, 500]);
        }
    }
};
client.send();
};

//Basic HTTP request to launch command
//Les commandes sont en http. On peut mettre https si besoin.


function requestscenario(jeedomscenario)
{
	
	var myKeyValue, myIPValue;
		
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
		
	var client = new XMLHttpRequest();
	client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start");
	console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start" );
	client.onreadystatechange = function() {
	    if (client.readyState == 4) {
	        if(client.status == 200) {
	           console.log(client.responseText);
	           navigator.vibrate([500, 500, 500]);
	        }
	    }
	};
	client.send();
	};

	
function requestvoice()
{	
	var appControlData = new tizen.ApplicationControlData('http://tizen.org/appcontrol/data/input_type', ['input_voice']);
	var myKeyValue, myIPValue;
	
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
	
	var appControl = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/get_input", null, null, null, [appControlData], null);
	var appControlReplyCallback = {
		    onsuccess: function(data) {
		        for (var i = 0; i < data.length; i++) {
		            console.log('ret: ' + data[i].key);
		            console.log('result: ' + data[i].value[0]);
		            var client = new XMLHttpRequest();
		        	client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1");
		        	console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1" );
		        	client.onreadystatechange = function() {
		        	    if (client.readyState == 4) {
		        	        if(client.status == 200) {
		        	           console.log(client.responseText);
		        	           navigator.vibrate([500, 500, 500]);
		        	        }
		        	    }
		        	};
		        	client.send();
		        }
		    },
		    onfailure: function() {
		        console.log('The launch application control failed');
		    }
		}
	tizen.application.launchAppControl(appControl, null, function() {console.log("launch application control succeed");}, function(e) {console.log("launch application control failed. reason: " + e.message);}, appControlReplyCallback);
	console.log('launch application done');
};


function requesttext()
{	
	var appControlData = new tizen.ApplicationControlData('http://tizen.org/appcontrol/data/input_type', ['input_voice']);
	var myKeyValue, myIPValue;
	
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
	
	var appControl = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/get_input", null, null, null, null, null);
	var appControlReplyCallback = {
		    onsuccess: function(data) {
		        for (var i = 0; i < data.length; i++) {
		            console.log('ret: ' + data[i].key);
		            console.log('result: ' + data[i].value[0]);
				
		            var client = new XMLHttpRequest();
		        	client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1");
		        	console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1" );
		        	client.onreadystatechange = function() {
		        	    if (client.readyState == 4) {
		        	        if(client.status == 200) {
		        	           console.log(client.responseText);
		        	           navigator.vibrate([500, 500, 500]);
		        	        }
		        	    }
		        	};
		        	client.send();
		        }
		    },
		    onfailure: function() {
		        console.log('The launch application control failed');
		    }
		}
	tizen.application.launchAppControl(appControl, null, function() {console.log("launch application control succeed");}, function(e) {console.log("launch application control failed. reason: " + e.message);}, appControlReplyCallback);
	console.log('launch application done');	
};
HP Gen 8 / OMV4 sur SSD / Jeedom 3.3.37 VM Debian 9
RFLink - Sondes Oregon THN 132 N / THGR 122 NX / THGR 810 / THC238 - Prises DIO/Dedra/IDK.
Orvibo AllOne et S20 - Onduleur APC Back-UPS ES 700VA
Écosystème xiaomi - Dash buttons - GHome et mini.

Pharmbattle
Timide
Messages : 132
Inscription : 06 sept. 2015, 15:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Pharmbattle » 04 janv. 2019, 15:56

breizh22 a écrit :
04 janv. 2019, 13:29
perso, dans

Code : Tout sélectionner

// Load Box value on start
// Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomValue() {
	localStorage.setItem("IP", "192.168.1.10");
	localStorage.setItem("KEY", "ma key");
}
j'ai mis

Code : Tout sélectionner

// Load Box value on start
// Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomValue() {
	localStorage.setItem("IP", "nomdedomaine.fr");
	localStorage.setItem("KEY", "xxxxxxxxxxxxxxx");
donc pas de https:// avant le nom de domaine

à voir si cela va résoudre le souci, mais je pense que oui vu qu'autrement, ça va faire appel à

https://https://nom de domaine

et je n'ai pas mis de S avant cette ligne

Code : Tout sélectionner

// Basic HTTP request to launch command
// Les commandes sont en http. On peut mettre https si besoin.
Perso, j'ai fait deux applications, une pour le local et une pour la 4G en changeant le nom et la couleur de l'icone pour que cela soit pratique. Mais c'est vrai que la version 4G fonctionne partout.

Cela fonctionne bien en 2.3.2.

Voilà mon code

remplace

xxxxx.xxx.fr par nondedomaine.fr
CLE_API par ta clé API Jeedom

Code : Tout sélectionner

// Load Box value on start
// Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomValue() {
	localStorage.setItem("IP", "xxxxx.xxx.fr");
	localStorage.setItem("KEY", "CLE_API");
}

// Save Box value

function saveJeedomValue() {
	var addressValue = document.getElementById("addressValue").value;
	var keyValue = document.getElementById("keyValue").value;
	localStorage.setItem("SavedAddress",addressValue);
	localStorage.setItem("SavedKey",keyValue);
}

//Load Box JSON value on start
//Indiquer l'adresse IP/url et la clé API de Jeedom (votre_cle_API_jeedom)

function initJeedomJsonValue() {
	
var myKeyValue, myIPValue;
	
myKeyValue =  localStorage.getItem("KEY");
myIPValue =  localStorage.getItem("IP");
console.log("KEY Value: " + myKeyValue);
console.log("IP Value: " + myIPValue);

var xhttp1;
var xhttp2;
var xhttp3;

xhttp1=new XMLHttpRequest();
xhttp1.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp1.setRequestHeader("Content-Type", "application/text/plain");
xhttp1.send(JSON.stringify({"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}' https://xxxxx.xxx.fr/core/api/jeeApi.php


		xhttp1.onreadystatechange = function() {
			if (xhttp1.readyState == 4 && xhttp1.status == 200) {
				var data = JSON.parse(xhttp1.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Objects", JSON.stringify(data));
			}
		}

xhttp2=new XMLHttpRequest();

xhttp2.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp2.setRequestHeader("Content-Type", "application/text/plain");
xhttp2.send(JSON.stringify({"jsonrpc": "2.0", "method":"cmd::all","params":{"apikey": "CLE_API"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}' https://xxxxx.xxx.fr/core/api/jeeApi.php


		xhttp2.onreadystatechange = function() {
			if (xhttp2.readyState == 4 && xhttp2.status == 200) {
				var data = JSON.parse(xhttp2.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Commands", JSON.stringify(data));
			}
		}
				
xhttp3=new XMLHttpRequest();

xhttp3.open("POST", "http://" + myIPValue + "/core/api/jeeApi.php");
xhttp3.setRequestHeader("Content-Type", "application/text/plain");
xhttp3.send(JSON.stringify({"jsonrpc": "2.0", "method":"scenario::all","params":{"apikey": "CLE_API"}, "id":1}));
// curl -d '{"jsonrpc": "2.0", "method":"object::all","params":{"apikey": "CLE_API"}, "id":1}' https://xxxxx.xxx.fr/core/api/jeeApi.php


		xhttp3.onreadystatechange = function() {
			if (xhttp3.readyState == 4 && xhttp3.status == 200) {
				var data = JSON.parse(xhttp3.responseText);
				console.log(JSON.stringify(data));
				localStorage.setItem("JSON-Scenario", JSON.stringify(data));
			}
		}
}


// Basic HTTP request to launch command
// Les commandes sont en http. On peut mettre https si besoin.


function requestcommand(jeedomcmd)
 {
	
var myKeyValue, myIPValue;
	
myKeyValue =  localStorage.getItem("KEY");
myIPValue =  localStorage.getItem("IP");
console.log("KEY Value: " + myKeyValue);
console.log("IP Value: " + myIPValue);
	
var client = new XMLHttpRequest();
client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=cmd&id=" + jeedomcmd );
console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=cmd&id=" + jeedomcmd);
client.onreadystatechange = function() {
    if (client.readyState == 4) {
        if(client.status == 200) {
           console.log(client.responseText);
           navigator.vibrate([500, 500, 500]);
        }
    }
};
client.send();
};

//Basic HTTP request to launch command
//Les commandes sont en http. On peut mettre https si besoin.


function requestscenario(jeedomscenario)
{
	
	var myKeyValue, myIPValue;
		
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
		
	var client = new XMLHttpRequest();
	client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start");
	console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=scenario&id=" + jeedomscenario + "&action=start" );
	client.onreadystatechange = function() {
	    if (client.readyState == 4) {
	        if(client.status == 200) {
	           console.log(client.responseText);
	           navigator.vibrate([500, 500, 500]);
	        }
	    }
	};
	client.send();
	};

	
function requestvoice()
{	
	var appControlData = new tizen.ApplicationControlData('http://tizen.org/appcontrol/data/input_type', ['input_voice']);
	var myKeyValue, myIPValue;
	
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
	
	var appControl = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/get_input", null, null, null, [appControlData], null);
	var appControlReplyCallback = {
		    onsuccess: function(data) {
		        for (var i = 0; i < data.length; i++) {
		            console.log('ret: ' + data[i].key);
		            console.log('result: ' + data[i].value[0]);
		            var client = new XMLHttpRequest();
		        	client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1");
		        	console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1" );
		        	client.onreadystatechange = function() {
		        	    if (client.readyState == 4) {
		        	        if(client.status == 200) {
		        	           console.log(client.responseText);
		        	           navigator.vibrate([500, 500, 500]);
		        	        }
		        	    }
		        	};
		        	client.send();
		        }
		    },
		    onfailure: function() {
		        console.log('The launch application control failed');
		    }
		}
	tizen.application.launchAppControl(appControl, null, function() {console.log("launch application control succeed");}, function(e) {console.log("launch application control failed. reason: " + e.message);}, appControlReplyCallback);
	console.log('launch application done');
};


function requesttext()
{	
	var appControlData = new tizen.ApplicationControlData('http://tizen.org/appcontrol/data/input_type', ['input_voice']);
	var myKeyValue, myIPValue;
	
	myKeyValue =  localStorage.getItem("KEY");
	myIPValue =  localStorage.getItem("IP");
	console.log("KEY Value: " + myKeyValue);
	console.log("IP Value: " + myIPValue);
	
	var appControl = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/get_input", null, null, null, null, null);
	var appControlReplyCallback = {
		    onsuccess: function(data) {
		        for (var i = 0; i < data.length; i++) {
		            console.log('ret: ' + data[i].key);
		            console.log('result: ' + data[i].value[0]);
				
		            var client = new XMLHttpRequest();
		        	client.open("GET", "https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1");
		        	console.log("https://" + myIPValue + "/core/api/jeeApi.php?apikey=" + myKeyValue + "&type=interact&query=" + data[i].value[0] + "&utf8=1" );
		        	client.onreadystatechange = function() {
		        	    if (client.readyState == 4) {
		        	        if(client.status == 200) {
		        	           console.log(client.responseText);
		        	           navigator.vibrate([500, 500, 500]);
		        	        }
		        	    }
		        	};
		        	client.send();
		        }
		    },
		    onfailure: function() {
		        console.log('The launch application control failed');
		    }
		}
	tizen.application.launchAppControl(appControl, null, function() {console.log("launch application control succeed");}, function(e) {console.log("launch application control failed. reason: " + e.message);}, appControlReplyCallback);
	console.log('launch application done');	
};
Super merci bcp cela marche en externe, je suis vraiment bête :oops: :oops: :oops: quand on est fixé sur qq chose on ne vois pas l'évi :ugeek: dence

maintenant je dois avoir un prob de certificat pourtant j'ai bien suivi le tuto, mais bon je verrai cela plus tard car je dois encore adapter correctement le code pour mon usage.
Pièces jointes
Capture d’écran 2019-01-04 à 15.26.52.png
Capture d’écran 2019-01-04 à 15.26.52.png (264.3 Kio) Consulté 848 fois

Pharmbattle
Timide
Messages : 132
Inscription : 06 sept. 2015, 15:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Pharmbattle » 06 janv. 2019, 11:37

Bonjour,

j'ai réussi à transférer l'appli sur ma montre et ça fonctionne parfaitement.
Merci pour ce code et votre aide sans laquelle je serai peut-être encore entrain de me creuser la tête.
par contre pensez vous qu'il est possible d'ajouter des infos exemple des températures et éventuellement contrôler un thermostat (nest) via cette app.

Bon dimanche

meslow
Timide
Messages : 7
Inscription : 01 nov. 2015, 20:52

Re: Samsung Gear S2/S3 [Tizen]

Message par meslow » 06 janv. 2019, 21:43

Pour recupérer les informatin c'est sensiblement identique :

Il faut faire un http Get de la commande souhaité :

Ex :
https://mondomaine.fr/core/api/jeeApi.p ... e=cmd&id=2

et la page http retourne la valeur (Température ou autre mais sans unité)

Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: Samsung Gear S2/S3 [Tizen]

Message par Didier3L » 07 janv. 2019, 21:01

meslow a écrit :
06 janv. 2019, 21:43
Pour recupérer les informatin c'est sensiblement identique :

Il faut faire un http Get de la commande souhaité :

Ex :
https://mondomaine.fr/core/api/jeeApi.p ... e=cmd&id=2

et la page http retourne la valeur (Température ou autre mais sans unité)
Peux tu nous donner le code complet :?:
Ici ou sur GitHub
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

Eleckito21
Timide
Messages : 220
Inscription : 06 sept. 2014, 18:24

Re: Samsung Gear S2/S3 [Tizen]

Message par Eleckito21 » 08 janv. 2019, 10:09

Ça m'intéresse aussi le code pour récupérer une info

Envoyé de mon SM-G930F en utilisant Tapatalk


Avatar de l’utilisateur
breizh22
Actif
Messages : 1318
Inscription : 10 oct. 2015, 17:35

Re: Samsung Gear S2/S3 [Tizen]

Message par breizh22 » 08 janv. 2019, 13:26

Moi aussi, j'aimerai voir les températures de mes aquariums sur ma montre entre autre, donc +1, merci d'avance.
HP Gen 8 / OMV4 sur SSD / Jeedom 3.3.37 VM Debian 9
RFLink - Sondes Oregon THN 132 N / THGR 122 NX / THGR 810 / THC238 - Prises DIO/Dedra/IDK.
Orvibo AllOne et S20 - Onduleur APC Back-UPS ES 700VA
Écosystème xiaomi - Dash buttons - GHome et mini.

HaSHi
Timide
Messages : 1
Inscription : 18 janv. 2019, 14:49

Re: Samsung Gear S2/S3 [Tizen]

Message par HaSHi » 18 janv. 2019, 14:56

Bonjour à tous,
J'aurais grand besoin d'un coup de main...
J'essaye désespérément de mettre des applis sur ma montre pour essayer de me coder un truc pour jeedom mais je ne m'en sors pas. La situation :
- Tizen Studio 3.1 installé + tools + 2.3.2 wearable + samsung certificate extension + samsung wearable extension.
- Os du pc : debian 9

J'arrive bien à connecter ma GEAR s2 (version os : R732XXU2CPC5 et modèle : SM-732) avec l'ide. J'ai pour le moment créé un projet en sample avec HelloTizen pour tester. Lorsque je lance le run sur l'ide il me copie bien les fichiers sur la montre, mais derriere rien ne se lance. Quand je vais dans le menu application de la gear j'ai bien l'icone de ma nouvelle appli mais quand je clique dessus rien ne se passe... Je commence à désespérer...

Un coup de main ?

Merci d'avance et bonne journée

Sglode
Timide
Messages : 31
Inscription : 31 janv. 2017, 10:59

Re: Samsung Gear S2/S3 [Tizen]

Message par Sglode » 19 janv. 2019, 11:59

Chez moi la connexion a ma Galaxy Watch ne fonctionne pas malgré la config ci dessous

Connecter le Wifi de votre montre sur Toujours activer
Désactiver le Bluetooth
Activer le mode Debug sur la montre
Redémarrage de la montre

La connexion passe bien sur ON, mais elle n'apparaît pas dans Tizen Studio.

Sglode
Timide
Messages : 31
Inscription : 31 janv. 2017, 10:59

Re: Samsung Gear S2/S3 [Tizen]

Message par Sglode » 19 janv. 2019, 22:40

Problème résolut en passant sur la version 3.1 Tizen Studio, j'ai maintenant un problème de certificat.
Affaire a suivre

Répondre

Revenir vers « Discussions Générales »

Qui est en ligne ?

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