diff --git a/core/class/zigate.class.php b/core/class/zigate.class.php
index e0636f1..8320980 100644
--- a/core/class/zigate.class.php
+++ b/core/class/zigate.class.php
@@ -132,10 +132,11 @@ public static function syncEqLogicWithZiGate()
$ieee = $device['info']['ieee'];
$eqLogic = self::byLogicalId($ieee, 'zigate');
if (is_object($eqLogic)) {
- $eqLogic->setIsEnable(0);
- $eqLogic->save();
+// $eqLogic->setIsEnable(0);
+// $eqLogic->save();
$humanName = $eqLogic->getHumanName();
- message::add('zigate', 'L\'équipement '.$humanName.' semble manquant, il a été désactivé.');
+// message::add('zigate', 'L\'équipement '.$humanName.' semble manquant, il a été désactivé.');
+ log::add('zigate', 'info', 'L\'équipement '.$humanName.' semble manquant.');
}
}
}
@@ -384,7 +385,10 @@ public function createCommands($device)
public function update_command($endpoint_id, $cluster_id, $attribute)
{
$created_commands = [];
- $value = $attribute['data'];
+ $value = '';
+ if (isset($attribute['data'])) {
+ $value = $attribute['data'];
+ }
if (isset($attribute['value'])) {
$value = $attribute['value'];
}
@@ -428,7 +432,10 @@ public function _create_command($endpoint_id, $cluster_id, $attribute)
$name = $attribute['name'];
}
- $value = $attribute['data'];
+ $value = '';
+ if (isset($attribute['data'])) {
+ $value = $attribute['data'];
+ }
if (isset($attribute['value'])) {
$value = $attribute['value'];
}
diff --git a/core/php/zigateproxy.php b/core/php/zigateproxy.php
index ce95052..aaf51e2 100644
--- a/core/php/zigateproxy.php
+++ b/core/php/zigateproxy.php
@@ -27,8 +27,18 @@
if ($_GET && $_GET['url']) {
$headers = getallheaders();
$headers_str = [];
- #$url = $_GET['url'];
$url = 'http://localhost'.$_GET['url'];
+ $params = '';
+ foreach ($_GET as $key => $value) {
+ if ($key == 'url') {
+ continue;
+ }
+ $params .= $key.'='.$value.'&';
+ }
+ $params = trim($params, '&');
+ if ($params) {
+ $url = $url.'?'.$params;
+ }
foreach ($headers as $key => $value) {
if ($key == 'Host') {
@@ -68,8 +78,16 @@
$info = curl_getinfo($ch);
curl_close($ch);
- header('Content-Type: '.$info[CURLINFO_CONTENT_TYPE]);
- http_response_code($info[CURLINFO_RESPONSE_CODE]);
+ if (isset($info[CURLINFO_CONTENT_TYPE])) {
+ header('Content-Type: '.$info[CURLINFO_CONTENT_TYPE]);
+ } else {
+ header('Content-Type: text/html');
+ }
+ if (isset($info[CURLINFO_RESPONSE_CODE])) {
+ http_response_code($info[CURLINFO_RESPONSE_CODE]);
+ } else {
+ http_response_code(200);
+ }
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT');
echo $result;
diff --git a/desktop/js/zigate.js b/desktop/js/zigate.js
index 5381630..9de3509 100644
--- a/desktop/js/zigate.js
+++ b/desktop/js/zigate.js
@@ -15,18 +15,19 @@
*/
$('#bt_healthzigate').on(
- 'click',
- function () {
+ 'click',
+ function () {
$('#md_modal').dialog({
title : "{{Santé Zigate}}"
});
$('#md_modal').load('index.php?v=d&plugin=zigate&modal=health')
.dialog('open');
- });
+ }
+);
$('#bt_terminalzigate').on(
- 'click',
- function () {
+ 'click',
+ function () {
$('#md_modal').dialog({
title : "{{Terminal Zigate}}",
close : function () {
@@ -35,28 +36,31 @@ $('#bt_terminalzigate').on(
});
$('#md_modal').load('index.php?v=d&plugin=zigate&modal=terminal')
.dialog('open');
- });
+ }
+);
$('#bt_networkzigate').on(
- 'click',
- function () {
+ 'click',
+ function () {
$('#md_modal').dialog({
title : "{{Réseau Zigate}}"
});
$('#md_modal').load('index.php?v=d&plugin=zigate&modal=network')
.dialog('open');
- });
+ }
+);
$('#bt_zigateadmin').on(
- 'click',
- function () {
+ 'click',
+ function () {
$('#md_modal').dialog({
title : "{{ZiGate Admin}}"
});
$('#md_modal')
.load('index.php?v=d&plugin=zigate&modal=zigateadmin')
.dialog('open');
- });
+ }
+);
$("#table_cmd").sortable({
axis : "y",
@@ -69,7 +73,8 @@ $("#table_cmd").sortable({
/*
* Fonction pour l'ajout de commande, appellé automatiquement par plugin.zigate
*/
-function addCmdToTable(_cmd) {
+function addCmdToTable(_cmd)
+{
if (!isset(_cmd)) {
var _cmd = {
configuration : {}
@@ -111,7 +116,8 @@ function addCmdToTable(_cmd) {
$('#table_cmd tbody tr:last').setValues(_cmd, '.cmdAttr');
if (isset(_cmd.type)) {
$('#table_cmd tbody tr:last .cmdAttr[data-l1key=type]').value(
- init(_cmd.type));
+ init(_cmd.type)
+ );
}
jeedom.cmd.changeType($('#table_cmd tbody tr:last'), init(_cmd.subType));
}
@@ -130,31 +136,35 @@ $('#bt_reset').on('click', function () {
$('#bt_cleanup_devices')
.on(
- 'click',
- function () {
+ 'click',
+ function () {
bootbox
.confirm(
- '{{Etes-vous sûr de vouloir effacer les équipements manquants ?}}',
- function (result) {
- if (result) {
- callZiGate('cleanup_devices');
- }
- });
- });
+ '{{Etes-vous sûr de vouloir effacer les équipements manquants ?}}',
+ function (result) {
+ if (result) {
+ callZiGate('cleanup_devices');
+ }
+ }
+ );
+ }
+ );
$('#bt_erasepdm')
.on(
- 'click',
- function () {
+ 'click',
+ function () {
bootbox
.confirm(
- '{{Etes-vous sûr de vouloir effacer les données de la zigate ?}}',
- function (result) {
- if (result) {
- callZiGate('erase_persistent');
- }
- });
- });
+ '{{Etes-vous sûr de vouloir effacer les données de la zigate ?}}',
+ function (result) {
+ if (result) {
+ callZiGate('erase_persistent');
+ }
+ }
+ );
+ }
+ );
$('.eqLogicAction[data-action=refresh_device]').on('click', function () {
if ($('.eqLogicDisplayCard.active').attr('data-eqLogic_id') != undefined) {
@@ -192,7 +202,8 @@ $('.eqLogicAction[data-action=identify_device]').on('click', function () {
}
});
-function callZiGate(action) {
+function callZiGate(action)
+{
$.ajax({
type : "POST",
url : "plugins/zigate/core/ajax/zigate.ajax.php",
@@ -219,7 +230,8 @@ function callZiGate(action) {
});
}
-function syncEqLogicWithZiGate() {
+function syncEqLogicWithZiGate()
+{
$.ajax({
type : "POST",
url : "plugins/zigate/core/ajax/zigate.ajax.php",
@@ -243,7 +255,8 @@ function syncEqLogicWithZiGate() {
});
}
-function permitJoin() {
+function permitJoin()
+{
$.ajax({
type : "POST",
url : "plugins/zigate/core/ajax/zigate.ajax.php",
@@ -271,7 +284,8 @@ function permitJoin() {
});
}
-function reset() {
+function reset()
+{
$.ajax({
type : "POST",
url : "plugins/zigate/core/ajax/zigate.ajax.php",
@@ -299,7 +313,8 @@ function reset() {
});
}
-function refresh_eqlogic(id) {
+function refresh_eqlogic(id)
+{
$
.ajax({
type : "POST",
@@ -312,28 +327,30 @@ function refresh_eqlogic(id) {
error : function (request, status, error) {
handleAjaxError(request, status, error);
},
- success : function (data) {
- if (data.state != 'ok') {
- $('#div_alert').showAlert({
- message : data.result,
- level : 'danger'
- });
- return;
- } else {
- $('#div_alert')
- .showAlert(
- {
- message : '{{Rafraichissement de l\'équipement lancé.}}
'
- + '{{Les équipements sur pile doivent être activés manuellement pour transmettre les infos}}'
- + ' ({{Appui sur le bouton de synchro, manipulation, etc}})',
- level : 'warning'
- });
- }
- }
+ success : function (data) {
+ if (data.state != 'ok') {
+ $('#div_alert').showAlert({
+ message : data.result,
+ level : 'danger'
+ });
+ return;
+ } else {
+ $('#div_alert')
+ .showAlert(
+ {
+ message : '{{Rafraichissement de l\'équipement lancé.}}
'
+ + '{{Les équipements sur pile doivent être activés manuellement pour transmettre les infos}}'
+ + ' ({{Appui sur le bouton de synchro, manipulation, etc}})',
+ level : 'warning'
+ }
+ );
+ }
+ }
});
}
-function discover_eqlogic(id) {
+function discover_eqlogic(id)
+{
$
.ajax({
type : "POST",
@@ -346,28 +363,30 @@ function discover_eqlogic(id) {
error : function (request, status, error) {
handleAjaxError(request, status, error);
},
- success : function (data) {
- if (data.state != 'ok') {
- $('#div_alert').showAlert({
- message : data.result,
- level : 'danger'
- });
- return;
- } else {
- $('#div_alert')
- .showAlert(
- {
- message : '{{Découverte de l\'équipement lancé.}}
'
- + '{{Les équipements sur pile doivent être activés manuellement pour transmettre les infos}}'
- + ' ({{Appui sur le bouton de synchro, manipulation, etc}})',
- level : 'warning'
- });
- }
- }
+ success : function (data) {
+ if (data.state != 'ok') {
+ $('#div_alert').showAlert({
+ message : data.result,
+ level : 'danger'
+ });
+ return;
+ } else {
+ $('#div_alert')
+ .showAlert(
+ {
+ message : '{{Découverte de l\'équipement lancé.}}
'
+ + '{{Les équipements sur pile doivent être activés manuellement pour transmettre les infos}}'
+ + ' ({{Appui sur le bouton de synchro, manipulation, etc}})',
+ level : 'warning'
+ }
+ );
+ }
+ }
});
}
-function identify_device(id) {
+function identify_device(id)
+{
$
.ajax({
type : "POST",
@@ -380,32 +399,34 @@ function identify_device(id) {
error : function (request, status, error) {
handleAjaxError(request, status, error);
},
- success : function (data) {
- if (data.state != 'ok') {
- $('#div_alert').showAlert({
- message : data.result,
- level : 'danger'
- });
- return;
- } else {
- $('#div_alert')
- .showAlert(
- {
- message : 'Identification de l\'équipement lancé. (Cette commande peut être sans effet sur certain équipement)',
- level : 'warning'
- });
- }
- }
+ success : function (data) {
+ if (data.state != 'ok') {
+ $('#div_alert').showAlert({
+ message : data.result,
+ level : 'danger'
+ });
+ return;
+ } else {
+ $('#div_alert')
+ .showAlert(
+ {
+ message : 'Identification de l\'équipement lancé. (Cette commande peut être sans effet sur certain équipement)',
+ level : 'warning'
+ }
+ );
+ }
+ }
});
}
$('body').off('zigate::device_changed').on(
- 'zigate::device_changed',
- function (_event, _options) {
- if (_options == '') {
- window.location.reload();
- } else {
- window.location.href = 'index.php?v=d&p=zigate&m=zigate&id='
- + _options;
- }
- });
+ 'zigate::device_changed',
+ function (_event, _options) {
+ if (_options == '') {
+ window.location.reload();
+ } else {
+ window.location.href = 'index.php?v=d&p=zigate&m=zigate&id='
+ + _options;
+ }
+ }
+);
diff --git a/desktop/modal/zigateadmin.php b/desktop/modal/zigateadmin.php
index 5283153..fe0f1f9 100644
--- a/desktop/modal/zigateadmin.php
+++ b/desktop/modal/zigateadmin.php
@@ -25,4 +25,4 @@
throw new Exception('401 - Accès non autorisé');
}
?>
-
+
diff --git a/docs/fr_FR/changelog.md b/docs/fr_FR/changelog.md
index a22f576..a520603 100644
--- a/docs/fr_FR/changelog.md
+++ b/docs/fr_FR/changelog.md
@@ -1,5 +1,9 @@
# Changelog
+## v1.5.2 (2019-12-18)
+
+* Attention à partir de la version 1.6, plus de support pour Python 3.4 (3.5 minimum)
+
## v1.5.1 (2019-12-16)
* Correction installation des dépendances
diff --git a/plugin_info/info.json b/plugin_info/info.json
index f837998..5f874a1 100644
--- a/plugin_info/info.json
+++ b/plugin_info/info.json
@@ -16,5 +16,5 @@
"documentation": "https://jeedom-zigate.github.io/jeedom-plugin-zigate",
"language": ["fr_FR", "en_US"],
"compatibility": ["miniplus", "smart", "rpi", "docker", "diy"],
- "pluginVersion": "1.5.1"
+ "pluginVersion": "1.5.2"
}
diff --git a/resources/zigated/zigated.py b/resources/zigated/zigated.py
index 5fbb701..23a2ff4 100644
--- a/resources/zigated/zigated.py
+++ b/resources/zigated/zigated.py
@@ -341,6 +341,15 @@ def checkPlugins():
jc.send({'action': 'message',
'message': 'Le firmware de votre ZiGate est ancien, vous devriez le mettre à jour.'})
+if sys.version_info < (3, 5):
+ logging.warning('Votre système utilise une version obsolète de Python (<3.5), '
+ 'à partir de la version 1.6 du plugin '
+ 'la version minimale sera Python 3.5.')
+ jc.send({'action': 'message',
+ 'message': ('Votre système utilise une version obsolète de Python (<3.5), '
+ 'à partir de la version 1.6 du plugin '
+ 'la version minimale sera Python 3.5.')})
+
if args.sharedata:
t = threading.Thread(target=sharedata)
t.setDaemon(True)