Aller au contenu

Domotique Sur Syno


Messages recommandés

Arf ba moi je galère avec cette MySQLdb ... j'ai essayé plusieurs versions mais rien à faire. Je pense qu'il faudrait que je nettoie à fond ipkg car lorsque je désinstalle les modules ,certains fichiers restent. Je vais tester le spk de synocommunity (merci à Diaoul).

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 173
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

A l'attention de tout ceux qui utilisent MySQLDb : c'est un module assez vieux et qui ne sera probablement plus utilisé dans les versions futures de Python (pas de mise à jour majeur depuis 2007)

Je ne peux que vous encourager à utilise SQLAlchemy, c'est simple d'utilisation, portable et bien documenté : http://www.sqlalchemy.org/

De la même manière, privilegier une base SQLite c'est bien aussi pour la portabilité.

Sur ce, bon scripting :)

Lien vers le commentaire
Partager sur d’autres sites

Pour vous faire un environnement dédié Python en utilisant le SPK de SynoCommunity :

/usr/local/python/bin/virtualenv --system-site-packages /chemin/vers/un/repertoire

/chemin/vers/un/repertoire/bin/python votrescript.py
Vous pouvez installer des modules python sur cet enviromment dédié :
/chemin/vers/un/repertoire/bin/pip install pyserial[/code]

Lien vers le commentaire
Partager sur d’autres sites

Petite info en passant je m’aperçois en faisant les tests que la radio du RFXtrx433 est moins sensible que celle de mon RFXcom LAN. Car je ne vois pas tous les capteurs que je vois sur mon RFXcom. Et en rapprochant le capteur concerné il le voit bien

Affaire à suivre...je continue mon programme en Python pour faire la partie TX avec un mini serveur HTTP en python (Merci Sp@ro !) et RX vers MySQL... ca commence a marcher comme je le voulais :)

Patrick

Lien vers le commentaire
Partager sur d’autres sites

du site, enregistrer le changement d'un état dans une table spécifique de la base mysql. Dans le script python, (à la fin ou au début) aller lire cette table, si une commande est détecté, envoyer la trame dédié à la commande (avec ser.write() ). De cette manière, meme si le script n'est pas prêt pour la reception des commandes, il le fera à la prochaine passe (voir même envoyer des commandes multiples s'il y en a).

Lien vers le commentaire
Partager sur d’autres sites

Autant envoyer des requêtes https directement au script, il faudrait seulement le multi threader pour qu'il puisse gérer les deux fonctions separement....

Lien vers le commentaire
Partager sur d’autres sites

En fait après test il est parfaitement possible de partager la liaison serie entre deux programmes python séparés (alors que je pensais que ce n'était pas possible)

Donc je suis en train de développer deux programmes "domo_rx.py" pour recevoir les valeurs des capteurs et les ecrite dans MySQL et un programme "domo_tx.py" pour envoyer des commandes à mes interrupteurs...

A suivre...je publierais le code complet sur mon site web une fois que cela fonctionnera parfaitement

Patrick

Lien vers le commentaire
Partager sur d’autres sites

Oui mais l'enregistrement des commandes permets notamment de se servir du rfxcom en tant que relais. Imagine tu as une prise commandée avec la télécommande. Si la commande directe n'est pas passé, le rfxcom peut prendre le relai. Les commandes peuvent se faire via bouton et non plus seulement via interface web.

Lien vers le commentaire
Partager sur d’autres sites

Je vois ce que tu veux dire, en gros tu envois deux fois la commande, une fois directement avec la télécomménde (ou le bouton mural) et tu répète la commande avec le RFXtrx433 après l'avoir décodé en réception...ouai...faut voir si ca sert vraiment !?

Patrick

Lien vers le commentaire
Partager sur d’autres sites

Je ne vois pas ou est le problème je peux commander mes prises soit :

Avec mon appli iPhone (même depuis l'autre bout de la planète)

La zappet d'origine

Mon serveur web

Ma télécommande IR relayer par le rfxcom

Mais attention le x10rf ne permet de pas d'aquitement en clair tu envois un ordre en espérant que l'équipement le reçoive mais tu n'en sais rien, les télécommande émette en générale 3 fois l'ordre pour être sur ...

Le rfxcom et plus malin il attend qu'il n y ai plus de com en cours avant de parler, ce qui parfois étrange tu lui envoi un ordre et il attend parfois qq seconde avant de le transmettre

Lien vers le commentaire
Partager sur d’autres sites

Au final, les deux méthodes font la même chose. Cela permet aussi d'avoir l'historique des commandes (savoir si tu as bien éteint la lumière avant de partir par exemple).

Je ne critique pas ta méthode ;) j'essaie de penser autrement afin d'améliorer la chose. Sans toi je ne me serais pas lancé dans la domotique.

Mon code pour le RX est quasi fini (encore quelques petites optimisations).

Lien vers le commentaire
Partager sur d’autres sites

Le problème de ta méthode c'est que tu va devoir requêté très souvent ta base mysql pour récupérer l'odre de télécommande c'est dommage de requête tt les secondes ta base de donne juste pour cela ..... Mais c effectivement faisable ...

T'inquiète je le prends pas mal mais je défend juste mes idée :)

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.