Traduction en français de l’Api json Domoticz

Traduction de l’ API/JSON de Domoticz

Vous en rêviez, et bien voici la traduction en français des commandes que nous pouvons utiliser pour interroger et piloter Domoticz via les URL
Un rappel général de l’utilisation est ici https://easydomoticz.com/lapi-json-de-domoticz-demythifiee/
Comme d’habitude il s’agira d’une traduction « à ma sauce » de la page ici située https://www.domoticz.com/wiki/Domoticz_API/JSON_URL’s. Cette page anglophone reste la seule source valable et mise à jour régulièrement, merci de vous y reporter en cas de questions.
Si vous constatez des erreurs, merci d’en faire part dans les commentaires.

Contenu

Format

Le format général à respecter est de  la forme :

http://<username:password@>domoticz-ip<:port>/json.htm?api-call
  • <username:password@> = le login et le password de Domoticz (optionnel).
  • domoticz-ip =l’ IP-adresse de Domoticz.
  • <:port> =le port de votre Domoticz (optionnel).
  • api-call, la chaine à envoyer pour faire le job.

Ici api-call est donc  tout ce qui suit le ? de json.htm, donc type=command….

ex. http://192.168.1.2:8080/json.htm?type=command&param=udevice&idx=$idx&nvalue=0&svalue=79

A savoir

Si vous avez protégé vos périphériques via la case « Protégé » du widget, les modifs via JSON seront aussi interdites, il faut insérer tout au bout de l’URL  JSON le mot de passe de protection

&passcode=ton mdp

Mieux afficher les sorties

Par défaut votre navigateur internet affichera les valeurs JSON reçues depuis Domoticz dans un ordre quelconque.

Pour faire plus lisible vous pouvez utiliser des plugins qui affichent et reformatent lisiblement les valeurs.
Pour Google Chrome vous pouvez utiliser JSONView (Chrome web store). Pour les autres navigateurs l’identique doit exister, cherchez dans les extensions/add-on pour votre navigateur.

Il existe également ce site web qui reformate les JSON http://jsonviewer.stack.hu/

Autorisations

Lorsque nous utilisons d’autres méthodes que notre navigateur pour se connecter à Domoticz, il peut être nécessaire de s’identifier.

L’authentification HTTP utilise la requête Autorisation sur HTTP, cette authentification est en base 64 contenant le couple user/password. En utilisant votre propre application/script et si votre domoticz est protégé par mot de passe, il vous faudra vous identifier correctement (voir python requests et la méthode auth à ce sujet). Pensez également que l’on peut autoriser certaines ip à se connecter SANS mot de passe dans le paramétrage Domoticz : réseaux autorisés.

Voici le synopsis de la méthode d’identification :

  • Le nom d’utilisateur et le password sont combinés dans une chaine « username:password »
  • Cette chaine est encodée par RFC2045-MIME version en base64
  • Dans la méthode d’autorisation on envoie « Authorization: » un espace puis « Basic  » puis la chaine encodée ci-dessus.

Comme ceci :

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Maintenant sachez que l’envoi des  » http request headers » est dépendant du langage utilisé. Utilisez la documentation appropriée. Python request met à notre disposition des méthodes simples d’authentification.

Réponse

Chaque appel à l’API est suivie d’une réponse : status OK si la commande est réussie , sinon ERR

{
   "status" : "OK"
}

Fonctions Générales

Retrouver le status d’un dispositif précis

/json.htm?type=devices&rid=IDX
  • IDX = est l’idx de votre périphérique recherché (la colonne IDX dans les dispositifs)

Retrouver tous les dispositifs d’un certain type

/json.htm?type=devices&filter=all&used=true&order=Name

Avec le filter=all, vous récupérez la liste de tous les dispositifs. Si vous voulez retrouver les infos de certains types utilisez les filters suivants à la place du filter=all ci dessus .

light = toutes les lampes et switches
weather = tous les device météo
temp = tous les capteurs de température
utility = tous les utilitaires

Retrouver les dispositifs en favoris

/json.htm?type=devices&used=true&filter=all&favorite=1

Cela vous renvoie un tableau avec les dispositifs marqués en favoris (petite étoile jaune) présents sur la page « Tableau de bord ».

Obtenir les levers/couchers de soleil

/json.htm?type=command&param=getSunRiseSet
{
   "ServerTime" : "Sep 30 2013 17:15:21",
   "Sunrise" : "07:38:00",
   "Sunset" : "19:16:00",
   "status" : "OK",
   "title" : "getSunRiseSet"
}

Afficher un message dans le log Domoticz

Vous pouvez faire afficher vos propres textes dans le log Domoticz grâce à :

/json.htm?type=command&param=addlogmessage&message=MESSAGE
  • MESSAGE = contient le message que vous souhaitez afficher.

Lumières et Interrupteurs

Obtenir la liste de toutes les lumières/switches

/json.htm?type=command&param=getlightswitches

ou triés par noms

 /json.htm?type=devices&filter=light&used=true&order=Name

Exemple :

{
   "result" : [
      {
         "IsDimmer" : false,
         "Name" : "Bedroom lights",
         "SubType" : "Energenie",
         "Type" : "Lighting 1",
         "idx" : "43"
      },
      {
         "IsDimmer" : false,
         "Name" : "Hall",
         "SubType" : "Energenie",
         "Type" : "Lighting 1",
         "idx" : "30"
      },
      {
         "IsDimmer" : true,
         "Name" : "Lounge Light Front",
         "SubType" : "RGBW",
         "Type" : "Lighting Limitless/Applamp",
         "idx" : "32"
      },
      {
         "IsDimmer" : true,
         "Name" : "Lounge Lights All",
         "SubType" : "RGBW",
         "Type" : "Lighting Limitless/Applamp",
         "idx" : "66"
      },
      {
         "IsDimmer" : true,
         "Name" : "Lounge light back",
         "SubType" : "RGBW",
         "Type" : "Lighting Limitless/Applamp",
         "idx" : "33"
      }
   ],
   "status" : "OK",
   "title" : "GetLightSwitches"
}

