Lua et json

json_luaLes dernières versions de Domoticz donnent maintenant la possibilité de lire/fabriquer, dans nos scripts Lua, des fichiers au format JSON en natif sans autre outil externe.

L’intérêt est grand en effet d’avoir des outils pour exploiter ce format qui est utilisé nativement dans Domoticz, mais aussi dans de nombreux sites web afin de donner aux utilisateurs des possibilités d’interrogation, citons juste l’api de Domogeek, celle de méteo France, airaprif …..

Rappel pour ceux qui arriveraient maintenant https://easydomoticz.com/lapi-json-de-domoticz-demythifiee/ et la bibliothèque complète https://easydomoticz.com/traduction-francais-de-lapi-json-domoticz/

Encore une fois il s’agit de la traduction de la page correspondante du wiki https://www.domoticz.com/wiki/Lua_-_json.lua

Utilisation

Rien n’est à installer puisque les versions après le 23/11/2016 (build  8e0dfd5) incorporent un fichier JSON.lua dont nous allons voir l’utilisation ici.

Dans chaque script Lua qui aura besoin d’utiliser des valeurs renvoyées au format JSON, il nous suffira d’appeler ce fichier JSON.lua. Ce fichier est dans le répertoire des scripts lua que ce soit sous Linux ou Windows©.

Exemples

Domoticz

Imaginons que je cherche à récupérer dans un script Lua, le nom et la valeur actuelle d’un dispositif interne à Domoticz.

Comme en tapant dans un navigateur :

http://192.168.1.81:8080/json.htm?type=devices&ridx=226 ou le ridx=226 est l’idx de mon périphérique Domoticz et 192.168.1.81:8080 , l’IP et le port de mon Domoticz.

je reçois cela en retour

Je vois que le nom est dans Name et la valeur dans Data ET TOUT CA dans le « pavé » nommé ‘result’

Le script utilisant la bibliothèque JSON.lua serait :

  • on incorpore le fichier JSON.lua
  • on appelle curl pour interroger le site web qui nous renverra ses données JSON  (ici mon Domoticz)
  • la variable ‘blocjson’ contient tout le pavé JSON, (enlevez les — devant pour voir ce que vous avez reçu)
  • puis l’appel de result[1].Name, result[1].Data nous permet d’assigner nos variables.

Oui, mais pourquoi result[1] ? , cette syntaxe correspond au fait qu’il s’agit du 1er « pavé » nommé ‘result’  dans mon JSON (même si l’y en a qu’un seul).

Weather Undergroud

La doc du wiki prend en exemple le site Weather Ungerground

On voit dans la documentation qu’il nous renvoie la météo sous cette forme JSON

Le script du wiki retire longitude et latitude par un

car je dois aller à current_observation puis display_location pour « tomber sur » latitude et longitude, faites bien attention aux {} d’imbrication et au crochets.

Ça marche pas

Si votre script Lua ne vous renvoie rien :

  • vérifiez les noms des champs dans le JSON, attention aux majuscules/minuscules.
  • avez vous bien respecté le chemin vers votre valeur wwww. xxxx.yyyyy.zzzz
  • si comme pour Domoticz le champ que vous voulez extraire est dans un truc à crochets et accolades ->

il faut utiliser xxxxx[1].mon_champ pour extraire la valeur correspondante.

Conclusion

Loin d’avoir exploré tous les cas de figures d’utilisation de cette nouveauté de Domoticz, l’intérêt apporté est grand et nous permet encore plus d’ouverture et toujours plus de puissance dans notre box domotique préférée.

Résultat de recherche d'images pour "youpi"

 J’adore ces images des années 70

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

2016, le récap.

Voici le sommaire des articles publiés sur le blog durant cette année. Soit 39 billets.

Série sur Domoticz et les scripts Windows

https://easydomoticz.com/domoticz-et-windows-les-scripts-powershell-1/

https://easydomoticz.com/domoticz-et-windows-les-scripts-powershell-2/

https://easydomoticz.com/domoticz-windows-et-powershell-envoyer-un-sms-via-free/

https://easydomoticz.com/domoticz-et-windows-scripts_et_action_on_action_off/

https://easydomoticz.com/powershell-et-airparif/

https://easydomoticz.com/maison-pilotee-domoticz-windows-sait-tweeter/

https://easydomoticz.com/powershell-domoticz-twitter-2/

