Skip to content

Commit 052a12a

Browse files
committed
ajout du script kernel panic et reconfiguration du packet forwarder Lora
1 parent 37e61c8 commit 052a12a

6 files changed

Lines changed: 105 additions & 7 deletions

File tree

core/ajax/luna.ajax.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@
9898
ajax::success();
9999
}
100100

101+
if (init('action') == 'reconfigPacketForwarder') {
102+
luna::reconfigPacketForwarder();
103+
ajax::success();
104+
}
105+
101106
if (init('action') == 'changeBackupToSD') {
102107
luna::changeBackupToSD();
103108
ajax::success();

core/class/luna.class.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -816,6 +816,22 @@ public static function installLora() {
816816
}
817817
}
818818

819+
public static function reconfigPacketForwarder() {
820+
shell_exec('sudo systemctl disable --now lora.service > /dev/null 2>/dev/null &');
821+
$UID = exec('cd /usr/bin/lora && sudo ./chip_id -d /dev/spidev32766.0 | grep -io "concentrator EUI: 0x*[0-9a-fA-F][0-9a-fA-F]*\+"');
822+
if ($UID != "") {
823+
config::save('gatewayUID', luna::formatUid($UID), 'luna');
824+
log::add('luna', 'debug', 'UID > ' . $UID);
825+
} else {
826+
config::save('gatewayUID', false, 'luna');
827+
return false;
828+
}
829+
if (luna::configurationLora()) {
830+
sleep(3);
831+
luna::loraSwitchMaj();
832+
}
833+
}
834+
819835
/* ----- FIN LORA ------ */
820836

821837
/* ----- DEBUT 4G ----- */
@@ -1382,6 +1398,10 @@ public static function scheduleRebootBox() {
13821398
jeedom::rebootSystem();
13831399
}
13841400

1401+
public static function gestionKernelPanic() {
1402+
shell_exec("sudo sysctl kernel.hung_task_panic=1; sudo sysctl kernel.panic=5; grep -q '^kernel.hung_task_panic=1' /etc/sysctl.conf || echo 'kernel.hung_task_panic=1' | sudo tee -a /etc/sysctl.conf; grep -q '^kernel.panic=5' /etc/sysctl.conf || echo 'kernel.panic=5' | sudo tee -a /etc/sysctl.conf");
1403+
}
1404+
13851405
/* ----- FIN Advanced ----- */
13861406

13871407
public function postSave() {

desktop/js/lora.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,55 @@ $('#bt_stop_lora')
9797
}
9898
})
9999
})
100+
101+
$('#bt_reconfig_lora')
102+
.off('click')
103+
.on('click', function () {
104+
var dialog_title = '<i class="fas fa-cog"></i> {{Reconfigurer le packet forwarder}}'
105+
var dialog_message = '<center>{{Cette action va relancer la configuration du packet forwarder Lora.<br><br>Souhaitez-vous continuer ?}}</center>'
106+
107+
bootbox.dialog({
108+
title: dialog_title,
109+
message: dialog_message,
110+
buttons: {
111+
"{{Annuler}}": {
112+
className: "btn-danger",
113+
callback: function () {}
114+
},
115+
success: {
116+
label: "{{Reconfigurer}}",
117+
className: "btn-warning",
118+
callback: function () {
119+
$('#div_alert').showAlert({
120+
message: '{{Reconfiguration en cours...}}',
121+
level: 'warning'
122+
})
123+
$.ajax({
124+
type: "POST",
125+
url: "plugins/luna/core/ajax/luna.ajax.php",
126+
data: {
127+
action: "reconfigPacketForwarder"
128+
},
129+
dataType: 'json',
130+
error: function (request, status, error) {
131+
handleAjaxError(request, status, error)
132+
},
133+
success: function (data) {
134+
if (data.state != 'ok') {
135+
$('#div_alert').showAlert({
136+
message: data.result,
137+
level: 'danger'
138+
})
139+
return
140+
}
141+
$('#div_alert').showAlert({
142+
message: '{{Le packet forwarder a été reconfiguré avec succès !}}',
143+
level: 'success'
144+
})
145+
}
146+
})
147+
}
148+
}
149+
}
150+
})
151+
})

desktop/php/lora.php

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,16 @@
33
throw new Exception('{{401 - Accès non autorisé}}');
44
}
55

6-
if(luna::detectedLora()){
7-
if(luna::loraServiceActif() == false){
6+
if (luna::detectedLora()) {
7+
// Bouton commun à tous les états
8+
$btnReconfig = '
9+
<a class="btn btn-warning" id="bt_reconfig_lora" style="margin-left:10px;">
10+
<i class="fas fa-cog"></i>
11+
<span class="hidden-xs"> Reconfigurer le packet forwarder</span>
12+
</a>';
13+
14+
// Boutons selon l’état du service Lora
15+
if (luna::loraServiceActif() == false) {
816
$loraAc = '
917
<i class="icon_red fas fa-times"></i>
1018
<a class="btn" id="bt_start_lora">
@@ -16,12 +24,15 @@
1624
<i class="icon_green fas fa-check"></i>
1725
<a class="btn" id="bt_stop_lora">
1826
<i class="fas fa-times"></i>
19-
<span class="hidden-xs"> Désactivé</span>
27+
<span class="hidden-xs"> Désactivation</span>
2028
</a>';
2129
}
22-
}
2330

31+
// Ajoute le bouton Reconfig à la fin
32+
$loraAc .= $btnReconfig;
33+
}
2434
?>
35+
2536
<div role="tabpanel" class="tab-pane" id="LORAtab"><br />
2637
<fieldset>
2738
<legend><i class="fa fa-satellite-dish"></i> {{Lora}}</legend>
@@ -40,13 +51,15 @@
4051
<?php
4152
}else{
4253
?>
43-
<div class="alert alert-warning"><i class="fas fa-exclamation-triangle"></i> {{Votre Luna ne possède de module Lora integré.}}</div>
54+
<div class="alert alert-warning">
55+
<i class="fas fa-exclamation-triangle"></i>
56+
{{Votre Luna ne possède pas de module Lora intégré.}}
57+
</div>
4458
<?php
4559
}
4660
?>
4761
</div>
4862
</fieldset>
4963
</div>
5064

51-
52-
<?php include_file('desktop', 'lora', 'js', 'luna'); ?>
65+
<?php include_file('desktop', 'lora', 'js', 'luna'); ?>

docs/fr_FR/changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
>
77
>Pour rappel s'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte.
88
9+
# 20/10/2025
10+
11+
- Ajout de la gestion du kernel panic après l'installation ou la mise à jour du plugin Luna
12+
13+
- Ajout du bouton "Reconfigurer le packet forwarder" dans la partie Lora
14+
915
# 08/10/2025 (Beta)
1016

1117
- Ajout de l'onglet Avancé afin de pouvoir changer le mot de passe root SSH, configuration la rotation des logs, activer/désactiver le “factory reset” par bouton, activer/désactiver le script de failover réseau et planifier un redémarrage automatique de la box

plugin_info/install.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ function luna_install() {
5858
luna::onBattery();
5959
luna::startJeedomLTE();
6060
luna::checkLunaLte();
61+
luna::gestionKernelPanic();
6162
}
6263

6364
function luna_update() {
@@ -107,4 +108,5 @@ function luna_update() {
107108
luna::startJeedomLTE();
108109
luna::checkLunaLte();
109110
luna::applyFsreset();
111+
luna::gestionKernelPanic();
110112
}

0 commit comments

Comments
 (0)