Allumer une lumière, un switch

/json.htm?type=command&param=switchlight&idx=99&switchcmd=On

Éteindre une lumière, un switch

/json.htm?type=command&param=switchlight&idx=99&switchcmd=Off
  • idx = idx de votre dispositif (ici 99).
  • switchcmd = « On » or « Off » (Attention aux majuscules/minuscules !)

Si tout c’est bien passé on a :

{
   "status" : "OK",
   "title" : "SwitchLight"
}

Envoyer une valeur à un matériel dimmable

/json.htm?type=command&param=switchlight&idx=99&switchcmd=Set%20Level&level=6
  • Le champ level doit être une valeur entre 1 (0%) et 16 (100%). Si vous voulez utiliser les pourcentages et que 1 à 16 ne marche pas pour vous , utilisez 1 à 100.
  • Lorsque la lampe est à off , elle est passée à On
  • Le retour est :
{
   "status" : "OK",
   "title" : "SwitchLight"
}

Basculer un switch d’état

Cette commande permet de passer à On si c’est à Off et vice-versa sans que vous vous occupiez de son état actuel.

/json.htm?type=command&param=switchlight&idx=99&switchcmd=Toggle
{
   "status" : "OK",
   "title" : "SwitchLight"
}

Scènes / Groupes

Obtenir toutes les scènes et les groupes

/json.htm?type=scenes

Exemple :

{
   "result" : [
      {
         "Favorite" : 1,
         "HardwareID" : 0,
         "LastUpdate" : "2013-09-29 19:11:01",
         "Name" : "My Scene",
         "Status" : "Off",
         "Timers" : "true",
         "Type" : "Scene",
         "idx" : "9"
      },
      {
         "Favorite" : 1,
         "HardwareID" : 0,
         "LastUpdate" : "2013-09-30 11:49:13",
         "Name" : "My Group",
         "Status" : "Off",
         "Timers" : "false",
         "Type" : "Group",
         "idx" : "3"
      }
   ],
   "status" : "OK",
   "title" : "Scenes"
}

Passer une scène / groupe à on ou off

/json.htm?type=command&param=switchscene&idx=&switchcmd=On
  • idx = idx de votre scène/group (dans le menu « Dispositifs »).
  • switchcmd = « On » or « Off » (attention majuscules)
  • Les Scènes peuvent seulement être passées à On
{
   "status" : "OK",
   "title" : "SwitchScene"
}

Ajout d’une scène (0)

/json.htm?type=addscene&name=scenename&scenetype=0

Ajout d’un groupe (1)

/json.htm?type=addscene&name=scenename&scenetype=1

Détruire une scène ou un groupe

/json.htm?type=deletescene&idx=number

number est le numéro de la scéne (c.f paramètres)

Lister tous les dispositifs d’une scène

/json.htm?type=command&param=getscenedevices&idx=number&isscene=true

Ajout d’un dispositif à une scène

/json.htm?type=command&param=addscenedevice&idx=number&isscene=true&devidx=deviceindex&command=1&level=number&hue=number

Supprimer un device d’une scène

/json.htm?type=command&param=deletescenedevice&idx=number

Liste des horaires liés à une scène

/json.htm?type=scenetimers&idx=number

Exemple :

{
   "result" : [
      {
         "Active" : "true",
         "Cmd" : 0,
         "Date" : "07-02-2016",
         "Days" : 128,
         "Hue" : 0,
         "Level" : 100,
         "Randomness" : true,
         "Time" : "00:01",
         "Type" : 5,
         "idx" : "16"
      }
   ],
   "status" : "OK",
   "title" : "SceneTimers"
}

Ajout d’un horaire à une scène

/json.htm?type=command&param=addscenetimer&idx=number&active=&timertype=&date=&hour=&min=&randomness=&command=&level=&days=

idx = index de la scène, du groupe.

  • active = true/false
  • timertype = 0 =Avant lever soleil, 1 = Après lever Soleil, 2 =A l’heure indiquée, 3 = Avant coucher soleil, 4 = après coucher soleil, 5 = A une date ou heure précise.
  • date = MM-JJ-YYYY (mois sur 2 caractères-jour sur 2-année sur 4) Ex: 10-03-2016
  • hour = heure
  • min = minute
  • randomness = Aléatoire : avec le paramètre du paramétrage indiquant la dérive autour de cet horaire, pour faire une simulation de présence par exemple.
  • command = On/Off
  • level = 0..100 (%)
  • days = 0x80 = Tous les jours, 0x100 =Jours de semaine uniquement, 0x200 = Weekends, 0x01 = Lundi, 0x02 = Mardi, 0x04 = Mercredi, 0x08 = Jeudi, 0x10 = Vendredi, 0x20 = Samedi, 0x40 = Dimanche

Allez voir dans le bouton « Plannings » d’un interrupteur pour comprendre tous ces paramètres.

Commandes du serveur

Arrêt du système

/json.htm?type=command&param=system_shutdown
{
   "status" : "OK",
   "title" : "SystemShutdown"
}

Reboot

/json.htm?type=command&param=system_reboot
{
   "status" : "OK",
   "title" : "SystemReboot"
}

Les commandes de création

Créer un matériel virtuel

/json.htm?type=command&param=addhardware&htype=15&port=1&name=Sensors1&enabled=true

Ensuite pour obtenir un id, obtenez la page hardware pour le dernier ID :

 /json.htm?type=hardware

Créer un dispositif virtuel

Temp+Humidité (voir plus bas pour les valeurs)

/json.htm?type=createvirtualsensor&idx=29&sensorname=TempHum&sensortype=82

Electricité (voir plus bas pour les valeurs)

/json.htm?type=createvirtualsensor&idx=29&sensorname=Energy&sensortype=90

et maintenant obtenez les devices id avec la liste :

