diff --git a/core/class/rosee.class.php b/core/class/rosee.class.php index 5d1b3fd..859afa3 100644 --- a/core/class/rosee.class.php +++ b/core/class/rosee.class.php @@ -262,7 +262,9 @@ public function postSave() } /* Commun */ if ($calcul == 'rosee_givre' || $calcul == 'givre' || $calcul == 'humidityabs') { - $this->AddCommand((__('Humidité absolue', __FILE__)), 'humidityabs_m3', 'info', 'numeric', 'core::line', 'g/m3', 'WEATHER_HUMIDITY', 1, 'default', 'default', 'default', 'default', $order++, '0', true, 'default', null, 2, null); + $this->AddCommand((__('Humidité absolue', __FILE__)), 'humidityabs_m3', 'info', 'numeric', 'core::line', 'g/m³', 'WEATHER_HUMIDITY', 1, 'default', 'default', 'default', 'default', $order++, '0', true, 'default', null, 2, null); + $this->AddCommand((__('Pression de vapeur réelle', __FILE__)), 'pressure_vapor', 'info', 'numeric', 'core::line', 'Pa', 'default', 0, 'default', 'default', 'default', 'default', $order++, '0', true, 'default', null, 2, null); + $this->AddCommand((__('Rapport de mélange', __FILE__)), 'mixing_ratio', 'info', 'numeric', 'core::line', 'g/Kg', 'default', 0, 'default', 'default', 'default', 'default', $order++, '0', true, 'default', null, 2, null); } if ($calcul == 'rosee_givre' || $calcul == 'rosee' || $calcul == 'temperature') { @@ -514,8 +516,13 @@ public function getInformations() /* ********************** Calcul de l'humidité absolue *************************** */ if ($calcul == 'rosee_givre' || $calcul == 'givre' || $calcul == 'humidityabs') { log::add('rosee', 'debug', '┌── :fg-warning:' . __('Calcul de l\'humidité absolue', __FILE__) . ' ::/fg: ' . $this->getName() . ' ──'); - $humidityabs_m3 = rosee::getHumidity($temperature, $humidity, $pressure); - log::add('rosee', 'debug', '| ───▶︎ ' . __('Humidité Absolue', __FILE__) . ' : ' . $humidityabs_m3 . ' g/m3'); + $humidity_result = rosee::getHumidity($temperature, $humidity, $pressure); + $humidityabs_m3 = $humidity_result['humidityabs_m3']; + log::add('rosee', 'debug', '| ───▶︎ ' . __('Humidité Absolue', __FILE__) . ' : ' . $humidityabs_m3 . ' g/m³'); + $pressure_vapor_pa = $humidity_result['pressure_vapor']; + log::add('rosee', 'debug', '| ───▶︎ ' . __('Pression de vapeur réelle', __FILE__) . ' : ' . $pressure_vapor_pa . ' Pa'); + $mixing_ratio = $humidity_result['mixing_ratio']; + log::add('rosee', 'debug', '| ───▶︎ ' . __('Rapport de mélange', __FILE__) . ' : ' . $mixing_ratio . ' g/Kg'); log::add('rosee', 'debug', '└──'); } @@ -594,8 +601,8 @@ public function getInformations() $Value_calcul = array('alert_1' => $alert_1, 'alert_2' => $alert_2, 'humidex' => $humidex, 'humidityrel' => $humidity, 'temperature' => $temperature, 'td' => $td, 'td_num' => $td_num, 'wind' => $wind, 'windchill' => $windchill); break; case 'humidityabs': // Humidité absolue - $list = 'humidityabs_m3,humidityrel,pressure,temperature'; - $Value_calcul = array('humidityabs_m3' => $humidityabs_m3, 'humidityrel' => $humidity, 'pressure' => $pressure, 'temperature' => $temperature); + $list = 'humidityabs_m3,humidityrel,pressure,temperature,pressure_vapor,mixing_ratio'; + $Value_calcul = array('humidityabs_m3' => $humidityabs_m3, 'humidityrel' => $humidity, 'pressure' => $pressure, 'temperature' => $temperature, 'pressure_vapor' => $pressure_vapor_pa, 'mixing_ratio' => $mixing_ratio); break; case 'tendance': // Tendance => VALABLE AUSSI POUR LE PLUGIN BARO/ROSEE $list = 'dPdT,pressure,td,td_num'; @@ -639,17 +646,29 @@ public static function getHumidity($temperature, $humidity, $pressure) $terme_pvs1 = 2.7877 + (7.625 * $temperature) / (241.6 + $temperature); log::add('rosee', 'debug', '| ───▶︎ terme_pvs 1 : ' . $terme_pvs1); $pvs = pow(10, $terme_pvs1); - log::add('rosee', 'debug', '| ───▶︎ ' . __('Pression de saturation de la vapeur d\'eau (pvs)', __FILE__) . ' ::/fg: ' . $pvs); - $pv = ($humidity * $pvs) / 100.0; - log::add('rosee', 'debug', '| ───▶︎ ' . __('Pression partielle de vapeur d\'eau (pv)', __FILE__) . ' ::/fg: ' . $pv); - $humi_a = 0.622 * ($pv / (($pressure * 100.0) - $pv)); - log::add('rosee', 'debug', '| ───▶︎ ' . __('Humidité absolue en kg d\'eau par kg d\'air', __FILE__) . ' ::/fg: ' . $humi_a . ' kg'); + log::add('rosee', 'debug', '| ───▶︎ ' . __('Pression de saturation de la vapeur d\'eau [variable : pvs]', __FILE__) . ' ::/fg: ' . $pvs); + $pressure_vapor = ($humidity * $pvs) / 100.0; + log::add('rosee', 'debug', '| ───▶︎ ' . __('Pression partielle de vapeur d\'eau', __FILE__) . ' ::/fg: ' . $pressure_vapor . ' Pa'); + $humi_a = 0.622 * ($pressure_vapor / (($pressure * 100.0) - $pressure_vapor)); + log::add('rosee', 'debug', '| ───▶︎ ' . __('Humidité absolue en kg d\'eau par kg d\'air', __FILE__) . ' ::/fg: ' . $humi_a . ' Kg'); $v = (461.24 * (0.622 + $humi_a) * ($temperature + 273.15)) / ($pressure * 100.0); - log::add('rosee', 'debug', '| ───▶︎ ' . __('Volume specifique (v)', __FILE__) . ' ::/fg: ' . $v . ' m3/kg'); + log::add('rosee', 'debug', '| ───▶︎ ' . __('Volume specifique [variable : v]', __FILE__) . ' ::/fg: ' . $v . ' m³/Kg'); $p = 1.0 / $v; - log::add('rosee', 'debug', '| ───▶︎ ' . __('Poids spécifique (p)', __FILE__) . ' ::/fg: ' . $p . ' m3/kg'); + log::add('rosee', 'debug', '| ───▶︎ ' . __('Poids spécifique [variable : p]', __FILE__) . ' ::/fg: ' . $p . ' m³/Kg'); + $mas_eau = 18.0154; //kg/ k mol + $mas_air = 28.965; //kg/ k mol + $B = (($mas_eau / $mas_air) * 1000); + log::add('rosee', 'debug', '| ───▶︎ B = ' . __('masse molaire moyenne de l\'air', __FILE__) . ' x ' . __('masse molaire moyenne de l\'eau', __FILE__) . ' =:/fg: ' . $B . ' g/Kg'); + $mixing_ratio = $B * ($pressure_vapor / (($pressure * 100) - $pressure_vapor)); $humidityabs_m3 = 1000.0 * $humi_a * $p; - return $humidityabs_m3; + $humidity_result = array( + 'humidityabs_m3' => $humidityabs_m3, + 'pressure_vapor' => $pressure_vapor, + 'mixing_ratio' => $mixing_ratio + + ); + return $humidity_result; + //return $humidityabs_m3; } /* ********************** Calcul du Point de rosée *************************** */ diff --git a/core/i18n/de_DE.json b/core/i18n/de_DE.json index 1097f45..fd0031f 100644 --- a/core/i18n/de_DE.json +++ b/core/i18n/de_DE.json @@ -80,18 +80,20 @@ "Pas d'action pour la commande execute": "Keine Aktion für den Befehl execute", "Pas de mise à jour du point de l\\'alerte rosée car le calcul est désactivé": "Keine Aktualisierung des Tauwarnpunkts, da die Berechnung deaktiviert ist", "Pas de risque de gelures ni d’hypothermie (pour une exposition normale": "Kein Risiko von Erfrierungen oder Unterkühlung (bei normaler Exposition", - "Poids spécifique (p)": "Spezifisches Gewicht (p)", + "Poids spécifique [variable : p]": "Spezifisches Gewicht [Variable: p]", "Point de Givrage": "Vereisungspunkt", "Point de Rosée": "Taupunkt", "Point de givrage)": "Vereisungspunkt)", "Pression Atmosphérique": "Atmosphärischer Druck", "Pression atmosphérique": "Atmosphärischer Druck", "Pression atmosphérique aucun équipement sélectionné, valeur par défaut": "Luftdruck keine Ausrüstung ausgewählt, Standardwert", - "Pression de saturation de la vapeur d\\'eau (pvs)": "Sättigungsdruck von Wasserdampf (pvs)", - "Pression partielle de vapeur d\\'eau (pv)": "Wasserdampf-Partialdruck (pv)", + "Pression de saturation de la vapeur d\\'eau [variable : pvs]": "Sättigungsdruck von Wasserdampf [Variable: pvs]", + "Pression de vapeur réelle": "Tatsächlicher Dampfdruck", + "Pression partielle de vapeur d\\'eau": "Wasserdampf-Partialdruck", "Problème avec l\\'historique de la pression atmosphérique": "Problem mit dem Verlauf des Luftdrucks", "Pré Alerte Humidex": "Humidex Pre-Alert", "Rafraichir": "Auffrischen", + "Rapport de mélange": "Mischungsverhältnis", "Risque de givre": "Gefahr von Vereisung", "Risque modéré de gelures en 10 à 30 minutes de la peau exposée et d’hypothermie": "Mäßiges Risiko von Erfrierungen innerhalb von 10 bis 30 Minuten der exponierten Haut und von Unterkühlungen", "Risque très élevé de gelures en 2 à 5 minutes (voir note) sans protection intégrale ni activité": "Sehr hohes Risiko von Erfrierungen innerhalb von 2 bis 5 Minuten (siehe Anmerkung) ohne vollständigen Schutz oder Aktivität", @@ -120,11 +122,13 @@ "Type de générique": "Art des Vorspanns", "Vent": "Wind", "Vitesse du Vent": "Windgeschwindigkeit", - "Volume specifique (v)": "Spezifische Lautstärke (v)", + "Volume specifique [variable : v]": "Spezifische Lautstärke [Variable: v]", "dans la commande": "in der Bestellung", "doit être activé": "muss aktiviert werden", "est bien activé": "richtig aktiviert ist", "est nulle": "ist null", + "masse molaire moyenne de l\\'air": "durchschnittliche molare Masse von Luft", + "masse molaire moyenne de l\\'eau": "durchschnittliche molare Masse von Wasser", "ne peut être vide": "kann nicht leer sein", "pour l\\'équipement": "für die Ausstattung", "rosee": "rosee" @@ -215,5 +219,11 @@ "Équipement": "Ausstattung", "Équipement non visible": "Nicht sichtbare Ausstattung", "Équipement visible": "Sichtbare Ausstattung" + }, + "plugins\/rosee\/plugin_info\/install.php": { + "Correction de l\\'Arrondi (Nombre de décimale) pour": "Korrektur der Rundung (Anzahl der Dezimalstellen) für", + "Correction de la formule de calcul": "Korrektur der Berechnungsformel", + "Par la formule": "Durch die Formel", + "Par la valeur": "Durch den Wert" } } \ No newline at end of file diff --git a/core/i18n/en_US.json b/core/i18n/en_US.json index 60384d2..6d4ee3b 100644 --- a/core/i18n/en_US.json +++ b/core/i18n/en_US.json @@ -80,18 +80,20 @@ "Pas d'action pour la commande execute": "No action for execute command", "Pas de mise à jour du point de l\\'alerte rosée car le calcul est désactivé": "No dew point update because calculation is disabled", "Pas de risque de gelures ni d’hypothermie (pour une exposition normale": "No risk of frostbite or hypothermia (for normal exposure", - "Poids spécifique (p)": "Specific weight (p)", + "Poids spécifique [variable : p]": "Specific weight [variable : p]", "Point de Givrage": "Icing Point", "Point de Rosée": "Dew point", "Point de givrage)": "Icing point)", "Pression Atmosphérique": "Atmospheric pressure", "Pression atmosphérique": "Atmospheric pressure", "Pression atmosphérique aucun équipement sélectionné, valeur par défaut": "Atmospheric pressure no equipment selected, default value", - "Pression de saturation de la vapeur d\\'eau (pvs)": "Water vapor saturation pressure (wvp)", - "Pression partielle de vapeur d\\'eau (pv)": "Partial pressure of water vapour (pv)", + "Pression de saturation de la vapeur d\\'eau [variable : pvs]": "Water vapor saturation pressure [variable: wvp]", + "Pression de vapeur réelle": "Actual steam pressure", + "Pression partielle de vapeur d\\'eau": "Water vapour partial pressure", "Problème avec l\\'historique de la pression atmosphérique": "Problem with air pressure history", "Pré Alerte Humidex": "Humidex Pre-Alert", "Rafraichir": "Refresh", + "Rapport de mélange": "Mixing ratio", "Risque de givre": "Risk of frost", "Risque modéré de gelures en 10 à 30 minutes de la peau exposée et d’hypothermie": "Moderate risk of frostbite in 10 to 30 minutes of exposed skin and hypothermia", "Risque très élevé de gelures en 2 à 5 minutes (voir note) sans protection intégrale ni activité": "Very high risk of frostbite in 2 to 5 minutes (see note) without full protection or activity", @@ -120,11 +122,13 @@ "Type de générique": "Generic type", "Vent": "Wind", "Vitesse du Vent": "Wind speed", - "Volume specifique (v)": "Specific volume (v)", + "Volume specifique [variable : v]": "Specific volume [variable : v]", "dans la commande": "in the command", "doit être activé": "must be activated", "est bien activé": "is enabled", "est nulle": "is null", + "masse molaire moyenne de l\\'air": "average molar mass of air", + "masse molaire moyenne de l\\'eau": "average molar mass of water", "ne peut être vide": "cannot be empty", "pour l\\'équipement": "for equipment", "rosee": "rosee" @@ -215,5 +219,11 @@ "Équipement": "Equipment", "Équipement non visible": "Equipment not visible", "Équipement visible": "Visible equipment" + }, + "plugins\/rosee\/plugin_info\/install.php": { + "Correction de l\\'Arrondi (Nombre de décimale) pour": "Rounding correction (number of decimal places) for", + "Correction de la formule de calcul": "Correction of the calculation formula", + "Par la formule": "With the", + "Par la valeur": "By value" } } \ No newline at end of file diff --git a/core/i18n/es_ES.json b/core/i18n/es_ES.json index 04f2529..f5a47de 100644 --- a/core/i18n/es_ES.json +++ b/core/i18n/es_ES.json @@ -80,18 +80,20 @@ "Pas d'action pour la commande execute": "No hay acción para ejecutar comando", "Pas de mise à jour du point de l\\'alerte rosée car le calcul est désactivé": "No se actualiza la alerta de punto de rocío porque el cálculo está desactivado", "Pas de risque de gelures ni d’hypothermie (pour une exposition normale": "Sin riesgo de congelación o hipotermia (para una exposición normal", - "Poids spécifique (p)": "Peso específico (p)", + "Poids spécifique [variable : p]": "Peso específico [variable : p]", "Point de Givrage": "Punto de congelación", "Point de Rosée": "Punto de rocío", "Point de givrage)": "Punto de congelación)", "Pression Atmosphérique": "Presión atmosférica", "Pression atmosphérique": "Presión atmosférica", "Pression atmosphérique aucun équipement sélectionné, valeur par défaut": "Presión atmosférica ningún equipo seleccionado, valor por defecto", - "Pression de saturation de la vapeur d\\'eau (pvs)": "Presión de saturación del vapor de agua (wvp)", - "Pression partielle de vapeur d\\'eau (pv)": "Presión parcial del vapor de agua (pv)", + "Pression de saturation de la vapeur d\\'eau [variable : pvs]": "Presión de saturación del vapor de agua [variable : pvs] [variable : pvs] [variable : pvs", + "Pression de vapeur réelle": "Presión de vapor real", + "Pression partielle de vapeur d\\'eau": "Presión parcial del vapor de agua", "Problème avec l\\'historique de la pression atmosphérique": "Problema con el historial de presión de aire", "Pré Alerte Humidex": "Prealerta Humidex", "Rafraichir": "Refrescar", + "Rapport de mélange": "Proporción de mezcla", "Risque de givre": "Riesgo de heladas", "Risque modéré de gelures en 10 à 30 minutes de la peau exposée et d’hypothermie": "Riesgo moderado de congelación en 10 a 30 minutos de piel expuesta e hipotermia", "Risque très élevé de gelures en 2 à 5 minutes (voir note) sans protection intégrale ni activité": "Riesgo muy alto de congelación en 2 a 5 minutos (ver nota) sin protección total o actividad", @@ -120,11 +122,13 @@ "Type de générique": "Tipo de créditos", "Vent": "Viento", "Vitesse du Vent": "Velocidad del viento", - "Volume specifique (v)": "Volumen específico (v)", + "Volume specifique [variable : v]": "Volumen específico [variable : v]", "dans la commande": "en el", "doit être activé": "debe estar activada", "est bien activé": "se activa", "est nulle": "es nulo", + "masse molaire moyenne de l\\'air": "masa molar media del aire", + "masse molaire moyenne de l\\'eau": "masa molar media del agua", "ne peut être vide": "no puede estar vacío", "pour l\\'équipement": "para equipos", "rosee": "rosee" @@ -215,5 +219,11 @@ "Équipement": "Equipamiento", "Équipement non visible": "Equipos no visibles", "Équipement visible": "Equipos visibles" + }, + "plugins\/rosee\/plugin_info\/install.php": { + "Correction de l\\'Arrondi (Nombre de décimale) pour": "Corrección del redondeo (número de decimales) para", + "Correction de la formule de calcul": "Corrección de la fórmula de cálculo", + "Par la formule": "Con la fórmula", + "Par la valeur": "Por valor" } } \ No newline at end of file diff --git a/core/i18n/it_IT.json b/core/i18n/it_IT.json index f8e7da5..557a889 100644 --- a/core/i18n/it_IT.json +++ b/core/i18n/it_IT.json @@ -80,18 +80,20 @@ "Pas d'action pour la commande execute": "Nessuna azione per il comando esegui", "Pas de mise à jour du point de l\\'alerte rosée car le calcul est désactivé": "Nessun aggiornamento dell'allarme del punto di rugiada perché il calcolo è disattivato", "Pas de risque de gelures ni d’hypothermie (pour une exposition normale": "Nessun rischio di congelamento o ipotermia (per un'esposizione normale)", - "Poids spécifique (p)": "Peso specifico (p)", + "Poids spécifique [variable : p]": "Peso specifico [variabile : p]", "Point de Givrage": "Punto di congelamento", "Point de Rosée": "Punto di rugiada", "Point de givrage)": "Punto di congelamento)", "Pression Atmosphérique": "Pressione atmosferica", "Pression atmosphérique": "Pressione atmosferica", "Pression atmosphérique aucun équipement sélectionné, valeur par défaut": "Pressione atmosferica nessuna apparecchiatura selezionata, valore predefinito", - "Pression de saturation de la vapeur d\\'eau (pvs)": "Pressione di saturazione del vapore acqueo (wvp)", - "Pression partielle de vapeur d\\'eau (pv)": "Pressione parziale del vapore acqueo (pv)", + "Pression de saturation de la vapeur d\\'eau [variable : pvs]": "Pressione di saturazione del vapore acqueo [variabile : pvs] [variabile : pvs] [variabile : pvs", + "Pression de vapeur réelle": "Pressione di vapore effettiva", + "Pression partielle de vapeur d\\'eau": "Pressione parziale del vapore acqueo", "Problème avec l\\'historique de la pression atmosphérique": "Problema con lo storico della pressione dell'aria", "Pré Alerte Humidex": "Preallarme Humidex", "Rafraichir": "Aggiorna", + "Rapport de mélange": "Rapporto di miscelazione", "Risque de givre": "Rischio di gelo", "Risque modéré de gelures en 10 à 30 minutes de la peau exposée et d’hypothermie": "Moderato rischio di congelamento in 10-30 minuti di pelle esposta e ipotermia", "Risque très élevé de gelures en 2 à 5 minutes (voir note) sans protection intégrale ni activité": "Rischio molto elevato di congelamento in 2-5 minuti (vedi nota) senza protezione o attività completa", @@ -120,11 +122,13 @@ "Type de générique": "Tipo di crediti", "Vent": "Il vento", "Vitesse du Vent": "Velocità del vento", - "Volume specifique (v)": "Volume specifico (v)", + "Volume specifique [variable : v]": "Volume specifico [variabile : v]", "dans la commande": "nel", "doit être activé": "deve essere attivata", "est bien activé": "è attivata", "est nulle": "è nullo", + "masse molaire moyenne de l\\'air": "massa molare media dell'aria", + "masse molaire moyenne de l\\'eau": "massa molare media dell'acqua", "ne peut être vide": "non può essere vuoto", "pour l\\'équipement": "per le apparecchiature", "rosee": "rosee" @@ -215,5 +219,11 @@ "Équipement": "Apparecchiature", "Équipement non visible": "Apparecchiature non visibili", "Équipement visible": "Apparecchiature visibili" + }, + "plugins\/rosee\/plugin_info\/install.php": { + "Correction de l\\'Arrondi (Nombre de décimale) pour": "Correzione dell'arrotondamento (numero di cifre decimali) per", + "Correction de la formule de calcul": "Correzione della formula di calcolo", + "Par la formule": "Con la formula", + "Par la valeur": "Per valore" } } \ No newline at end of file diff --git a/core/i18n/pt_PT.json b/core/i18n/pt_PT.json index b26cd7a..baafb2c 100644 --- a/core/i18n/pt_PT.json +++ b/core/i18n/pt_PT.json @@ -80,18 +80,20 @@ "Pas d'action pour la commande execute": "Nenhuma ação para executar o comando", "Pas de mise à jour du point de l\\'alerte rosée car le calcul est désactivé": "Não há atualização do alerta de ponto de orvalho porque o cálculo está desativado", "Pas de risque de gelures ni d’hypothermie (pour une exposition normale": "Sem risco de queimaduras pelo frio ou hipotermia (para uma exposição normal)", - "Poids spécifique (p)": "Peso específico (p)", + "Poids spécifique [variable : p]": "Peso específico [variável : p]", "Point de Givrage": "Ponto de Gelo", "Point de Rosée": "Ponto de orvalho", "Point de givrage)": "Ponto de gelo)", "Pression Atmosphérique": "Pressão atmosférica", "Pression atmosphérique": "Pressão atmosférica", "Pression atmosphérique aucun équipement sélectionné, valeur par défaut": "Pressão atmosférica nenhum equipamento selecionado, valor por defeito", - "Pression de saturation de la vapeur d\\'eau (pvs)": "Pressão de saturação do vapor de água (wvp)", - "Pression partielle de vapeur d\\'eau (pv)": "Pressão parcial do vapor de água (pv)", + "Pression de saturation de la vapeur d\\'eau [variable : pvs]": "Pressão de saturação do vapor de água [variável: pvs] [variável: pvs] [variável: pvs", + "Pression de vapeur réelle": "Pressão de vapor real", + "Pression partielle de vapeur d\\'eau": "Pressão parcial do vapor de água", "Problème avec l\\'historique de la pression atmosphérique": "Problema com o historial da pressão do ar", "Pré Alerte Humidex": "Pré-alerta Humidex", "Rafraichir": "Recarregar", + "Rapport de mélange": "Rácio de mistura", "Risque de givre": "Risco de geada", "Risque modéré de gelures en 10 à 30 minutes de la peau exposée et d’hypothermie": "Risco moderado de queimaduras pelo frio em 10 a 30 minutos de pele exposta e hipotermia", "Risque très élevé de gelures en 2 à 5 minutes (voir note) sans protection intégrale ni activité": "Risco muito elevado de queimaduras pelo frio em 2 a 5 minutos (ver nota) sem proteção total ou atividade", @@ -120,11 +122,13 @@ "Type de générique": "Tipo de créditos", "Vent": "Vento", "Vitesse du Vent": "Velocidade do vento", - "Volume specifique (v)": "Volume específico (v)", + "Volume specifique [variable : v]": "Volume específico [variável : v]", "dans la commande": "no", "doit être activé": "deve ser ativado", "est bien activé": "está ativado", "est nulle": "é nulo", + "masse molaire moyenne de l\\'air": "massa molar média do ar", + "masse molaire moyenne de l\\'eau": "massa molar média da água", "ne peut être vide": "não pode estar vazio", "pour l\\'équipement": "para equipamentos", "rosee": "rosee" @@ -215,5 +219,11 @@ "Équipement": "Equipamento", "Équipement non visible": "Equipamento não visível", "Équipement visible": "Equipamentos visíveis" + }, + "plugins\/rosee\/plugin_info\/install.php": { + "Correction de l\\'Arrondi (Nombre de décimale) pour": "Correção do arredondamento (número de casas decimais) para", + "Correction de la formule de calcul": "Correção da fórmula de cálculo", + "Par la formule": "Com a fórmula", + "Par la valeur": "Por valor" } } \ No newline at end of file diff --git a/plugin_info/install.php b/plugin_info/install.php index 50f5816..ba087a2 100644 --- a/plugin_info/install.php +++ b/plugin_info/install.php @@ -76,6 +76,8 @@ function rosee_update() updateLogicalId($eqLogic, 'td_num', null, null, 'Message numérique'); // Modification du 7/12/2020 updateLogicalId($eqLogic, 'windchill', null, null, 'Température ressentie'); // Modification du 7/12/2020 updateLogicalId($eqLogic, 'heat_index', 'humidex', 0, 'Indice de Chaleur (Humidex)', 'DELETE'); // Modification du 7/12/2020 + updateLogicalId($eqLogic, 'humidityabs_m3', null, 0, null, 'g/m³'); // Modification du 4/05/2025 + updateLogicalId($eqLogic, 'mixing_ratio', null, 2, null, 'g/Kg', 'DELETE'); // Modification du 4/05/2025 } //resave eqLogics for new cmd: @@ -97,7 +99,7 @@ function rosee_update() //log::add('rosee', 'debug', '[INFO] Mise à jour Plugin'); } -function updateLogicalId($eqLogic, $from, $to, $_historizeRound = null, $name = null, $unite = null) +function updateLogicalId($eqLogic, $from, $to, $_historizeRound = null, $name = null, $unite = null, $_calculValueOffset = null) { $command = $eqLogic->getCmd(null, $from); if (is_object($command)) { @@ -105,17 +107,26 @@ function updateLogicalId($eqLogic, $from, $to, $_historizeRound = null, $name = $command->setLogicalId($to); } if ($_historizeRound != null) { - log::add('rosee', 'debug', '[INFO] Correction de l\'Arrondi (Nombre de décimale) pour : ' . $from . ' -> Par la valeur : ' . $_historizeRound); + log::add('rosee', 'debug', '[INFO] ' . __('Correction de l\'Arrondi (Nombre de décimale) pour', __FILE__) . ' : ' . $from . ' -> ' . __('Par la valeur', __FILE__) . ' : ' . $_historizeRound); $command->setConfiguration('historizeRound', $_historizeRound); } + if ($_calculValueOffset != null) { + log::add('rosee', 'debug', '[INFO] ' . __('Correction de la formule de calcul', __FILE__) . ' : ' . $from . ' -> ' . __('Par la formule', __FILE__) . ' : ' . $_calculValueOffset); + if ($_calculValueOffset == 'DELETE') { + $command->setConfiguration('calculValueOffset', null); + } else { + $command->setConfiguration('calculValueOffset', $_calculValueOffset); + } + } if ($name != null) { //$command->setName($name); } if ($unite != null) { if ($unite == 'DELETE') { $unite = null; + } else { + $command->setUnite($unite); } - $command->setUnite($unite); } $command->save(); }