https://easydomoticz.com/gestion-tarifs-edf-lapi-domogeek-powershells/

https://easydomoticz.com/powershell-windows-ecrire_via_json/

https://easydomoticz.com/utiliser-planificateur-de-taches-windows-scripts-powershell/

https://easydomoticz.com/windows-domoticz-et-powershell-utiliser-json/

https://easydomoticz.com/connecter-raspberry-directement-a-pc-windows

Inside Domoticz

https://easydomoticz.com/les-tables-domoticz/

https://easydomoticz.com/sqlite-manager/

https://easydomoticz.com/lapi-json-de-domoticz-demythifiee/

https://easydomoticz.com/traduction-francais-de-lapi-json-domoticz/

Matériel

https://easydomoticz.com/notifications-radio/
https://easydomoticz.com/installation-dun-portier-video-controle-douverture-pilotes-domoticz/
https://easydomoticz.com/ipx800/
https://easydomoticz.com/beacon/
https://easydomoticz.com/detection-de-presence-beacon-partie-2/
https://easydomoticz.com/domoticz-url-cameras/
https://easydomoticz.com/arretez-framboise-mettez-a-lorange/
https://easydomoticz.com/domoticz-dash-button-amazon/
https://easydomoticz.com/onduleur-raspberry-domoticz/

Scripts

https://easydomoticz.com/bientot-disponible/  :  pilotage des led RGB via JSON et Widget

https://easydomoticz.com/suivre-les-cours-de-bourse-grace-a-domoticz/

https://easydomoticz.com/envoyer-email-raspberry

ttps://easydomoticz.com/imperihome-nouvelle-version-nodejs/

https://easydomoticz.com/le-httplink-domoticz/

https://easydomoticz.com/debian-jessie-wheezystretch-sid-connaitre-version-de-debian/

https://easydomoticz.com/lien-tasker-domoticz/

https://easydomoticz.com/prvision-pluie/

https://easydomoticz.com/une-editeur-de-scripts-lua-integre-a-domoticz/

https://easydomoticz.com/scripts-plus-faciles-domoticz-dzvents/

https://easydomoticz.com/dzvents-domoticz-scripts-nont-jamais-ete-plus-faciles/

https://easydomoticz.com/scripts-dzvents-entrons-details/

https://easydomoticz.com/commandes-vocales-via-jarvis/

https://easydomoticz.com/commandes-vocales-via-jarvis-adaptations/

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Onduleur, Raspberry, Domoticz

Voyons ici comment gérer un onduleur relié à notre Raspberry Domoticz.

Nous prendrons un cas simple ou le raspberry devra s’éteindre tout seul avant la fin des batteries de l’onduleur.

Il y aura deux épisodes à cette saga.

Prérequis

L’onduleur devra être équipé d’un port USB que vous relierez à un des ports USB du Raspberry avec le câble USB correspondant.

Alimentez votre raspi par un des connecteurs électriques dédiés de l’onduleur.

Faites attention il y a parfois des sorties électriques secourues par l’onduleur et d’autres non secourues. Branchez vous bien entendu sur une sortie protégée (c.f. logo ou « Battery » par exemple).

Ouvrez une session ssh sur le Raspberry pour continuer la configuration.

Installation

Tapez la ligne suivante afin d’installer les outils usb si il n’existent pas.

Puis le logiciel de gestion de l’onduleur

Configuration

Lors de l’installation, il s’affiche :

Comme indiqué il faut éditer /etc/nut/nut.conf par un

Et on place tout en bas le mode à  standalone

Configuration de l’onduleur

Tapez ensuite

un fichier apparait :

Nous allons changer la partie upsname en supprimant les # de début de ligne.

  • Remplacez [upsname] entre crochets par un nom de votre choix identifiant cet onduleur.
  • driver = devra être rempli avec le nom du driver spécifique à votre onduleur, allez sur cette page pour rechercher votre modèle http://networkupstools.org/stable-hcl.html au bout à droite figure le nom à utiliser dans cette ligne.

Si vous ne trouvez pas, pas de panique beaucoup d’onduleurs fonctionnent avec le driver blazer_usb

Sinon recherchez sur le net avec le nom de votre onduleur pour trouver la référence correcte du matériel.

  • port = mettez auto pour que le Raspberry se débrouille , sinon mettez le vrai tty « /dev/tty/ACMO »

Ce qui fait  :

Mon onduleur se nomme ond_rasp_dz