/json.htm?type=devices&filter=all&used=true&order=Name
1 Pressure (Bar) 0.0 	      	     nvalue=BAR (TBC)        
2 Percentage     0.0 	      	     nvalue=PCT (TBC)	        
80 TEMP          0.0     	     svalue=TEMP
81 HUM           1		     nvalue=HUM svalue=1 to 3
82 TEMP_HUM      0.0;50;1 	     svalue=TEMP;HUM;HUM_STATUS
84 TEMP_HUM_BARO 0.0;50;1;1010;1    svalue=TEMP;HUM;HUM_STATUS;BARO;BARO_FCST
85 RAIN          0;0		     svalue=RAIN;Rain in mm/h
86 WIND          0;N;0;0;0;0  	     svalue=WIN_SPD;WIND_DIR;?;?;?;?
87 UV            0;0		     svalue= (TBC)
113 RFXMeter     0		     Can have several values, another order has to be sent to set the sub type:	   
							type 3	Counter:   svalue=COUNTER
							type 2	Water:	   svalue=VOLUME
							type 1	Gas:
							type 0	Energy:
90 ENERGY        0;0.0		     svalue=POWER;ENERGY
249 TypeAirQuality    0	     nvalue=PPM

Pour le RFXMeter, une autre requête est nécessaire pour configurer le mode, l’url est:

/json.htm?type=setused&idx=DEVICE_ID&name=RFXMeter&switchtype=SUBTYPE_VALUE&used=true

dans lequel DEVICE_ID est le nom du device et SUBTYPE_VALUE est une de ces valeurs :

0 for Energy
1 for Gas
2 for Water
3 for Counter

Mettre à jour des capteurs

Soyez prudent en envoyant vos valeurs via JSON.
Il n’est pas exclu que vous crashiez Domoticz, si vos valeurs ne sont pas bonnes ou manquantes

Surtout sur des Domoticz version <=Beta 1.1634 ou stable <=1.1396 qui sont très sensibles. Les versions ultérieures sont plus sécurisées pour cela.

Vous aurez besoin de l’idx de votre capteur, allez le noter dans l’écran des dispositifs.

Temperature

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • TEMP = Température que vous souhaitez affecter à ce capteur.

Humidité

/json.htm?type=command&param=udevice&idx=IDX&nvalue=HUM&svalue=HUM_STAT
  • IDX =idx de votre capteur. A obtenir depuis l’écrans des dispositifs.
  • HUM = Humidité: 45 par exemple pour 45%
  • HUM_STAT = Humidity_status

Humidity_status peut être :

  • 0=Normal
  • 1=Confortable
  • 2=Sec
  • 3=Humide

Ce paramètre est obligatoire, si vous ne savez pas quoi mettre, mettez 0

Baromètre

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=BAR;BAR_FOR
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • BAR = Pression barométrique.
  • BAR_FOR = Météo selon la presion baro à choisir dans la liste ci-desous.
  • 0 = Stable
  • 1 = Soleil
  • 2 = Nuageux
  • 3 = Instable
  • 4 = Tempête
  • 5 = Inconnu
  • 6 = Nuageux/pluie

Ce paramètre est obligatoire, si vous ne savez pas quoi mettre, mettez 0

Température /humidité

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • TEMP = Temperature
  • HUM = Humidité
  • HUM_STAT = Status de l’humidité parmi la liste ci-dessous.

 

  • 0=Normal
  • 1=Confortable
  • 2=Sec
  • 3=Humide

Température/humidité/baromètre

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT;BAR;BAR_FOR

Cette instruction permet de donner des valeurs aux capteurs Temp+Humidité+Baromètre

  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • TEMP = Temperature
  • HUM = Humidité
  • HUM_STAT = Status d’humidité
  • BAR = Pression barométrique
  • BAR_FOR = Météo selon la presion baro à choisir dans la liste ci-desous :

 

  • 0 = No info
  • 1 = Soleil
  • 2 = Partiellement nuageux
  • 3 = Nuageux
  • 4 = Pluie

Pluie

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=RAINRATE;RAINCOUNTER
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • RAINRATE = quantité de pluie depuis la dernière heure
  • RAINCOUNTER = cumul de pluie tombée en mm

Vent

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=WB;WD;WS;WG;22;24
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • WB = Angle du vent (0-359)
  • WD = Direction du vent (S, SW, NNW, etc.)
  • WS = 10 * Vitesse du vent [m/s]
  • WG = 10 * vitesse de la rafale[m/s]
  • 22 = Temperature
  • 24 = Temperature Windchill

les deux dernières valeurs sont TOUJOURS 22 et 24.

UV

 /json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=COUNTER;0
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • COUNTER = La valeur de l’UV avec un point décimal (obligatoire : exemple: 2.0)

Attention il y a un « ;0 » à la fin, c’est comme ça , ne l’oubliez pas.

Compteur

/json.htm?type=command&param=udevice&idx=IDX&svalue=COUNTER
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • COUNTER = Un nombre entier qui est votre comptage.

N’oubliez pas que ls compteurs Domoticz peuvent compter dans plusieurs unités :

  • Energie (kWh)
  • Gaz (m3)
  • Eau (m3)
  • Compteur (sans unité)

Et donc bien entendu pour les m 3 si vous passez des litres la valeur sera divisée par 1000 car l’unité est le m3. Le compteur affiche toujours 2 valeurs :

  • Le status est le total cumulé.
  • Le volume ou comptage du jour est affiché dabs le coin en haut à droite.

Électricité (instantané et compteur)

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=POWER;ENERGY
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • POWER = Puissance actuelle consommée.
  • ENERGY = cumul en Watt-heures (Wh) (c’est juste un « compteur virtuel », tous les cumuls doivent être faits par VOUS)

Électricité P1 smart meter

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • USAGE1= Conso en tarif 1
  • USAGE2= Conso en tarif 2
  • RETURN1= energy return meter tariff 1
  • RETURN2= energy return meter tariff 2
  • CONS= actual usage power (Watt)
  • PROD= actual return power (Watt)

USAGE et RETURN sont des compteurs qui ne peuvent que croitre. Vous devez y donner des valeurs en Wh sans virgule. Ainsi si votre valeur est USAGE1= 523,66 KWh vous devez envoyer 523660)

