Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/ajax/z2m.ajax.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
if (init('action') == 'include') {
$data = array(
'value' => (init('mode') == 1),
'time' => 180
'time' => (init('mode') == 1) ? 180 : 0
);
if(init('id') != 'all'){
$data['device'] = init('id');
Expand Down
6 changes: 3 additions & 3 deletions core/class/z2m.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -570,15 +570,15 @@ public static function handle_bridge($_datas) {
));*/
break;
case 'error':
log::add('z2m', 'error', __('Z2M à renvoyé une erreur : ', __FILE__) . $_datas['logging']['message']);
log::add('z2m', 'error', __('Z2M a renvoyé une erreur : ', __FILE__) . $_datas['logging']['message']);
break;
}
}
if (isset($_datas['response']['status']) && $_datas['response']['status'] != 'ok') {
log::add('z2m', 'error', __('Z2M à renvoyé une erreur : ', __FILE__) . json_encode($_datas['response']));
log::add('z2m', 'error', __('Z2M a renvoyé une erreur : ', __FILE__) . json_encode($_datas['response']));
}
if (isset($_datas['response']['permit_join'])) {
if ($_datas['response']['permit_join']['data']['value'] || $_datas['response']['permit_join']['status'] == 'ok') {
if ($_datas['response']['permit_join']['data']['time'] > 0) {
event::add('jeedom::alert', array(
'level' => 'success',
'page' => 'z2m',
Expand Down
4 changes: 2 additions & 2 deletions desktop/php/z2m.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@
sendVarToJS('z2m_devices', $devices);
sendVarToJS('devices_attr', $deviceAttr);
$bridge_infos = z2m::getDeviceInfo('bridge1');
if($bridge_infos['permit_join'] && isset($bridge_infos['permit_join_timeout'])){
if($bridge_infos['permit_join'] && isset($bridge_infos['permit_join_end'])){
event::add('jeedom::alert', array(
'level' => 'success',
'page' => 'z2m',
'message' => __('Mode inclusion actif', __FILE__),
'ttl' => $bridge_infos['permit_join_timeout'] * 1000
'ttl' => $bridge_infos['permit_join_end'] - time() * 1000
));
}
?>
Expand Down
19 changes: 19 additions & 0 deletions mobile/html/z2m.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php include 'z2m.php';?>
<div data-role="panel" class="ui-bottom-sheet ui-bottom-sheet-list" id="changeIncludeStateEnable" data-animate="true" data-position='bottom' data-display="overlay"></div>
<div data-role="panel" class="ui-bottom-sheet ui-bottom-sheet-list" id="changeIncludeStateDisable" data-animate="true" data-position='bottom' data-display="overlay"></div>
<div class="ui-grid-a">
<div class="ui-block-a">
<center>
<a class="ui-btn ui-btn-raised clr-primary waves-effect waves-button success" style="margin: 5px;" href="#changeIncludeStateEnable">
<i class="fas fa-sign-in-alt fa-rotate-90" style="font-size: 6em;"></i><br />{{Activer inclusion}}</a>
</center>
</div>
<div class="ui-block-b">
<center>
<a class="ui-btn ui-btn-raised clr-primary waves-effect waves-button " style="margin: 5px;" href="#changeIncludeStateDisable">
<i class="fas fa-sign-out-alt fa-rotate-270" style="font-size: 6em;"></i><br />{{Désactiver inclusion}}</a>
</center>
</div>
</div>
<script src="core/php/getJS.php?file=plugins/z2m/core/js/z2m.class.js"></script>
<script src="core/php/getJS.php?file=plugins/z2m/mobile/js/z2m.js"></script>
37 changes: 37 additions & 0 deletions mobile/html/z2m.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php
// Déclaration des variables obligatoires
$plugin = plugin::byId('z2m');
sendVarToJS('eqType', $plugin->getId());
$eqLogics = eqLogic::byType($plugin->getId());

foreach ($eqLogics as $eqLogic) {
$devices[$eqLogic->getLogicalId()] = array(
'HumanNameFull' => $eqLogic->getHumanName(true),
'HumanName' => $eqLogic->getHumanName(),
'id' => $eqLogic->getId(),
'img' => $eqLogic->getImgFilePath(),
'device_type' => $eqLogic->getConfiguration('device_type','EndDevice'),
'isgroup' => $eqLogic->getConfiguration('isgroup', 0),
'isChild' => $eqLogic->getConfiguration('isChild', 0),
'ieee' => z2m::convert_from_addr(explode('|', $eqLogic->getLogicalId())[0])
);
$deviceAttr[$eqLogic->getId()] = array(
'isgroup' => $eqLogic->getConfiguration('isgroup', 0),
'multipleEndpoints' => $eqLogic->getConfiguration('multipleEndpoints', 0),
'isChild' => $eqLogic->getConfiguration('isChild', 0)
);
}
$devices[0] = array('HumanNameFull' => 'Contrôleur', 'HumanName' => 'Contrôleur', 'id' => 0, 'img' => 'plugins/z2m/core/config/devices/coordinator.png');
sendVarToJS('z2m_devices', $devices);
sendVarToJS('devices_attr', $deviceAttr);
$bridge_infos = z2m::getDeviceInfo('bridge1');
if($bridge_infos['permit_join'] && isset($bridge_infos['permit_join_end'])){
$ttl = $bridge_infos['permit_join_end'] - time() * 1000;
event::add('jeedom::alert', array(
'level' => 'success',
'page' => 'z2m',
'message' => __('Mode inclusion actif pendant '. intdiv($ttl, 1000) . 's', __FILE__),
'ttl' => $ttl
));
}
?>
73 changes: 73 additions & 0 deletions mobile/js/z2m.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
"use strict"

$('body').attr('data-page', 'z2m')

$('#searchContainer').hide()

var $bottompanel_routerlist

function initz2mpromptRouter() {
$bottompanel_routerlist = $('#changeIncludeStateEnable')
$bottompanel_routerlist.empty()
$bottompanel_routerlist.append('<a class="ui-bottom-sheet-link ui-btn ui-btn-inline waves-effect waves-button routers" data-id="all"><i class="fas fa-plus" style="color:grey"></i> Tout</a>')
$bottompanel_routerlist.append('<a class="ui-bottom-sheet-link ui-btn ui-btn-inline waves-effect waves-button routers" data-id="Coordinator"><i class="fas fa-plus" style="color:#a65ba6"></i> Coordinateur</a>')
for(var i in z2m_devices){
if(z2m_devices[i].isgroup == 1 || z2m_devices[i].isChild == 1 || z2m_devices[i].device_type != 'Router'){
continue;
}
$bottompanel_routerlist.append('<a class="ui-bottom-sheet-link ui-btn ui-btn-inline waves-effect waves-button routers" data-id=' + z2m_devices[i].ieee + '> <i class="fas fa-plus" style="color:#e5e500"></i> ' + z2m_devices[i].HumanName + '</a>')
}
$bottompanel_routerlist.append('<br>')

$bottompanel_routerlist = $('#changeIncludeStateDisable')
$bottompanel_routerlist.empty()
$bottompanel_routerlist.append('<a class="ui-bottom-sheet-link ui-btn ui-btn-inline waves-effect waves-button routers" data-id="all"><i class="fas fa-minus" style="color:grey"></i> Tout</a>')
$bottompanel_routerlist.append('<a class="ui-bottom-sheet-link ui-btn ui-btn-inline waves-effect waves-button routers" data-id="Coordinator"><i class="fas fa-minus" style="color:#a65ba6"></i> Coordinateur</a>')
for(var i in z2m_devices){
if(z2m_devices[i].isgroup == 1 || z2m_devices[i].isChild == 1 || z2m_devices[i].device_type != 'Router'){
continue;
}
$bottompanel_routerlist.append('<a class="ui-bottom-sheet-link ui-btn ui-btn-inline waves-effect waves-button routers" data-id=' + z2m_devices[i].ieee + '> <i class="fas fa-minus" style="color:#e5e500"></i> ' + z2m_devices[i].HumanName + '</a>')
}
$bottompanel_routerlist.append('<br>')
}

$('#changeIncludeStateEnable').off('click', '.routers').on('click', '.routers', function(e) {
jeedom.z2m.bridge.include({
id: $(this).attr('data-id'),
mode : 1,
error: function(error) {
$('#div_alert').showAlert({message: error.message, level: 'danger'})
},
success: function() {
$('#div_alert').showAlert({message: '{{Lancement du mode inclusion}}', level: 'success'})
$('#changeIncludeStateEnable').hide()
}
})
})

$('#changeIncludeStateDisable').off('click', '.routers').on('click', '.routers', function(e) {
jeedom.z2m.bridge.include({
id: $(this).attr('data-id'),
mode : 0,
error: function(error) {
$('#div_alert').showAlert({message: error.message, level: 'danger'})
},
success: function() {
$('#div_alert').showAlert({message: '{{Désactivation du mode inclusion}}', level: 'success'})
$('#changeIncludeStateDisable').hide()
}
})
})

$('body').off('z2m::includeDevice').on('z2m::includeDevice', function(_event, _options) {
if (modifyWithoutSave) {
$('#div_alert').showAlert({
message: '{{Un périphérique vient d\'être inclu/exclu. Veuillez réactualiser la page}}',
level: 'warning'
});
} else if (_options != '') {
window.location.href = 'index.php?v=d&p=z2m&m=z2m&id=' + _options;
}
})
initz2mpromptRouter();
2 changes: 1 addition & 1 deletion resources/post-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ if [ -n "${wanted_z2m_version}" ] && [ $(echo $wanted_z2m_version | head -c 1) -
npm ci
npm run build
else
npm install -g pnpm
npm install -g pnpm@10.12.1
pnpm i --frozen-lockfile
pnpm run build
fi
Expand Down