Rajouter des protocoles à RCSwitch (En émission)

edited février 2014 in Le tuto du poivrot
Bon accrochez vous ça va être un peu complexe mais bien moins qu'on pourrait le croire.
C'est encore loin d'être fini mais ça devrait intéresser les bidouilleurs

Commentaires

  • C'est quoi exactement RCSwitch?
  • C'est une bibliothèque qui permet d'envoyer et de recevoir des codes radios sous formes binaires/décimales sur Arduino/Raspberry (et envoyer uniquement) sur des attiny85
    Ça fonctionne principalement pour contrôler des prises de courantes/sonnettes plus ou moins noname. (Scs/venix...)

    http://code.google.com/p/rc-switch/
    ^
    |
    Do not trust this guy , he knows nothing about computer science or electronics, it is just here for your wallet
  • Quel est l’intérêt à partir du moment où on fais déjà très bien ça avec homeesay et nos propres prises, lampes,...
    ?
  • ben l’intérêt, c'est que si t'as déjà le matos sus-cité, tu peux l’intégrer a ton installation (j'avais pas fait gaffe, mais c'est du scs que j'ai, à 15 euros les trois prises en promo, j'ai pas hésité longtemps, je me tâte même a en reprendre ...)
  • Oui effectivement vu le prix c'est intéressant. 
  • Dis tu devrais peut-être le mettre en lecture seul ton doc google non?
  • "Quel est l’intérêt à partir du moment où on fais déjà très bien ça avec homeesay et nos propres prises, lampes,..."
    J'utilise aussi RCSwitch pour envoyer des commandes à des Arduinos, ça permet de gérer ça facilement
    Ca peut servir à communiquer dans les deux sens avec un Raspberry Pi/Arduino sans trop se prendre la tête je pense.

    "Dis tu devrais peut-être le mettre en lecture seul ton doc google non?"
    Ouaip bien vu merci.
    ^
    |
    Do not trust this guy , he knows nothing about computer science or electronics, it is just here for your wallet
  • Ok je vois. 
  • salut,
    petite idée pour simplifier l'ajout de protocoles a rcswitch:
    stocker les temps dans un tableau, de préférence utilisant une clef texte, permettrait d'ajouter simplement de nouveaux protocoles, sans avoir 15 if a la suite ...
    du genre en php (à adapter du coup):
    $protocoles = array ("scs"=>
     array("name"=>"protocole pour prises scs", "init"=>5000, "on"=>250, "off"=>50, "fin"=>2500))

    et dans le code on a juste à récupérer les temps de la bonne ligne du tableau ... (c'est au pif dans l'exemple hein, et j'ai pas en tête tous les temps à avoir)
  • Bonjour,

    rcswitch compatible avec plusieurs protocoles est super intéressant.

    Les prises et interrupteurs domotique BLYSS et ASTRELL (castorama et autre prise low cost avec chipset RISINGSUN) ont déjà été hackés à 100% avec un ARDUINO (http://skyduino.wordpress.com/2012/07/19/hack-partie-2-reverse-engineering-des-interrupteurs-domotique-blyss/) le protocole est expliqué de A à Z mais n'a jamais été adapté sur raspberry, j'ai essayé de regardé un peu en suivant ton tuto mais bon si tu pouvais me donner ton avis si c'est transportable avec la librairie RCSWITCH avant que je n'y passe plus de temps ...

    Merci d'avance

  • edited mars 2014
    J'ai regardé un peu pour les BLYSS et ça à l'air faisable:

    Too long don't read
    Théoriquement c'est faisable (au final c'est toujours des digitalWrite en Low/High avec des délais en microsecondes)
    Mais pour convertir les données fournis en codes binaires à envoyer va y avoir pas mal de boulot.


    Les différences que j'ai noté (à première vue)
    --> Sur RCSwitch il n'y a qu'un footer (le sync) qui est envoyé à la fin du message donc il va falloir gérer le header/footer ainsi que le rolling code.

    Il rédefinit les digitalWrite, je pense qu'il vaut mieux éviter.
    #define SIG_HIGH() digitalWrite(RF_TX_SIG, HIGH)
    #define SIG_LOW() digitalWrite(RF_TX_SIG, LOW)

    Les send0/send1 fonctionne à l'inverse (LOW puis HIGH) et il les envoie directement alors que sur RCSwitch passe par la fonction transmit.

    Il utilise des codes hexadécimale en entrée au lieu de décimale/binaires.

    Tu risques de pas pouvoir profiter beaucoup du fonctionnement d'origine du RCSwitch à moins de réadapter tout en gros.

    Aussi j'ai l'impression que les valeurs RF_BUFFER/RF_KEY/data sont des variables globales et ça RCSwitch va pas du tout aimer, j'ai eu le même problème avec HomeEasy et au final c'est pour ça que je me suis pris la tête à réadapter tout.

    En faite ces variables ont l'air d'être mis à jour au fur et à mesure
    Dans l'idéale il vaut mieux une seul fonction avec tout les valeurs que l'utilisateur va fournir (comme mySwitch.send)
    Dans cette fonction les valeurs sont traités pour devenir un code binaire entier à balancer.
    Comme ça il n'y a pas à gérer des retours de fonctions de partout pour compenser.

    ^
    |
    Do not trust this guy , he knows nothing about computer science or electronics, it is just here for your wallet
  • Bonjour maditnerd,

    Merci pour ta réponse, bon je vais essayer de regarder ça quand j'aurai terminé mon projet de déportement d'émetteur infrarouge via radiofréquence avec un atmega328 un récepteur rf et une led IR.

    C'est fou comme on peut s'amuser avec tout ça :-)
  • Bonjour 
    J'ai regardé ce tuto avec beaucoup d’intérêt et je comptais bien mettre en application la démarche  https://docs.google.com/document/d/1qKV8FnC6NlR9o64RVOuPkvZY4ftDnHdZjoYikY5kaYc/edit#. 
    En fait Je recherche le protocole du smart home MMV-100 pour le récepteur et tel-010 pour l’émetteur. Concernant l'analyse du signal  c'est ok. 
     image
    Par contre la modification de RCSwitch est plus flou pour moi  et je me demande si l’évolution de RCS n'en ai pas la cause.
    J'ai donc quelques questions pour cela :
    Quelle version de RCSwitch est à prendre?
    Quel module doit être modifié  RCSwitch.h , RCSwitchcpp ...?

    Pour info ma configuration est la suivante raspberry PI + Arduino nano + émetteur/récepteur radio AM433.92MHz
    Merci d'avance pour la réponse 



Sign In or Register to comment.