Qualité de l’air

/json.htm?type=command&param=udevice&idx=IDX&nvalue=PPM
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • PPM = CO2-concentration

Pression

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=BAR
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • BAR = Pression atmosphérique en Bar

Créer ce capteur dans « Matériel »/ »Créer capteur Virtuel »

Pourcentage

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=PERCENTAGE
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • PERCENTAGE = Le pourcentage à afficher dans le widget

Gaz

/json.htm?type=command&param=udevice&idx=IDX&svalue=0&svalue=USAGE
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • USAGE= Gaz en litre (1000 litres = 1 m³)

Ainsi si votre compteur de gaz affiche 145,332 m³ vous devez envoyer 145332.
La variable USAGE est le total des litres depuis la nuit des temps et non pas la consommation journalière.

Lux

/json.htm?type=command&param=udevice&idx=IDX&svalue=VALUE
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • VALUE = valeur de la luminosité en Lux.

Voltage

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=VOLTAGE
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • VALUE = valeur de volts a afficher sur le widget

Text sensor

Ceci permet d’afficher un texte sur un widget Domoticz.

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEXT
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • TEXT = Le texte à afficher.

 

  • Exemple http://IP:PORT/json.htm?type=command&param=udevice&idx=mon_idx&svalue=MONTEXTEAAFFICHER

 

Alert sensor

/json.htm?type=command&param=udevice&idx=IDX&nvalue=LEVEL&svalue=TEXT
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • LEVEL = (0=gris, 1=vert, 2=jaune, 3=orange, 4=rouge)
  • TEXT = Le texte à afficher.

 

Distance

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=DISTANCE

 

  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • DISTANCE = distance en ce que vous voulez comme unité, la valeur est affichée sans unité. Vous pouvez envoyer des décimales (12.6) avec un point.

Selector Switch

Il s’agit de piloter ce capteur virtuel nomme « Selector switch » ou l’on peut prédéfinir 4 niveaux (pour des dimmables par ex, ou des volets)

inter_sele

/json.htm?type=command&param=switchlight&idx=IDX&switchcmd=Set%20Level&level=LEVEL
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • LEVEL = Un nombre qui fait référence à celui défini dans le menu « Editer » du widget
  • sel_switch

Custom Sensor

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=VALUE
  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
  • VALUE = Valeur avec un point décimal (12.345)

Paramètres additionnels (signal level & battery level)

Il y deux paramètres supplémentaires pour toutes les commandes ci dessus pour préciser la qualité de réception (radio) et le niveau de batterie.

Par défaut le niveau de signal est à 12 et le niveau de la batterie est à 255 (pas de batterie) sinon le niveau est entre 0 et 100.

Il faut ajouter ces lignes tout au bout de la chaine

exemple: &rssi=10&battery=89

User variables

Ajouter une nouvelle variable

/json.htm?type=command&param=saveuservariable&vname=uservariablename&vtype=uservariabletype&vvalue=uservariablevalue

uservariablename= le nom de la variable, évitez les accents.

  • uservariabletype = le type de valeur à stocker, entre 0 et 4 :
0 = Entier, e.g. -1, 1, 0, 2, 10 
1 = Float, e.g. -1.1, 1.2, 3.1
2 = chaine, ex coucou
3 = Date au format DD/MM/YYYY
4 = Heure au format 24hr HH:MM
  • uservariablevalue = la valeur à stocker dans cette variable

Tout cela est vérifié par l’API, si la variable n’est pas correcte , elle n’est pas enregistrée par Domoticz.

Par exemple , vous avez défini une variable stockant des nombres entiers et vous essayer d’y écrire 3.0

json.htm?type=command&param=saveuservariable&vname=code_porte_garage&vtype=2&vvalue="453aZVT"

ici je crée une variable nommée code_porte_garage en type chaine de caractères et j’uy mets « 453aZVT » dedans.

Modifier une variable

/json.htm?type=command&param=updateuservariable&vname=USERVARIABLENAME&vtype=USERVARIABLETYPE
&vvalue=USERVARIABLEVALUE
  • USERVARIABLENAME, le nom de la variable
  • USERVARIABLETYPE le type (cf ci-dessus)
  • USERVARIABLEVALUE la nouvelle valeur

Liste de toutes les variables

/json.htm?type=command&param=getuservariables

vous affiche toutes les variables.

Pour obtenir une seule variable et ses valeurs:

/json.htm?type=command&param=getuservariable&idx=IDX
  • IDX = idx de la variable, allez voir dans les varialbes utilisateur dans »Réglages/Plus d’options » c’est le numéro IDX

Détruire une variable

/json.htm?type=command&param=deleteuservariable&idx=IDX
  • IDX = idx de la variable, allez voir dans les varialbes utilisateur dans »Réglages/Plus d’options » c’est le numéro IDX

Plans

Lister les pièces

/json.htm?type=plans&order=name&used=true

Lister tous les devices d’une pièce

/json.htm?type=command&param=getplandevices&idx=IDX
  • IDX = idx de votre pièce

Historiques

On affiche gràce à ces instructions l’historique des capteurs. Alluamges,extenction avec les dates pour les switches, températures et dates pour les autres.

  • IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.

Switch

/json.htm?type=lightlog&idx=IDX

Tempèratures

/json.htm?type=graph&sensor=temp&idx=IDX&range=day
/json.htm?type=graph&sensor=temp&idx=IDX&range=month
/json.htm?type=graph&sensor=temp&idx=IDX&range=year

Setpoint

See Temperature

Energie, Gaz, Eau

/json.htm?type=graph&sensor=counter&idx=IDX&range=day  (add &method=1 for instantaneous power consumption)
/json.htm?type=graph&sensor=counter&idx=IDX&range=month
/json.htm?type=graph&sensor=counter&idx=IDX&range=year

 

Pas encore documenté

Autoriser les nouveaux dispositifs

Cela correpond à la case « Autoriser les nouveaux dispositifs » du menu « Réglages/Paramètres »

/json.htm?type=command&param=allownewhardware&timeout=5

 

Tous les plannings

