Étape 9: Débogage de vos règles
Il généralement quelques options vous sont ouvertes lorsque vous déboguez des OpenHAB (sur le Raspberry Pi) avec le concepteur de OpenHAB (sur le PC). Il s’agit de sémantique et débogage fonctionnelle.
Sémantique de débogage
Si vous n’optez pas pour utiliser le concepteur de OpenHAB, l’un des avantages du logiciel est-ce vous aidera collecte toutes les erreurs sémantiques en mettant en évidence la ligne en erreur avec un « x » rouge (en photo 3 ci-dessus), ici le logiciel a détecté l’erreur aléatoire texte 'ThisIsABlatantMistake' et souligné.
Le logiciel vous aidera également à compléter votre code en offrant des solutions de rechange possibles (comme dans la photo 2 ci-dessus). Pour obtenir cette aide, tout en tapant, appuyez simplement sur Ctrl-espace. Peu de temps plus tard un menu déroulant apparaît, détaillant les alternatives possibles. Haut/bas touches de direction pour faire votre sélection et appuyez sur entrer pour faire votre choix.
Fonctionnelle de débogage
Cette zone de debug est un peu délicate. Une fois entrés tous votre code pour .sitemap, .rules, .persist, transformations (cartes, Java Scripts etc) et .certains qui est raisonnablement simple. Vous pouvez pointer votre navigateur Chrome sur votre site d’accueil (http://openhab.local:8080/openhab.app?sitemap=stevequinnhousehold), actualiser et voir le fruit de votre travail sous vos yeux.
Mais que se passe-t-il si vous travaillez sur une règle et vous obtenez pas de réponse ou une réponse chome qui n’a aucun sens. Si une telle situation se produit alors vous pouvez utiliser la journalisation pour vous aider à déboguer. Voir https://github.com/openhab/wiki/Rules pour plus de détails (processus généralisé représenté dans Fig 1). Cependant en bref, vous pouvez effectuer efficacement instruction print de débogage si vous procédez comme suit (photos 4 et 5 ci-dessus) ;
Ouvrez PuTTY, vous connecter à votre serveur de OpenHAB et entrer ;
- queue -f /var/log/openhab/openhab.log
- Pour activer journalisation dans vos règles, modifier le fichier logback.xml ;
- sudo nano /etc/openhab/logback.xml
- Recherchez la ligne suivante ;
- {name="org.openhab logger" niveau = "INFO" /}
- Entrer dans ce au-dessous ;
- {name="org.openhab.model.script.stevequinnhousehold logger" niveau = "DEBUG" /}
- Enregistrez vos modifications et quittez nano ^ X, y, le retour
- Ajoutez la ligne suivante à votre fichier de règles, dans l’état de l’intérêt. C’est à dire le seul que vous déboguez.
- logDebug ("stevequinnhousehold", « Règle en cours de débogage »)
- Enregistrez vos modifications dans le fichier .rule dans le concepteur de OpenHAB.
- Un peu de temps après le journal à queue indique les changements en cours de lecture par le serveur OpenHAB: "modèle d’actualisation ' stevequinnhousehold''
- Lorsque votre règle exécute le code d’intérêt ce qui suit s’affiche dans le journal à queue ;
- AAAA-MM-JJ HH : MM:. S [DEBUG] [del.script.stevequinnhousehold] - règle en cours de débogage
.
Donc en utilisant cette méthode, que vous pouvez imprimer déboguer votre logiciel jusqu'à ce que vous résoudre tous les problèmes. Pour faciliter votre compréhension, j’ai quitté certains code de débogage dans le fichier stevequinnhousehold.rules, règle « Contrôles Sync ».
.
Astuce : Quitter un programme de ligne de commande en cours.
Il y a quelques différences subtiles lorsque vous quittez un programme sur un système Linux en utilisant ^ C (Ctrl-C) et ^ Z (Ctrl-Z). Selon comment vous utilisez ces commandes, vous pouvez obtenir ce que pense est un comportement étrange.
Ctrl-C: Cette commande va sortir et mettre fin à un programme en cours d’exécution. Vous pouvez l’utiliser pour quitter de l’exemple de journal à queue ci-dessus.
Ctrl-Z: Cette commande interrompt un programme et vous redonne la ligne de commande. En effet, votre programme auparavant invoqué est toujours en mémoire mais n’obtient aucun temps processeur. Pour terminer correctement un programme après avoir utilisé ^ Z, vous devrez réactiver le programme suspendu en tapant fg puis ^ C. Si vous redémarrez un programme qui a été suspendu avec ^ Z vous pouvez trouver des comportement étrange, étant donné le programme sont effectivement toujours chargé avant d’essayer de charger sur le dessus.
.
Remarque : pour ' {' lire moins d’et pour '}' lecture supérieure. Malheureusement, l’éditeur de Instructables bandes ces caractères de votre texte.