J'ai reçu un message de xavierg sur le forum domoticz me parlant de ce post sur jeedom. J'avoue avoir commencé à regarder jeedom mais ai eu un peu de mal avec l'interface et abandonné assez vite. Vu que je vois qu'il y a déjà une partie du travail déjà fait, je propose de résumer mes explications afin de contribuer au développement de ce pluging. J'ai acheté un vitoconnect 100 sur teico et déçu par l'application ViCare/Vitotrol Plus j'ai cherché comment gérer en domotique ma chaudière sans passé par ces applications limitées et lente. J'ai vu comme mentionné précédemment une interface SOAP(appelée V1 par viessman) mais qui ne m'a pas semblée très facile à utiliser. Néanmoins, en allant sur
j'ai découvert qu'il existe une nouvelle interface en REST/JSON appelée V2. Celle-ci est extrêment simple à utiliser.
Tout d'abord, on peut récupérer l'ensemble des informations de la chaudière en un seul appel GET sur l'URL et les paramètres de connexion dans un header Auhtorization. Pour rappel, ce header doit contenir "BASIC username:password" encodé en base64.
le gateway_id et controller_id sont facilement trouvables en se connectant sur le
. Vous recherchez le gateway, vous cliquez dessus et cliquez ensuite sur le controller. Vous verrez alors une url qui contient les données recherchées
Code : Tout sélectionner
{
"data": [
{
"metadata": {
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "7191",
"datapointType": "CircuitTime",
"datapointName": "konf_schaltzeiten_hk_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 1
},
"switchingTimeType": 1,
"switchingTimes": [
],
"datapointType": 2,
"datapointStatus": 0
},
{
"metadata": {
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "7192",
"datapointType": "CircuitTime",
"datapointName": "konf_schaltzeiten_ww_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 1
},
"switchingTimeType": 1,
"switchingTimes": [
],
"datapointType": 2,
"datapointStatus": 0
},
{
"metadata": {
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "7192",
"datapointType": "CircuitTime",
"datapointName": "konf_schaltzeiten_ww_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 1
},
"switchingTimeType": 1,
"switchingTimes": [
],
"datapointType": 2,
"datapointStatus": 0
},
{
"metadata": {
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "7193",
"datapointType": "CircuitTime",
"datapointName": "konf_schaltzeiten_zp_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 1
},
"switchingTimeType": 1,
"switchingTimes": [],
"datapointType": 2,
"datapointStatus": 0
},
{
"metadata": {
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "7193",
"datapointType": "CircuitTime",
"datapointName": "konf_schaltzeiten_zp_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 1
},
"switchingTimeType": 1,
"switchingTimes": [],
"datapointType": 2,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein",
"2": "Aus",
"3": "Ein"
},
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "245",
"datapointType": "ENUM",
"datapointName": "zustand_interne_pumpe_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "1",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein"
},
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "600",
"datapointType": "ENUM",
"datapointName": "zustand_brenner_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"1": "1 A1",
"2": "2 A1 + WW",
"3": "3 M2",
"4": "4 M2 + WW",
"5": "5 A1 + M2",
"6": "6 A1 + M2 + WW"
},
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "791",
"datapointType": "ENUM",
"datapointName": "konf_heizungsschema_r",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "2",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "inaktiv",
"1": "aktiv"
},
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "865",
"datapointType": "ENUM",
"datapointName": "zustand_wartung_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "0 ohne",
"1": "1 Vitosolic 100",
"2": "2 Vitosolic 200"
},
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "940",
"datapointType": "ENUM",
"datapointName": "konf_solarregler_r",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "OK",
"1": "Kurzschluss",
"2": "Unterbrechung",
"3": "unbekannt",
"4": "unbekannt",
"5": "unbekannt",
"6": "Nicht vorhanden"
},
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "10796",
"datapointType": "ENUM",
"datapointName": "info_status_rts_1_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "3",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "OK",
"1": "Kurzschluss",
"2": "Unterbrechung",
"3": "unbekannt",
"4": "unbekannt",
"5": "unbekannt",
"6": "Nicht vorhanden"
},
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "10797",
"datapointType": "ENUM",
"datapointName": "info_status_rts_2_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "3",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "76",
"datapointType": "ENUM",
"datapointName": "zustand_partybetrieb_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "88",
"datapointType": "ENUM",
"datapointName": "zustand_sparbetrieb_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Abschalt",
"1": "Nur WW",
"2": "Heizen + WW",
"3": "Dauernd Reduziert",
"4": "Dauernd Normal"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "92",
"datapointType": "ENUM",
"datapointName": "konf_betriebsart_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "2",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "270",
"datapointType": "ENUM",
"datapointName": "externe_umschaltung_ba_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "255",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Abschaltbetrieb",
"1": "Reduzierter Betrieb",
"2": "Normalbetrieb",
"3": "Dauernd Normalbetrieb"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "708",
"datapointType": "ENUM",
"datapointName": "aktuelle_betriebsart_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "2",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "inaktiv",
"1": "aktiv"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "714",
"datapointType": "ENUM",
"datapointName": "zustand_ferienprogramm_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "inaktiv",
"1": "aktiv"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "717",
"datapointType": "ENUM",
"datapointName": "zustand_frostgefahr_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "729",
"datapointType": "ENUM",
"datapointName": "zustand_heizkreispumpe_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "1",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Nicht vorhanden",
"1": "Direkter Kreis",
"2": "Mischerkreis"
},
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "7987",
"datapointType": "ENUM",
"datapointName": "info_kennung_hk1_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "1",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein"
},
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "5280",
"datapointType": "ENUM",
"datapointName": "zustand_speicherladepumpe_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Ladung inaktiv",
"1": "in Ladung",
"2": "im Nachlauf"
},
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "7179",
"datapointType": "ENUM",
"datapointName": "info_ww_charging_active_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"values": {
"0": "Aus",
"1": "Ein"
},
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "7181",
"datapointType": "ENUM",
"datapointName": "zustand_zirkulationspumpe_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 1,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "0.00",
"defaultValue": "",
"unitDesignation": "ecnUnit.Stunden",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "104",
"datapointType": "Double",
"datapointName": "anzahl_brennerstunden_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "5957.56",
"dataType": 3,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "1193045.00",
"defaultValue": "",
"unitDesignation": "",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "111",
"datapointType": "Integer",
"datapointName": "anzahl_brennerstart_r",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "33781",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "0.00",
"defaultValue": "",
"unitDesignation": "",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "897",
"datapointType": "Integer",
"datapointName": "info_fehlerbyte_gfa_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "100.00",
"defaultValue": "",
"unitDesignation": "ecnUnit.Prozent",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "4165",
"datapointType": "Double",
"datapointName": "info_brenner_modulation_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "0",
"dataType": 3,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "500.00",
"defaultValue": "",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "5372",
"datapointType": "Double",
"datapointName": "temp_agt_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "33",
"dataType": 3,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "-60.00",
"maximalValue": "60.00",
"defaultValue": "",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "5373",
"datapointType": "Double",
"datapointName": "temp_ats_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "3.6",
"dataType": 3,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "127.00",
"defaultValue": "",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "5374",
"datapointType": "Double",
"datapointName": "temp_kts_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "32",
"dataType": 3,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "0.00",
"defaultValue": "",
"unitDesignation": "",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "5385",
"datapointType": "Date",
"datapointName": "konf_uhrzeit_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "11/30/2017 2:17:45 PM",
"dataType": 4,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "0.00",
"defaultValue": "",
"unitDesignation": "",
"datapointGroup": "DEFAULT-GROUP",
"heatingCircuitId": "18947",
"datapointId": "7184",
"datapointType": "String",
"datapointName": "aktuelle_fehler_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "00000000000000000000",
"dataType": 6,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "10.00",
"maximalValue": "95.00",
"defaultValue": "50",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "51",
"datapointType": "Integer",
"datapointName": "konf_ww_solltemp_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "50",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "4.00",
"maximalValue": "37.00",
"defaultValue": "20",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "79",
"datapointType": "Integer",
"datapointName": "konf_partysolltemp_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "19",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "3.00",
"maximalValue": "37.00",
"defaultValue": "20",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "82",
"datapointType": "Integer",
"datapointName": "konf_raumsolltemp_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "20",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "3.00",
"maximalValue": "37.00",
"defaultValue": "3",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "85",
"datapointType": "Integer",
"datapointName": "konf_raumsolltemp_reduziert_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "15",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "0.00",
"defaultValue": "1970-01-01 00:00:00",
"unitDesignation": "",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "306",
"datapointType": "Date",
"datapointName": "konf_ferien_start_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "1/1/1970 12:00:00 AM",
"dataType": 4,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "0.00",
"defaultValue": "1970-01-01 00:00:00",
"unitDesignation": "",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "309",
"datapointType": "Date",
"datapointName": "konf_ferien_ende_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "1/1/1970 12:00:00 AM",
"dataType": 4,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.20",
"maximalValue": "3.50",
"defaultValue": "1,4",
"unitDesignation": "",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "2869",
"datapointType": "Double",
"datapointName": "konf_neigung_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "1",
"dataType": 3,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "-13.00",
"maximalValue": "40.00",
"defaultValue": "0",
"unitDesignation": "ecnUnit.K",
"datapointGroup": "HC1",
"heatingCircuitId": "18949",
"datapointId": "2875",
"datapointType": "Double",
"datapointName": "konf_niveau_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "-5",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "10.00",
"maximalValue": "95.00",
"defaultValue": "50",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "51",
"datapointType": "Integer",
"datapointName": "konf_ww_solltemp_rw",
"isWritable": true,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "50",
"dataType": 2,
"datapointType": 0,
"datapointStatus": 0
},
{
"metadata": {
"minimalValue": "0.00",
"maximalValue": "150.00",
"defaultValue": "",
"unitDesignation": "ecnUnit.Grad C",
"datapointGroup": "WW",
"heatingCircuitId": "18954",
"datapointId": "5381",
"datapointType": "Double",
"datapointName": "temp_ww_r",
"isWritable": false,
"isReadable": true,
"datapointTypeValue": 0
},
"value": "39.6",
"dataType": 3,
"datapointType": 0,
"datapointStatus": 0
}
]
}
Je n'ai pas vu malheureusement de moyen de récupérer juste une seule donnée.
Avec ça on peut mettre à jour toutes les données qui on le paramètre "isWritable": true.
Pour info, je n'ai pas trouvé de documentation officielle sur cette api. Je pense qu'il serait bon de ne pas contacter viessman à ce sujet car c'est je pense une sorte d'early access car l'api n'est même pas utilisée par leur propre app.