Retrouvez tout ce qui est planifié par :

../json.htm?type=schedules

Typical result :

{
   "result" : [
      {
         "Active" : "true",
         "Date" : "",
         "Days" : 128,
         "DevName" : "Porch Light",
         "DeviceRowID" : 52,
         "Hue" : 0,
         "IsThermostat" : "false",
         "Level" : 100,
         "MDay" : 0,
         "Month" : 0,
         "Occurence" : 0,
         "Randomness" : "false",
         "ScheduleDate" : "2016-04-01 20:33:00",
         "Time" : "00:20",
         "TimerCmd" : 0,
         "TimerID" : 9,
         "TimerType" : 4,
         "TimerTypeStr" : "After Sunset",
         "Type" : "Device"
      },

Afficher les plannings que pour les devices

../json.htm?type=schedules&filter=device

Afficher les plannings que pour les Scenes

../json.htm?type=schedules&filter=scene

Afficher les plannings que pour les Thermostats

../json.htm?type=schedules&filter=thermostat

Activer un planning spécifique ?

qu’est timerID ?

../json.htm?type=command&param=enabletimer&idx=timerID

Désactiver un planning spécifique

../json.htm?type=command&param=disabletimer&idx=timerID

 

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

L’API JSON de Domoticz démythifiée

Oui, oui on dit bien « démythifiée » et non pas « démystifiée » puisque il s’agit bien de « détruire » un mythe, celui de la complexité de l’API JSON de Domoticz.

Définissons tout ça et démythifions donc.

Une API qu’est ce ?

Ce sont des commandes que met à notre disposition un logiciel pour pouvoir le piloter.

Ces jeux d’instructions sont prévus par les développeurs du soft. Ils peuvent être soumis à des restrictions de droits, on peut avoir par exemple le droit d’interroger mais pas de commander le logiciel.

De nombreuses plateformes web permettent ainsi de les interroger pour obtenir quelque chose, citons météo france pour les prévisions de pluie, la SNCF pour les horaires de trains, Airparif pour la qualité de l’air et bien d’autres encore. De la même manière Domoticz peut être interrogé pour obtenir l’état d’un switch, la valeur d’un capteur et on peut également par son API, lui faire exécuter des actions comme changer l’état d’un switch, affecter une valeur à un widget.

Tout cela passe par des envois http/https vers Domoticz en interrogeant son API, qui nous répondra par un retour de texte au format JSON.

Cela signifie que les informations que nous devrons échanger entre nous et Domoticz devront respecter un formatage précis: celui de l’API.

Et JSON qu’est ce?

Wikipedia nous dit :

Un document JSON a pour fonction de représenter de l’information accompagnée d’étiquettes permettant d’en interpréter les divers éléments, sans aucune restriction sur le nombre de celles-ci.

il s’agit d’un format de présentation de texte à base d’étiquettes : un exemple fictif de formatage :

{

"soleil : [
{
"Lever" : "07:18",
"coucher" : "07:23'",
}
]

"lune : [
{
"Lever" : "06:32",
"coucher" : "09:46''",
}
]

}

On  voit donc que j’ai  l’étiquette soleil puis des « sous-étiquettes » lever/coucher avec les valeurs correspondantes entourées de  {}.

C’est ainsi que Domoticz renverra des valeurs lorsque on l’interrogera.

Il nous faudra donc des outils pour découper ces blocs de résultats et en retirer facilement ce que l’on souhaite,  jq en shell, json.decode en lua, libraire json en python, ce ne sont pas les outils qui manquent.

Mise en œuvre

Voyons comment interroger Domoticz via les URL et l’API.

la page de référence esthttp://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s  dont une traduction française est en cours  nous indique que le format à respecter est celui-ci :

http://<username:password>domoticz-ip/json.htm?la_commande_api

 

  • <username:password@> = le login et le mot de passe Domoticz (optionnels).
  • domoticz-ip = l’adresse  IP ou le nom de votre Domoticz .
  • <:port> = le numéro de port (8080 par défaut, optionnel).

la commande API peut être trouvée sur la page en anglais, on y apprend que pour obtenir l’état d’un matériel, je dois envoyer :

....../json.htm?type=devices&rid=IDX

avec IDX qui correspond à l’IDX de ce matériel dans Domoticz.

Rappel : on le trouve dans « Réglages » et « Dispositifs »

idx_domoticz

exemple . http://192.168.1.81:8080/json.htm?type=devices&ridx=72

 

me donnera les valeurs actuelles du dispositif 72 nommé ci-dessus « Temp interieur »

Ah, oui d’accord mais ou je tape le http://192……

Déjà,vérifiez que vous avez compris en le tapant DANS LA BARRE D’ADRESSE de votre navigateur web.

api_json

Ensuite des langages tels que shell (curl), python (requests), lua sont capables d’envoyer de telles chaines que vous aurez construites vous même correctement au préalable dans votre script.

On voit ici que le simple appel d’une URL renvoie un pavé de donnée en JSON, dont il faudra extraire la/les couples rubrique:valeur qui m’intéressent.

C’est le rôle d’outils comme ./jq , article ici https://easydomoticz.com/manipuler-les-donnees-json-de-domoticz-en-shell/ vers lequel je vous renvoie pour les bases de l’extraction.

N.B : Pour aider à la lecture de fichiers json il y a ici http://jsonviewer.stack.hu/un outil qui reformate de façon claire les données que vous lui donnerez par un copier/coller.

 

Voila, normalement vous devriez maintenant mieux voir le rôle de l’API JSON de Domoticz, et comprendre comment activer, obtenir des données.

 

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

Mother & Cookies Sen.se : intégration dans Domoticz 2eme partie

Les créateurs du lapin connecté bien connu ont développé une nouvelle invention « Mother » et ses petits cookies.

Mother

Les cookies sont des capteurs polyvalents connectés à leur « Mother », elle même reliée au cloud.

La société commercialisant cet objet connecté se nomme sen.se
Dans l’article précédent nous avons vu comment récupérer une clé d’API sen.se, créer les widgets Domoticz, etc…
Voyons ici comment installer, configurer le script python de récupération.