on démarre par

et paf une erreur

il s’agit d’un problèmes de droits sur les ports usb, accordons les droits en notant les nombres affichés dans l’erreur ci-dessus.

On crée un fichier de règles pour l’onduleur.

Vous pouvez mettre le nom que vous voulez, toutefois le nom de l’onduleur préfixé par 10 est clair et explicite.

et on met la ligne  :

 SYSFS{idVendor}=='0665', SYSFS{idProduct}=='5161', MODE='0666'

Rebootez le pi, rebootez sinon ça marche pas.

Une fois le pi relancé , retirez le câble usb, patientez 10 seconds, rebranchez.

Maintenant interrogeons l’onduleur par la commande upsc suivie du nom donné plus haut.

me renvoie (cela dépend de votre onduleur)

On voit entre autres la charge que votre matériel « tire »sur l’onduleur (ups.load 10), le status (OL) = on line , (OB)= sur batteries , le délai avant shutdown (ups.delay.shutdown)

Nous avons donc un onduleur qui fonctionne en liaison avec notre Raspberry, nous verrons comment programmer des instructions d’extinction dans un prochain article.

Quelques références

http://networkupstools.org/ le site de nut

https://doc.ubuntu-fr.org/nut  et http://ovanhoof.developpez.com/upsusb/ pour des explications assez génériques.

Quelques trucs en vrac

Problèmes de droits

En faisant un lsusb sans câble USB puis avec on voit apparaître la ligne concernant l’usb relié à l’onduleur.

dans mon cas

Je vois que l’on est sur le bus 001 , port 004

On va voir les droits par un

on voit bien que le port 004 est associé à nut, Sinon un

remet tout ça en place.

Connexion refused, data stale, init SSL

Ces messages sont souvent résolus par le fait de débrancher/rebrancher le câble usb APRES avoir changé udev/rules.d ET avoir rebooté.

Les commandes de l’onduleur

sudo upscmd -l nom_de_l_onduleur donne la liste des commandes comprises et exécutables par l’onduleur, pratique pour le piloter par scripts.

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Domoticz et Dash button Amazon

Avez vous vu les boutons Amazon DASH ?

Ces objets connectés qui permettent d’un simple appui de commander des sachets de thé, de la bière, des préservatifs, en passant par la lessive et les couches pour bébé.

Résultat de recherche d'images pour "dash button"
C’est incroyable ce que le marketing peut inventer pour nous faire consommer toujours plus. 👿
Et bien luttons et utilisons le petit bouton magique ( 😳 ) pour autre chose.
Piloter un switch par exemple.
Bien sur cela existe déjà, cela peut être fait via des simple esp8266 et un bouton, mais les non bricoleurs comme moi seront heureux de trouver un gadget tout fait.

 

Ou trouver le Amazon DASH ?

Chez Amazon parait être la bonne réponse, cela nécessite un compte Amazon premium, activez ce compte (c’est gratuit un mois), commandez un/des DASH à 4.99 €, remboursés lors de la 1ere commande.

Le mois gratuit premium laisse le temps d’activer notre Dash, sinon c’est 49 € à l’année.

Comment ça marche ?

Le DASH bouton utilise le Wifi de chez vous pour passer sa commande lors de l’appui. Il se connecte au compte Amazon configuré lors de la première utilisation pour passer commande.

L’idée est donc de ne pas aller jusqu’au bout de la configuration pour éviter de commander un semi remorque de couches Pampers.

Comment fait on ?

  • Il vous faudra un téléphone Android ou Ios.
  • Vos codes d’accès Wifi
  • Le  AMAZON DASH

Je vais décrire rapidement la partie Amazon qui ne représente par la partie essentielle ici.

Il faudra télécharger l’appli Amazon dans le store.

  • Appuyez sur l’icône Menu (dans l’angle supérieur gauche).
  • Sélectionnez Votre compte.
  • Sous Appareils Dash sélectionnez Configurer un nouvel appareil.
  • Après identification vous entrerez vos codes Wifi. Je tiens à vous faire remarquer qu’ils sont stockés chez Amazon.
  • Lors de la sélection du produit à commander, quittez la procédure.

Je réécris : »On quitte donc sans choisir de produit. » après la configuration du WIFI.

stop_config

dash_no_product

N.B : Dans le menu des appareils DASH on peut supprimer un DASH.

Lire la suite

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/