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¶m=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¶m=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¶m=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¶m=switchlight&idx=99&switchcmd=On
Éteindre une lumière, un switch
/json.htm?type=command¶m=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¶m=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¶m=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¶m=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¶m=getscenedevices&idx=number&isscene=true
Ajout d’un dispositif à une scène
/json.htm?type=command¶m=addscenedevice&idx=number&isscene=true&devidx=deviceindex&command=1&level=number&hue=number
Supprimer un device d’une scène
/json.htm?type=command¶m=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¶m=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¶m=system_shutdown
{
"status" : "OK",
"title" : "SystemShutdown"
}
Reboot
/json.htm?type=command¶m=system_reboot
{
"status" : "OK",
"title" : "SystemReboot"
}
Les commandes de création
Créer un matériel virtuel
/json.htm?type=command¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=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¶m=udevice&idx=mon_idx&svalue=MONTEXTEAAFFICHER
Alert sensor
/json.htm?type=command¶m=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¶m=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)
/json.htm?type=command¶m=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
Custom Sensor
/json.htm?type=command¶m=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
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¶m=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¶m=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¶m=getuservariables
vous affiche toutes les variables.
Pour obtenir une seule variable et ses valeurs:
/json.htm?type=command¶m=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¶m=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¶m=getplandevices&idx=IDX
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¶m=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¶m=enabletimer&idx=timerID
Désactiver un planning spécifique
../json.htm?type=command¶m=disabletimer&idx=timerID