Généralités

Vous trouverez plus loin un script python destiné à récupérer les données POUR 1 seul COOKIE.
Si vous envisagez de gérer plusieurs cookies, il faudra recopier le script plusieurs fois sous des noms différents (celui du cookie par exemple) et faire les paramétrages des widgets Domoticz dans chaque script.

N.B : Il existe une bibliothèque spécifique python sense dans un github. J’ai fait le choix de ne pas l’utiliser car autant l’API sen.se est bien décrite et documentée que cette bibliothèque est pauvre en littérature.

Installation

Si ce n’est déjà fait, installer python et pip par un

sudo apt-get install python	 	
sudo apt-get install python-pip

puis  les bibliothèques ssl pour https,  nécessaires pour interroger sen.se.

sudo pip install requests==2.5.3
sudo pip install requests[security]

et si cela ne marchait pas (erreurs SSL lors du lancement du script) faites 
sudo pip install pyopenssl ndg-httpsclient pyasn1

L’intégration de ces 3 dernières bibliothèques ralentit considérablement les scripts écrits en python 2 , python 3 donne des temps d’exécution bien plus rapides.

A ce jour un bug est ouvert https://github.com/pyca/pyopenssl/issues/137

LA solution serait de convertir le script en python3 ou d’atttendre une mise à jour de python2 qui corrigerait ce phénomène.

Le script python

Il n’est pas hyperpythonisé pour qu’il puisse être compréhensible.

Il est téléchargeable ici https://easydomoticz.com/scripts/cookie1.py
Créez un fichier .py au nom de votre cookie par exemple mon cookie se nommant « golden eyes », je choisis de nommer le script golden.py.
Copiez/collez le script dans votre nouveau fichier.

Examinons le contenu du fichier.

La config Domoticz

Tout d’abord arrivent les ip,port, user/password de Domoticz.
Comme j’utilise beaucoup de scripts python j’ai crée, une fois pour toute, un fichier nommé config_Domoticz.py contenant tous les paramètres usuels de ma configuration Domoticz que j’importe systématiquement à chaque nouveau développement.
Voila la structure du config_Domoticz.py

#!/usr/bin/python
 	 
# -*- coding: utf-8 -*-	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
# les parametres de Domoticz	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
domoticz_ip='192.168.1.82'	 	 
domoticz_port='8080'	 	 
domoticz_user=''	 	 
domoticz_password=''	 	 

Créez ce fichier sous le nom de config_Domoticz.py copier/coller les lignes ci-dessus, modifiez suivant votre installation , les ip, port, user,password.
Mais ceci n’est pas obligatoire, bien que pratique.
Vous verrez dans le script python que l’on peut les encoder directement ou faire référence à  ce fichier de paramètres (config_Domoticz.py) que l’on importe et qui fournira ces données. Supprimez le bloc qui n’est pas nécessaire ou commentez le par des # en décommentant l’autre.

~~~~~~~~~~ Parametres Domoticz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
domoticz_ip='192.168.1.82'	 	 
domoticz_port='8080'	 	 
user=''	 	 
password=''	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
#~~~~~~~~~~ Parametres Domoticz importes depuis le fichier config_Domoticz.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
########### import de mes parametres Domoticz #################################	 	 
#import config_Domoticz	 	 
#domoticz_ip=config_Domoticz.domoticz_ip	 	 
#domoticz_port=config_Domoticz.domoticz_port	 	 
#user=config_Domoticz.domoticz_user	 	 
#password=config_Domoticz.domoticz_password	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 

Mode debug et param

La ligne debug=0 peut être modifiée en debug=1 pour afficher les URL lues de chez sen.se et les URL que nous écrirons dans Domoticz.

fparam=0 , le passage à 1 de cette variable permet d’avoir quelques indications sur les widgets à créer.

Repassez ces 2 variables à 0 une fois débuggé l’ensemble.

les idx des widgets

Il s’agit du bloc ci-dessous :

#~~~~~~~~~~~ Parametres des widget Domoticz~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
### Parametrage des idx des widget de Domoticz ##########################	 	 
## creer un widget 'compteur' poubelle et affecter a son idx tous les parametres	 	 
## non desires 	 	 
periph_idx= { 'Motion_durationSeconds' : 11, 	 	 
 'Motion_numberMovements' : 13,	 	 
 'Motion_avgIntensity' : 14,	 	 
 'Alerte' : 6,	 	 
 'Presence' : 10,	 	 
 'Temperature' : 8,	 	 
 'Batterie' : 7,	 	 
 }	 	 
##################################################################################	 	 

Dans l’article précédent nous avions crée des widgets destinés à recevoir nos valeurs et avions noté leurs idx Domoticz.
Nous allons reporter ces idx en face de chaque paramètre (nommé Event chez Sen.se, regardez l’api sen.se ou l’article précédent pour la signification de ces events)
Ne supprimez pas de ligne dans ce bloc.

Si vous ne désirez pas certaines valeurs, mettez un chiffre bidon, mais gardez les textes tels qu’ils sont.

Ou alors créez un compteur « poubelle » et affectez son idx à tous les compteurs que vous ne voulez pas afficher.
Ainsi si j’ai un compteur caché nomme $dechets dont l’idx est 44 , les 3 valeurs de motion et la batterie ne seront pas affichés dans Domoticz grâce à

periph_idx= { 'Motion_durationSeconds' : 44, 	 	 
 'Motion_numberMovements' : 44,	 	 
 'Motion_avgIntensity' : 44,	 	 
 'Alerte' : 6,	 	 
 'Presence' : 10,	 	 
 'Temperature' : 8,	 	 
 'Batterie' : 44,	 	 
 }	 	 
##################################################################################

Les paramètres de chez sen.se

Ensuite nous  configurons les paramètres de notre compte sen.se

