Aller au contenu

Question pour les développeurs


jjacques68

Messages recommandés

Bonjour à tous,

 

Je souhaite me lancer dans une aventure un peu particulière et je voulais avoir une piste de départ concrète.

 

Le principe est assez simple :

 

Je souhaite réaliser un petit programme (sous WinDev (version 20) parce que je connais que lui) qui me permette d'avoir un retour d'état des lumières chez moi.

en gros lorsque j'actionne une lumière (ou autre) je souhaite que ce programme me dise que cette lumière est allumée.

 

d'après mes recherches sous WinDev, il faudrait utiliser les sockets ?

qui permettent d'écouter ce qui passe sur le réseau ? c'est bien cela ?

 

Donc du coup je pensais envoyer une requête http depuis la HC2 lors du changement d'état des modules, vers le programme du style http://IP_Machine_Programme:PORT_Machine_Programme/ [...].

 

je suis toujours bon là ?

 

Mais quoi mettre dans la requête ? le [...] ? pour que le programme puisse comprendre ce qui lui arrive sur le port ?

 

le but final serait d'avoir une application avec le plan de maison et ainsi avoir un visu global des actionneurs.

 

Oui je sais, certains vont dire que je m'ennuie :P, en même temps fibaro aurait pu le prévoir dans leur interface.

 

Si je fais fausse route, ou si je me lance dans une histoire de dingue, faites moi le savoir de suite :)

 

merci à vous !

Modifié par jjacques68
Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Bonjour,

le principe de base peut paraître bon mais à mon sens tu vas avoir beaucoup de dev à faire pour pas grand chose et tu vas re-inventer un peu la roue. De plus si tu souhaites rendre ton plan interactif il faudra aussi penser aux messages ´action' à retourner à la hc2

Je partirais plutôt à installer un jeedom avec son mode dashboard qui a le plan en natif et c une solution que beaucoup ici ont déjà en passerelle pour d'autres protocoles. Ce dashboard est déjà très flexible et va connaître un grand pas en avant en V3 qui devrait sortir d'ici quelques semaines.

Avec ce choix tu ne vas pas 'perdre' de temps dans le backend et tu pourra le consacrer au design.

Lien vers le commentaire
Partager sur d’autres sites

pour les messages actions, c'est pas un soucis, car j'exécuterai des requêtes HTTP vers l'API de la HC2.

 

Je savais pas que jeedom permettait cela, mais alors il faudrait que cette box soit le contrôleur principale ? ce ne serait plus le HC2 ?

Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Non pas forcément tu peux garder la hc2 en maître et laisser toute la partie zwave dessus.

Bien sûr tu auras le choix de basculer sur jeedom mais rien ne t'y oblige. Tu peux garder la hc2 comme le cerveau avec ses scénarios et toute la logique et ne considérer le design jeedom que comme une interface additionnelle. Si jeedom plante aucun impact à part la perte du plan.

En plus à long terme tu va maitriser 2 platformes de domotique et tu pourras integrer des protocoles qui n'existent pas sur hc2.

Tu n'utilises que 10% de jeedom mais au moins tu ne codes pas un côté serveur qui existe et est gratuit, maintenu et stable

Lien vers le commentaire
Partager sur d’autres sites

Enfait ça marche super bien !!!

 

Via un VD j'envoie mon message sur un socket :

--ouverture du socket
tcpSocket = Net.FTcpSocket("192.168.2.7", 5012)

--envoi du message
bytes, errorCode = tcpSocket:write("mon message")
 
--controle
if errorCode == 0 then
  fibaro:debug("ok");
else
  fibaro:debug("error")
end

 

Avec quelques lignes de code de WinDev et quelques procédures, j'arrive à intercepter les messages.

Du coup ça ouvre plein de possibilité : remonté d'info des sondes, capteurs, actionneurs, ...

Et en faire ce qu'on veut dans une application complètement indépendante.

 

Mais alors ça va être du boulo !!!!!

 

Vais quand même regarder votre jeedom ;) depuis le temps qu'on en parle !

Et comme j'aimerai pouvoir également utiliser le protocole Bluetooth... ça serait l'occasion pour s'y mettre...

Lien vers le commentaire
Partager sur d’autres sites

@jjacques68

 

j'ai peut être une idée à te suggérée 

 

pour quoi ne pas utiliser un scripte lua qui renvoie les informations d'un ou plusieurs modules ver une table SQL et depuis ton application (créée par windev) exploitée les données SQL.

 

voici le script que j'utilise 

 

pour le moment le scripte revois les données d'un seul module ID107

--[[
%% properties
%% globals
--]]




local deviceID = 107
----local message = fibaro:getGlobal("PAW2_VAR")

local times1 = os.date("%H%M%S")
local timestamp = os.date("%Y%m%d")





local nomdevice1 = fibaro:getName(deviceID) 
local piece1     = fibaro:getRoomName( fibaro:getRoomID(deviceID) )
------------------NOM de la SECTION-------
local SectionId = fibaro:getSectionID(deviceID) 
print("SectionId : " ..SectionId)
local json = api.get("/sections/"..SectionId)
--local section1 = ("Nom : " ..json.name)
local section1 = ("" ..json.name)
-----------------------------------------------
local val   = fibaro:getValue(deviceID, "value")

-------------------------------------------
local valuefib     = fibaro:getName(deviceID)
local power     = fibaro:getValue(deviceID, "power")
local energy       = fibaro:getValue(deviceID, "energy")

