Interface Vitodens 200 avec Raspberry Pi

  1. daffyb
    (16) Charente
    Bonjour à tous.
    Ce que vous allez découvir :
    Cet article a pour but de détailler la méthode que j'ai appliquée pour interfacer ma chaudière Viessmann équipée d'un Vitodens 200 avec un Raspberry Pi et ainsi pouvoir monitorer la chaudière, la piloter et plus…
    Je ne serai pas responsable d'une éventuelle dégradation de votre matériel.
    L'ensemble des informations ci-après ont été trouvées sur internet, ajustées et traduite.
    Vous DEVEZ comprendre ce que vous faites !


    Ce que vous n'apprendrez pas :
    De nombreux points ne seront pas abordés dans ce sujet, car il n'a pas vocation à tout détailler.
    Vous n'apprendrez pas à sécuriser l'accès internet, faire de la redirection de port, vous connecter en ssh, faire du php ou du html et encore moins du javascript. Parcontre, avoir des notions dans ces domaines est un vrai plus pour comprendre le fonctionnement.

    J'ai une chaudière Viessmann Vitodens 222-F type B2SA avec une régulation Vitotronic Vitodens 200 type HO1B.
    Ce tuto a été réalisé avec CE MATÉRIEL et il n'y a aucune garantie de fonctionnement pour un autre type.

    Pour réaliser cet interfaçage, vous avez besion d'un optolink :
    optolink : http://openv.wikispaces.com/Bauanleitung+USB

    d'un Raspberry Pi (B+ par exemple. Testé avec un B et un B+)
    Raspberry Pi B+ http://fr.farnell.com/raspberry-pi/raspberry-modb-512m/carte-raspberry-pi-model-b/dp/2431426

    Une très importante partie de ce que je vais détailler est déjà disponible ici :
    Logiciel

    Il faut en plus de la chaudière
    le hardware :

    Si vous êtes prêt, alors allons y !

    1/ Formatter la carte SD avec SDFormatter
    2/ Copier le contenu dossier NOOBS (NOOBS_v1_3_12) sur la SD-Card
    3/ Démarrer le Raspberry Pi et installer Raspbian en français
    4/ Connexion du Raspberry Pi en ssh pi@<IPaddress> raspberry
    5/ Mise à jour de raspbian :
    6/ Installation des packets nécessaire (telnet, Apache, PHP, MySQL)
    7/ Vérification de l'interface
    Connectez l'adaptateur Optolink et vérifiez avec lsusb qu'il a été vu et reconnu :
    8/ Nom de l'interface
    S'il y a plusieurs adaptateur connecté au Raspberry Pi alors il est important de noter leur nom unique.
    Localisez le ID_SERIAL_SHORT
    Éditez le fichier (ou créez le s'il n'existe pas)
    (adaptez avec vos valeurs)
    Redémarrez le service udev :
    Si ne marche pas, reboot du Pi
    Voici ce qu'on obtient maintenant avec un ls sur les périphériques :
    9/ Installation de ViTalk
    copier le contenu de l'archive viTalk.zip dans /var/
    **ou**
    10/ Lancement automatique de ViTalk
    copier le contenu de l'archive vitalk_launch.zip dans /etc/init.d
    **ou**
    ** ajouter cela en début de fichier **
    11/ Création du serveur www
    Copier l'archive dans /var/www
    Faire les ajustements des chemins pour les css, js…
    Configurer le serveur dans le fichier vitoPHP.js (qui se trouve dans www/js)
    Mettre le mot de passe de root pour MYSQL dans le fichier GetData1.php (qui se trouve dans www/graph)
    Ligne 87 du script python, mettre le mot de passe root MYSQL


    12/ Création de la base SQL vito
    Lancer mysql :
    le mot de passe est celui qu'on a entré lors de l'installation de mysql
    on va créer la base "Vito"
    on sélectionne la base nouvellement créée :
    13/ Création de la table Vito et des colonnes time (datetime), comm (varchar(14)) , value (smallint(6))
    **Quelques commandes**
    #Pour afficher les tables :
    SHOW TABLES;
    #Pour afficher le contenu de la table
    DESCRIBE Vito;

    14/ Création de la tâche cron
    On ajoute un script python
    on copie le script python dans ce dossier
    exemple de commande
    On rend exécutable le script
    Pour réaliser un relevé de mesures toutes les 2 minutes on ajoute cette ligne dans le crontab de root:
    15/ limitation des fichiers de log
    À faire pour éviter de trop écrire sur la carte sd.

    **BONUS**
    #Configuration du WiFi en ligne de commande#
    taper pour lister l'ensemble des réseaux accessibles :
    On édite le fichier de conf :
    A la fin du fichier, on ajoute les lignes en gardant les guillements:
    Si la configuration n'est pas prise en compte, on peut relancer l'interface :
    Sinon,

    **Désactiver IPv6**
    Si vous n’utilisez pas les fonctionnalités d’IPv6, vous pouvez le désactiver ce qui économisera les ressources de votre RaspBerry Pi et qui améliorera ses vitesses de connexion.
    Pensez à redémarrer votre Raspberry.

    **********************************
    * Liste des fichiers en téléchargement *
    **********************************
    vitalk_launch.zip
    viTalk.zip
    vito.py.zip
    www.zip
    Fichier3D.zip
     
    Dernière édition par un modérateur: 18 Mars 2015
    daffyb , 1 Mars 2015
    #1
    flux_capacitor aime ça.
  2. daffyb
    (16) Charente
    et si tout va bien, vous devriez avoir quelque chose qui ressemble à ça :

    [​IMG]
    [​IMG]
    [​IMG]
     
    Dernière édition par un modérateur: 1 Mars 2015
    daffyb , 1 Mars 2015
    #2
  3. voyageur03
    (57) Moselle
    bravo !!!!
     
    voyageur03 , 1 Mars 2015
    #3
  4. gchaud
    (92) Hauts-de-Seine
    Bonsoir,

    bravo de s'être lancé.

    - le module vous l'avez acheté monter, ou il faut sortir le faire à souder ?

    Le câble USB qui sort du module va vers le raspberry ?
    Comment ce module communique avec la chaudière ?

    Merci
     
    gchaud , 1 Mars 2015
    #4
  5. daffyb
    (16) Charente
    Je l'ai acheté monté en envoyant un mail à [​IMG] (voir fin du premier paragraphe à cette page : http://openv.wikispaces.com/Bauanleitung+USB)
    Oui, tout à fait. Il y a une interface USB entre l'optolink et l'ordinateur qui est ici un Raspberry Pi
    C'est optique. A droit et à gauche du V de viessmann il y a un del Verte et une del Rouge.
    En fait, planqué il y a une récepteur infrarouge et un émetteur. On communique avec la chaudière en IRDA (un genre d'IRDA). On a une isolation galvanique. C'est top.
    Au plaisir !
     
    daffyb , 1 Mars 2015
    #5
  6. gchaud
    (92) Hauts-de-Seine
    Merci pour la réponse.

    Dans le pire des cas avec une communication infrarouge est que cela ne fonctionne pas. Je craignais une communication physique (filaire) avec la chaudière.
     
    gchaud , 1 Mars 2015
    #6
  7. daffyb
    (16) Charente
    dans le pire des cas, tu écris des choses dans la mémoire de la chaudière et tu la casses.
    Ca c'est le pire du pire ;-)
     
    daffyb , 1 Mars 2015
    #7
  8. gchaud
    (92) Hauts-de-Seine
    Tant que la chaudière n'explose pas et la maison avec...
     
    gchaud , 1 Mars 2015
    #8
  9. gchaud
    (92) Hauts-de-Seine
    J'ai la carte.
    La carte fonctionne, si je lance les scripts PHP j'ai le retour des valeurs.

    Par contre lorsque je lance l'interface web, reste toujours en waiting data...
     
    gchaud , 17 Mars 2015
    #9
  10. daffyb
    (16) Charente
    Dans le fichier vitophp.js il y a à indiquer l'adresse du serveur. Tu n'aurais pas manqué cette étape ?
     
    daffyb , 17 Mars 2015
    #10
  11. gchaud
    (92) Hauts-de-Seine
    C'est bon.

    Problème rencontré lors de l'installation
    ID_SERIAL_SHORT indiqué dans l'écran ne correspond pas à celui indiqué dans rules...
    vcontrold n'est pas abordé ce qui fait qu'on ne comprend pas ttyUSB0 (il faut aller sur le site dont tu donnes le lien), par contre ne pas s'embarrasser dans le fichier xml de configuration à paramétrer la partie net.
    Bien connecter la carte en enfonçant à fond le connecteur USB (la carte clignote). J'ai perdu 1/2 heure pour un connecteur mal branché.

    Configuration testée sur apache2 et nginx. Dans les deux cas il ne fallait pas entrer dans les fichiers les ip du serveur, mais le nom du type monserveur.domaine, c'est la raison pour laquelle je n'avais pas le chargement des scripts php.


    Pour s'assurer avant les problèmes de serveur que la carte et la communication fonctionne :
    telnet localhost 83 et on aura le message vitalk

    et ensuite lancer dans un client web vito_data.php, on obtient une ligne avec tous les paramètres de lecture.

    Merci pour la procédure.

    Pour info j'ai acheté la carte 43,99 euros avec les frais de port.
     
    gchaud , 17 Mars 2015
    #11
  12. gchaud
    (92) Hauts-de-Seine
    Et voilà le résultat sur une V333 avec vitotronic 200 (version 2005)
    La puissance est limitée à 40%.
    Le seul moment où on arrive à cette puissance c'est le matin lorsqu'on passe en mode éco/confort.
    Lorsqu'on tire de l'ECS la puissance va à 100% on peut le voir sur la courbe jaune température corps de chauffe qui fait un pic. Pour info la température ECS est à 40°C, c'est largement suffisant.

    On voit que les cycles chauffages sont très reproductibles, aussi bien en terme de puissance, de temps et de fréquence, idem pour le profil de la température corps de chauffe.

    La sonde intérieure n'est pas fiable du fait qu'elle est mal placée (b0=0).
    Température confort : 20°C, en mesure entre 21/22
    Température éco : 17°C, en mesure entre 18/20

    Mode éco de 20h00 à 5h30
    Mode confort 5h30 à 20h00

    [​IMG]
     
    gchaud , 18 Mars 2015
    #12
  13. gchaud
    (92) Hauts-de-Seine
    J'ajoute que j'ai installé la carte et la partie soft sur une raspberry pi2 (processeur 4 coeurs, 1 GB de Ram). L'ensemble (kit raspberry pi2 avec alim, carte, wifi, boitier) qui peut servir à gérer la chaudière et bien plus (domotique) revient à 65 euros + 43,99 euros
     
    gchaud , 18 Mars 2015
    #13
  14. daffyb
    (16) Charente
    super ! bien joué.
    Donc le tuto est compréhensible et sans trop d'erreurs !
     
    daffyb , 18 Mars 2015
    #14
  15. gchaud
    (92) Hauts-de-Seine
    Oui, tu n'es plus le seul...

    Il faudrait être un peu plus précis sur la partie vcontrold.

    Sinon je ne pars pas de zéro je suis sous linux depuis 96, par contre je n'avais jamais testé raspbian, qui est une debian. J'ai eu quelques problèmes de package mais ce n'était pas lié à ta procédure.
    Idem j'ai un peu galéré sur la gestion des comptes, et réinstallé raspbian pour comprendre que le compte root n'existait pas et qu'il fallait le créer...

    J'ai regardé également le code de vitalk, pour comprendre comment cela marchait, et je pense le modifier à terme...lorsque j'aurais le temps.
     
    gchaud , 18 Mars 2015
    #15
  16. daffyb
    (16) Charente
    Il y a un soucis au niveau de l'horloge. Je ne sais pas où il se trouve, mais c'est "étrange". Je n'ai pas encore bien cherché le pourquoi du comment, mais lorsqu'on règle le fuseau horaire, alors le graph se décale d'une heure (alors que rien ne change dans la base de donnée)
    Si on reste sur "autre/UTC" alors ça fonctionne.
    Je regarderai ça un de ces quatre (ou pas, tant que ça marche :D )

    Maintenant, on peut aussi dire que ça fonctionne sur un Raspberry Pi 2 !! (un peu gros pour si peu)
    Que compte tu modifier dans le code de vitalk ?

    Pour "optimiser" la connexion j'ai pour la part stocké les JS et les images sur internet pour ne pas avoir à piocher sur le raspberry qui a un débit pourri.
    Autre point d'amélioration que je n'ai pas fait, par faute de temps (et connaissances) c'est faire tourner les pompes en html5/js... Si tu sais faire, je prends :D
     
    daffyb , 18 Mars 2015
    #16
  17. gchaud
    (92) Hauts-de-Seine
    Comme je voulais tester le pi2 c'etait l'occasion de le faire, j'ajouterais dessus le nécessaire pour de la domotique.

    Il y a une erreur concernant la durée de fonctionnement. Cela vient de vitalk.
    J'ai également regardé le code dans vitalk, il y a des adresses mémoires qui ne correspondent pas à ce qu'on retrouve sur http://openv.wikispaces.com
    J'ai commencé à regarder et comparer, mais il va falloir un peu de temps.

    Concernant l'interface web, j'ai vu que tu as redécoupé le code.

    Concernant les pompes, je ne comprends pas ta demande. Car si vitalk permet de mettre on/off les pompes, il n'y a pas de difficulté à le faire.
    En ouvrant le fichier parameter du source vitalk tu trouveras les fonctions accessibles.
     
    gchaud , 19 Mars 2015
    #17
  18. gchaud
    (92) Hauts-de-Seine
    Bonsoir,

    je te confirme qu'il faut modifier vitalk, il y a des erreurs et ne correspond pas à ta chaudière.

    https://docs.google.com/spreadsheet/ccc?key=0AsValdDkc7bxdGx1ek1oMHgxaTVDcXFJRWVMZUtZV0E#gid=0

    dans le fichier au-dessus tu retrouves l'adresse des fonctions spécifiques à ta régulation.

    Tu vas modifier l'adresse dans vito_parameter.c

    par exemple pour runtime tu as 0x886 tu remplaces par 0x8A7 et tu recompiles;

    Tu relances et tu verras que l'heure est bonne.

    Il y a d'autres adresses à modifier dans les fonctions.
     
    gchaud , 19 Mars 2015
    #18
  19. daffyb
    (16) Charente
    en effet, j'étais passé à coté de ça.
    Je jette un œil ce soir... ou plus tard
     
    daffyb , 19 Mars 2015
    #19
  20. gchaud
    (92) Hauts-de-Seine
    pensez à dupliquer le fichier vito_parameter.c

    Hormis la durée bruleur, pas de problème.
     
    gchaud , 19 Mars 2015
    #20
Chargement...
Autres sujets similaires Forum Date

Fonctionnement tuyauterie chaudière viessmann vitodens 222 F

Chauffage 1 Décembre 2016

Panne Viessmann Vitodens 222 WSB

Chauffage 12 Novembre 2016

VITODENS 222-W Un bon choix dans mon cas ?

Chauffage 11 Novembre 2016

Vitodens 222-f et pente et durée monter en température

Chauffage 6 Novembre 2016

acces codage vitodens

Chauffage 29 Octobre 2016