Chez vous c’est open bar ou pas ?

La lecture du blog de korben.info et cet article particulier http://korben.info/scanner-iot.html m’ a donné l’idée de vous alerter sur les aspects de sécurité liés à nos configurations.

En effet la plupart d’entre nous, suivant les tutos ici et la, ouvrent leurs webcams, Domoticz au monde entier sans forcement beaucoup de vigilance vis à vis des hackers du dimanche.

En effet une fois les ports ouverts, redirigés vers Domoticz, ou la webcam connectée à Internet, on oublie souvent que ces équipements sont exposés 24/24 aux scripts kiddies ou bots et que quelques précautions suffiraient à se protéger contre la majorité des attaques.

Nous verrons dans d’autres articles à suivre les quelques mesures à prendre pour sécuriser notre installation.

Toutefois ici pour commencer je vous propose de vérifier comment vous êtes visibles sur Internet puis si vous êtes déjà dans une basse de données d’objets connectés.

Allez tester ici http://iotscanner.bullguard.com/search si votre installation ne s’expose pas trop aux hackers en entrant votre ip publique, celle de mon-ip.com .

Normalement vous ne devriez trouver que des ports ouverts/redirigés que vous connaissez (ceux de Domoticz, de vos cams, sites en autohébergement, … ), bref que des choses que vous avez définies vous même.

Attention ce n’est pas parce que cet outil vous dit que vous êtes vulnérable qu’il faut paniquer à mort. En effet si vous avez une box Internet qui vous permet de téléphoner via SIP, il est fort probable qu’elle soit vue par le scanner mais pas pour autant accessible au premier quidam venu.

 

Regardez dans cet outil si vous n’avez pas trop de ports ouverts.

D’autre part :

Avez vous déjà été sondé par les robots des hackers de l’internet des objets et êtes vous dans leur basse de données ?

vérifiez ici : https://censys.io/

et ici surtout : https://www.shodan.io/  si vous trouvez l’IP de votre frigo, d’une de vos webcam …

et amusez vous dans l’outil explore :

https://www.shodan.io/explore avec les termes de recherche « default password » domoticz

ou on trouve quelques MyDomoAtHome »

Vous êtes dans la liste ?

 

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

626f6e6e6520676e6e6565

b

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/

 

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.