function urlencode(str)
	if (str) then
		str = string.gsub (str, "\n", "\r\n")
		str = string.gsub (str, "([^%w ])",
		function (c) return string.format ("%%%02X", string.byte(c)) end)  
		str = string.gsub (str, " ", "+")
	end
	return str
end



 -- http requete
   local http = net.HTTPClient()
http:request("http://192.168.0.16:8080/domotiquefibaro/fibaro_add.php?times="..times1.."&timestamp="..timestamp.."&nomdevice="..urlencode(tostring(nomdevice1 or "empty")).."&piece="..urlencode(tostring(piece1 or "empty")).."&section="..urlencode(tostring(section1 or "empty")).."&value="..val.."&power="..power.."&energy="..energy.."", {options = {
method = 'GET'
},
success = function(response) fibaro:debug("OK") end,
error = function(err) fibaro:debug("Error: " ..err) end
})

 

 voici le lien ou j'ai trouver de l'aide

 

 

Modifié par 971jmd
Lien vers le commentaire
Partager sur d’autres sites

pas bête en effet, mais ça va compliquer...

 

L'utilisation d'une base de donnée est un peu excessif pour un simple retour d'état, nan ?

Comme dit, l'objectif est d'animer un plan 2D en fonction des retours !

ça va faire double emplois avec la BDD de la HC2.

 

En fait j'en vois pas trop l'intérêt dans mon cas :) ...

 

Dans mon programme, je pense mettre une minuscule BDD (1 table) pour y stocker les infos du plan 2D ainsi que les requêtes http pour les éventuelles actions émises.

 

 

Lien vers le commentaire
Partager sur d’autres sites

Nous avons le même but

Je souhait crée un page html avec un plan de la Maison et insérée les valeurs de ma base sql....

Mai bon là c'est autre chose


Envoyé de mon iPhone en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

C exactement comme si tu developpais ta propre interface: Côte hc2 tu vas faire des push ou alors jeedom peut faire des get via des module virtuels et le plugin script. Moi j'ai tout basculé sur jeedom mais@Sebcbien (et d'autres certainement) fonctionne en mode hybride il me semble. Je crois même qu il a partagé un script qui facilite cette synchronisation bidirectionnelle. Il interviendra sûrement avec des info plus détaillées.
Par contre ce qui est clair c que tes modules resteraient 100% du côté de la hc2 et du côté jeedom il n y a que des modules (des objets pour jeedom) qui sont virtuels et synchronisent leur état via des get et envoient les ordres par l'api de la hc2.
Jeedom n'a pas de plugin officiel ou générique pour integrer la hc2. Il faudra forcément passer par la case script mais c moins gros que de tout coder.

Pour répondre sur imperihome. C un peu différent. Il y a des layout qui permettent d'afficher des objets gérés par différents systèmes de façon cohérente mais il n'y a pas encore de réel mode plan dont la flexibilité serait totale.

Lien vers le commentaire
Partager sur d’autres sites

Ok donc on peut aussi y créer des VD.

est ce qu'on peut les typer (éclairage, volet, ouverture, dimmer, ...) parce que c'est pas possible sur HC2...

 

j'ai rapidement lu les sujets dans la rubrique jeedom du fofo ;)

 

du coup si je prends une jeedom, ça me sert à rien de prendre une avec le zwave intégré ! 

Je peux prendre une avec un autre protocole Comme enocean ?

moi ce qui m'intéresserait surtout c'est le Bluetooth, Donc j'y ajouterai un dongle...

Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Tu peux essayer via un VM ou ton NAS syno si tu en as un compatible ou alors un PI sans forcément prendre la box de suite. Et si tu bascules sur la box plus tard tu sauras déjà si tu veux migrer tes modules ou pas et donc quel protocole de base acheter. Mois je suis avec une clef gen 5 et si je devais prendre une box je la prendrais sans zwave et resterais sur ma clef pour son côté nomade et le backup. Donc une box onocean ou RFID peut être un meilleur choix dans ton cas à moyen terme et ensuite gen5 si tu veux basculer.

Pour le typage oui il existe avec des catégories pre-définies et tu peux même décider si les éléments doivent apparaître dans le résumé domotique ou non. C un peu comme le dashboard fibaro mais c toi qui décide qui doit y participer et à quel titre.
La notion de virtuel est assez importante dans jeedom. Par exemple je cache maintenant 75% de mes modules zwave derrière des Virtuels et ça me permet de contrôler plus finement leur comportement ou de renommer leur commandes pour le contrôle vocal en particulier. Un double relais switch va donner deux virtuel et il peuvent avoir des types différent, des pièces différentes.... Tu es libre

Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Il faut prévoir un petit temps d'adaptation en venant de HC2, prend bien le temps de voir des exemple de dashboard sur le net. De toute façon je dirais de n'a pas se précipiter sur le mode plan actuel de jeedom car la roadmap annonce qu'il va être profondément remanié pour se simplifier et être plus souple.
Je n'ai aucun plan et suis dans cette attente mais pour moi le plan est secondaire. Les scénarios font le boulot.

Lien vers le commentaire
Partager sur d’autres sites

Oui tu as raison, il me faudra un temps d'adaptation... de l'interface déjà...

Mais je pense que je vais commander ça cette semaine...

 

Mon projet avec WinDev, je le met de côté, j'ai réussi à faire communiquer 2 systèmes complètement indépendant, c'est déjà ça :).

Je pensais pas y arriver aussi simplement (quand même quelques heures de recherches ;))

 

 

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...