La clé d’api (c.f le 1er épisode ou https://sen.se/board/ ) puis le nom du cookie (c.f le 1er épisode ou https://sen.se/board/ )

# la cle API
sense_api_key = '5qddhhhjtddsj443EFGTYGghgg35RDZfff'
# cookie_id
cookie_name='golden eyes'

Utilisation du script python.

chmod +x golden_eye.py
./golden_eye.py pour le lancer

Vérifiez, vérifiez et vérifiez que tous les widgets sont correctement alimentés.

Une fois correct placez une ligne dans le crontab  à la fréquence que vous désirez par un crontab -e

*/10 * * * * root /domoticz/scripts/golden_eye.py

Cette ligne déclenche le script golden_eye.py toutes les 10 minutes

A ce sujet je constate que les envois de données ne se font pas régulièrement mais à chaque fois que une valeur change pour ce cookie.

Le script python ne récupère QUE la valeur la plus récente.

Merci à Knox du forum pour sa demande initiale, sa participation aux tests et sa relecture attentive.

J’espère que cet article vous prouvera une fois de plus que : Nobody loves me but my mother.

et pour les amateurs de blues | bd
http://zepworld.blog.lemonde.fr/2015/05/18/b-b-king-moi/

 

P.S :Et vous qui êtes le petit cookie de votre Mother, n’oubliez pas de lui souhaiter sa fête le 31 Mai 😆

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

Mother & Cookies Sen.se : intégration dans Domoticz 1ere partie

Les créateurs du lapin connecté bien connu ont développé une nouvelle invention nommée « Mother » et accompagnée de petits « cookies ».

On dirait un croisement entre un barbapapa et une poupée russe.

mother2

Le site « les numériques »  nous  dit que  :

Mother, cette véritable « mère juive », comme s’en amuse son créateur, est à la tête d’une famille de petits capteurs connectés baptisés Motion Cookies. Polyvalents, ceux-ci sont paramétrables. Le principe repose sur l’interrogation : « Qu’est-ce qui est important pour moi en ce moment ? » Tout comme les réponses à cette question, la programmation des tâches est multiple et modulable.

Sécurité, santé, bien-être… Sen.se promet aux utilisateurs d’inventer la vie connectée dont ils ont envie, transformant les Cookies en podomètre connecté, thermomètre, outil de vérification… Quelle distance ai-je parcourue aujourd’hui ? Combien de calories ai-je dépensées ? Mes enfants sont-ils bien rentrés de l’école ? Se sont-ils soigneusement brossé les dents ? Quelqu’un est-il entré chez moi ? Si oui, à quelle heure ? Toutes les activités sont enregistrées et délivrées en temps réel.

source http://www.lesnumeriques.com/objet-connecte/mother-p18525/test.html

Vous pouvez assister à démo publicitaire sur le site web de référence https://sen.se/store/mother/

Le fonctionnement de cette solution est le suivant : chacun des cookies envoie à intervalles réguliers (?) ses infos de geoloc, température, présence…, à  sa ‘mère’ qui elle même retransmet cela sur le site sen.se en mode cloud.

Ainsi on peut suivre individuellement chaque cookie, sa présence, ses paramètres…

On peut imaginer de tels de scénarios :

Je rentre à la maison, il fait nuit dehors, les lumières s’allument, mais si il fait jour j’ouvre les volets.
ou
Si aucune personne n’est détectée dans la maison, on active le mode alarm.

 

Ce qui va nous occuper ici sera la connexion de Mother à notre plate forme préférée de domotique. Pour cela allons devoir interroger l’API de sen.se pour récupérer les données individuelles de chaque capteur-cookie.

 

Vous trouverez plus loin un lien sur script python destiné à cet usage. Ce script ne récupère les données QUE POUR 1 seul COOKIE.

Donc si vous envisagez de gérer plusieurs cookies dans Domoticz, il faudra recopier le script sous un nom différent et faire les paramètrages des widgets Domoticz dans chaque script.

N.B : Il existe une bibliothèque spécifique python sense dans un github. J’ai fait le choix de ne pas l’utiliser car autant l’API sen.se est bien décrite et documentée que cette bibliothèque est pauvre en littérature.

Nous partirons du fait que l’installation est fonctionnelle, que le compte est crée chez sen.se, les capteurs et la mère associés correctement à votre compte comme décrit dans le mode opératoire fourni avec votre achat.

Récupération des identifiants sen.se.

La clé d’API.

Toute l’interrogation du cloud sen.se se base sur des échanges sécurisés en https par le biais d’un identifiant unique nommé « Clé API ».

Rendez vous à l’adresse : https://sen.se/board/, connectez vous à votre compte, utilisez maintenant le menu en haut à  droite pour accéder au menu « Développeur » puis « Clé d’API ».

apikey

Copiez cette clé par un clic droit.

Les cookies

Chaque cookie envoie donc ses données via Mother au board sen.se.

Nous aurons besoin du nom du cookie pour interroger les données lui appartenant.

Allez récupérer le nom dans le menu du bas « Things-Mes objets » ou via ce lien https://sen.se/devices/

Attention : Notez bien les espaces, majuscules/minuscules.

Nom-Cookie

Les données envoyées par les cookies

A l’adresse https://sen.se/api/docs/v2/events/# nous voyons que de nombreuses données sont disponibles.

Certaines sont liées à Mother, d’autres à chacun des cookies.

Le script python dans son état actuel récupère pour un cookie donné les paramètres suivants :

  • Alert : (Détection mouvement) : https://sen.se/api/docs/v2/events/#alert, on récupère une ‘intensité’ (de mouvement j’imagine) sans unité , je n’ai pas d’ordre de grandeur de cette valeur.
  • Presence : Présence de ce cookie auprès de sa mère.  https://sen.se/api/docs/v2/events/#presence la valeur 200 est renvoyée si il est à proximité, 404 si il est hors de vue durant 2 minutes et 201 lorsque le cookie est proche mais n’est pas relié à sa mère (les données ne sont alors pas transmises au cloud sen.se)
  • Motion :  mesure de « secouage™ » du cookie (lavage de dents, sommeil…) https://sen.se/api/docs/v2/events/#motion 3 paramètres sont lus  : « numberMovements », « durationSeconds » , « avgIntensity » et affectés à Domoticz pour l’usage qui vous conviendra dans 3 widgets.

Vous constatez que au total ce sont 7 paramètres maximum que l’on récupère PAR COOKIE.

 Configuration de Domoticz

On a vu qu’au maximum chaque cookie peut envoyer 7 paramètres différents. Il nous faudra donc 7 widgets dans Domoticz.

Respectez les types de widget demandés ci dessous, car le script python s’attend à trouver tel type pour la batterie, tel autre pour la présence et ne saura pas écrire dans le widget si vous ne l’avez pas créé avec le bon type.

Nous créerons les widgets en tant que « capteur virtuel » : mode opératoire ici https://easydomoticz.com/detection-de-presence-basee-sur-ip#virtual_dev/

Alors c’est parti :

  • Temperature : ici ça coule de source vous créerez un capteur virtuel temperature.
  • Battery : capteur compteur de type counter. Il existe bien un type de capteur « Voltage » dans Domoticz mais l’API n’est pas documentée pour son utilisation JSON.
  • Alert : capteur compteur de type counter.
  • Presence : Nous utilisons ici un simple interrupteur pour indiquer On : présence ou Off: absence du cookie. Le troisième état (Not Linked : en vue de Mother mais pas lié à elle !) n’est pas géré. Knox, heureux possesseur d’une Mother nous communique un pack d’icônes prêt à l’emploi destiné à illustrer l’état du switch de Présence du cookie, utilisez ce lien (https://easydomoticz.com/scripts/Cookies.zip) pour télécharger le pack complet.
  • Motion :  Cet événement nous donne 3 valeurs : « numberMovements » , « durationSeconds » , « avgIntensity » que nous afficherons au travers de compteurs « counter »

Les compteurs sont tous des « counter »

counter

Ce type « Counter » ne peut être changé que depuis de menu des « Mesures »

Lorsque vous allez ajouter vos capteurs virtuels depuis le menu des « Dispositifs » par la flèche verte et que le nom vous est demandé pensez à nommer correctement le widget car vous serez amené à avoir le même paramètre pour plusieurs cookies.

Si j’ajoute la batterie pour le cookie nommé « Golden eye » je nomme mon widget « Golden_batt », la température « Golden_temp, « Golden_number », « Golden_seconds », « Golden_intesite », pour les 3 paramètres de motion (c.f. ci-dessus)

Les widgets du cookie « Smooth avocado » seront « Smooth_batt », « Smooth_temp » et vous avez compris.

Depuis le menu des dispositifs Domoticz, notez les idx que vous voulez gérer.

idx_domoticz

 

Je vous laisse digérer tout cela et on se prépare pour la prochaine étape du script python.

De la lecture technique concernant l’API ici https://sen.se/developers/documentation/ et aussi ici  https://sen.se/developers/browse/

Merci à Knox du forum pour sa demande initiale, sa participation aux tests et sa relecture attentive.

Bonus : Knox nous remet un pack d’icônes

COOKYELLOW48_Off COOKYELLOW48_On COOKBLUE48_On COOKGREEN48_On COOKORANGE48_On

prêt à l’emploi destiné à illustrer l’état du switch de Présence du cookie, utilisez ce lien (https://easydomoticz.com/scripts/Cookies.zip) pour télécharger le pack complet et celui ci (https://easydomoticz.com/un-outil-pour-ajouter-nos-icones-domoticz-custom-icons/#icones_envoi) pour un mode d’emploi sur l’ajout de set d’icônes (Réglages/Plus d’options/Icônes Personnalisées)

L’article suivant se trouve ici https://easydomoticz.com/mother-cookies-sen-se-integration-dans-domoticz-2eme-partie/

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

Comment créer un widget « Alerte »

Cocorico , la version 2134 contient, à l’initiative d’un de nos membres du forum, une nouvelle fonctionnalité : un widget spécial ALERTE.

Merci à Jackslayter pour l’idée et à Gizmocuz pour la réalisation dans la version 2134. Le thread originel est ici http://www.domoticz.com/forum/viewtopic.php?f=31&t=3972&p=26412#p26391

 

widget_vertwidget_jaune widget_gris

 Rôle

Ce composant affiche un texte et apparaît dans une couleur parmi 5 qui seront tous deux précisés via l’API JSON.

Il n’y a pas de notifications pour l’instant liée à ce composant.

 Configuration

Il faut dans le menu « Matériel », créer un virtual sensor et choisir le type « Alert ».

 

Config widget Alerte

Il apparaît dans les dispositifs, et il faut le « pousser » dans l’onglet « Mesures » par la flèche verte.

Dans l’onglet « Mesures » , renommez le à votre convenance.

Utilisation

Tout d’abord notez l’idx de ce composant (116) ici, 2eme colonne

domoticz IdxLa liste des couleurs disponibles est :

0 – gris
1 – vert
2 – jaune caca d’oie
3 – orange
4 – rouge

L’url à envoyer est de la forme :

http://IP:port/json.htm?type=command&param=udevice&idx=VOTRE-IDX&nvalue=VOTRE-COULEUR-DE-0-A-4&svalue=VOTRE-TEXTE-SANS-ESPACE

ainsi dans un navigateur

http://192.168.1.81:8080/json.htm?type=command&param=udevice&idx=116&nvalue=4&svalue="AMalibu"

affiche cela

Widget_alert

Edit du 30/11/2015 : Indéniablement le widget affiche maintenant (versions 2.3) le niveau de couleur en tant que level en plus du texte.

Alerte

N.B la commande curl lancée en ligne de commande ou dans un script shell  à BESOIN des \ avant chaque &

curl http://192.168.1.81:8080/json.htm?type=command\&param=udevice\&idx=116\&nvalue=4\&svalue="AMalibu"

 

Une commentaire de José indique que le texte de svalue peut contenir des espaces sous la forme %20

curl http://192.168.1.81:8080/json.htm?type=command\&param=udevice\&idx=116\&nvalue=4\&svalue="A%20Malibu"

Merci de l’info

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