iobroker.sprinklecontrol 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/admin/words.js CHANGED
@@ -56,6 +56,7 @@ systemDictionary = {
56
56
  "Maximum parallel operation of the valves": { "en": "Maximum parallel operation of the valves", "de": "Maximaler Parallelbetrieb der Ventile", "ru": "Максимальная параллельная работа клапанов", "pt": "Operação paralela máxima das válvulas", "nl": "Maximale parallelle werking van de kleppen", "fr": "Fonctionnement parallèle maximal des vannes", "it": "Massima operazione parallela delle valvole", "es": "Máximo funcionamiento paralelo de las válvulas.", "pl": "Maksymalna równoległa praca zaworów", "uk": "Максимальна паралельна робота клапанів", "zh-cn": "阀门最大平行运行"},
57
57
  "Method of controlling soil moisture": { "en": "Method of controlling soil moisture", "de": "Methode zur Kontrolle der Bodenfeuchtigkeit", "ru": "Метод контроля влажности почвы", "pt": "Método de controle da umidade do solo", "nl": "Methode voor het beheersen van bodemvocht", "fr": "Méthode de contrôle de l'humidité du sol", "it": "Metodo di controllo dell'umidità del suolo", "es": "Método de control de la humedad del suelo.", "pl": "Metoda kontrolowania wilgotności gleby", "uk": "Спосіб контролю вологості ґрунту", "zh-cn": "控制土壤水分的方法"},
58
58
  "Minimum fill level of the cysts in %": { "en": "Minimum fill level of the cysts in %", "de": "Mindestfüllstand der Zysten in %", "ru": "Минимальный уровень заполнения кист в %", "pt": "Nível mínimo de preenchimento dos cistos em %", "nl": "Minimaal vulniveau van de cysten in %", "fr": "Niveau de remplissage minimum des kystes en %", "it": "Livello minimo di riempimento delle cisti in %", "es": "Nivel mínimo de llenado de los quistes en %", "pl": "Minimalny poziom napełnienia torbieli w %", "uk": "Мінімальний рівень заповнення кіст у %", "zh-cn": "囊肿的最小填充水平,以%为单位"},
59
+ "Minimum pressure in the irrigation line in bar": {"en": "Minimum pressure in the irrigation line in bar", "de": "Mindestdruck in der Bewässerungsleitung in bar", "ru": "Минимальное давление в оросительной линии, бар", "pt": "Pressão mínima na linha de irrigação em bar", "nl": "Minimale druk in de irrigatieleiding in bar", "fr": "Pression minimale dans la conduite d'irrigation en bar", "it": "Pressione minima nella linea di irrigazione in bar", "es": "Presión mínima en la línea de riego en bar", "pl": "Minimalne ciśnienie w linii nawadniającej w barach", "uk": "Мінімальний тиск в зрошувальній лінії в барах", "zh-cn": "灌溉管路中的最小压力(巴)"},
59
60
  "Monday": { "en": "Monday", "de": "Montag", "ru": "понедельник", "pt": "Segunda-feira", "nl": "maandag", "fr": "lundi", "it": "Lunedi", "es": "lunes", "pl": "poniedziałek", "uk": "понеділок", "zh-cn": "周一"},
60
61
  "Name": { "en": "name", "de": "Name", "ru": "имя", "pt": "nome", "nl": "naam", "fr": "Nom", "it": "nome", "es": "nombre", "pl": "imię", "uk": "назва", "zh-cn": "名称"},
61
62
  "No Notification": { "en": "No Notification", "de": "Keine Benachrichtigung", "ru": "Нет уведомления", "pt": "Nenhuma notificação", "nl": "Geen melding", "fr": "Aucune notification", "it": "Nessuna notifica", "es": "Sin notificación", "pl": "Brak powiadomienia", "uk": "Немає сповіщень", "zh-cn": "无通知"},
@@ -69,6 +70,8 @@ systemDictionary = {
69
70
  "Precipitation threshold in mm": { "en": "Precipitation threshold in mm", "de": "Niederschlags-Schwellwert in mm", "ru": "Порог осадков в мм", "pt": "Limiar de precipitação em mm", "nl": "Neerslagdrempel in mm", "fr": "Seuil de précipitation en mm", "it": "Soglia di precipitazione in mm", "es": "Umbral de precipitación en mm", "pl": "Próg opadów w mm", "uk": "Поріг опадів в мм", "zh-cn": "以毫米为单位的降水阈值"},
70
71
  "Pressure relief in the lines before shutdown": { "en": "Pressure relief in the lines before shutdown", "de": "Druckentlastung der Leitungen vor der Abschaltung", "ru": "Сброс давления в линиях перед остановом", "pt": "Alívio de pressão nas linhas antes do desligamento", "nl": "Drukontlasting in de leidingen vóór uitschakeling", "fr": "Décompression dans les conduites avant l'arrêt", "it": "Depressurizzazione nelle linee prima dell'arresto", "es": "Alivio de presión en las líneas antes de la parada.", "pl": "Redukcja ciśnienia w przewodach przed wyłączeniem", "uk": "Скидання тиску в лініях перед відключенням", "zh-cn": "停机前管线压力释放"},
71
72
  "Pressure relief! Switches on the largest water consumer for 10 seconds after the pump has been switched off.": {"en": "Pressure relief! Switches on the largest water consumer for 10 seconds after the pump has been switched off.", "de": "Druckentlastung! Schaltet nach dem Abschalten der Pumpe den größten Wasserverbraucher für 10 Sekunden ein.", "ru": "Сброс давления! Включает самый большой водопотребитель на 10 секунд после выключения насоса.", "pt": "Alívio de pressão! Liga o maior consumidor de água durante 10 segundos após a bomba ter sido desligada.", "nl": "Drukverlichting! Schakelt de grootste waterverbruiker gedurende 10 seconden in nadat de pomp is uitgeschakeld.", "fr": "Soulagement de la pression ! Allume le plus gros consommateur d'eau pendant 10 secondes après l'arrêt de la pompe.", "it": "Alleviamento della pressione! Accende l'utenza d'acqua più grande per 10 secondi dopo lo spegnimento della pompa.", "es": "¡Alivio de presión! Enciende el mayor consumidor de agua durante 10 segundos después de apagar la bomba.", "pl": "Redukcja ciśnienia! Włącza największy odbiornik wody na 10 sekund po wyłączeniu pompy.", "uk": "Зняття тиску! Вмикає найбільшого споживача води на 10 секунд після вимкнення насоса.", "zh-cn": "压力缓解!泵关闭后,打开最大耗水量 10 秒。"},
73
+ "Pressure sensor - path": { "en": "Pressure sensor - path", "de": "Drucksensor - Pfad", "ru": "Датчик давления - путь", "pt": "Sensor de pressão - caminho", "nl": "Druksensor - pad", "fr": "Capteur de pression - chemin", "it": "Sensore di pressione - percorso", "es": "Sensor de presión - trayectoria", "pl": "Czujnik ciśnienia - ścieżka", "uk": "Датчик тиску - тракт", "zh-cn": "压力传感器 - 路径"},
74
+ "Pressure sensor for monitoring irrigation": { "en": "Pressure sensor for monitoring irrigation", "de": "Drucksensor zur Überwachung der Bewässerung", "ru": "Датчик давления для контроля полива", "pt": "Sensor de pressão para monitoramento de irrigação", "nl": "Druksensor voor het monitoren van de irrigatie", "fr": "Capteur de pression pour surveiller l'irrigation", "it": "Sensore di pressione per il monitoraggio dell'irrigazione", "es": "Sensor de presión para el seguimiento del riego.", "pl": "Czujnik ciśnienia do monitorowania nawadniania", "uk": "Датчик тиску для контролю зрошення", "zh-cn": "用于监测灌溉的压力传感器"},
72
75
  "Pump Settings": { "en": "Pump Settings", "de": "Pumpeneinstellungen", "ru": "Настройки насоса", "pt": "Configurações da bomba", "nl": "Pompinstellingen", "fr": "Paramètres de la pompe", "it": "Impostazioni della pompa", "es": "Configuraciones de bomba", "pl": "Ustawienia pompy", "uk": "Налаштування насоса", "zh-cn": "泵设定"},
73
76
  "Pump selection": { "en": "Pump selection", "de": "Pumpenauswahl", "ru": "Выбор насоса", "pt": "Seleção de bomba", "nl": "Pomp selectie", "fr": "Choix de la pompe", "it": "Selezione pompa", "es": "Selección de bombas", "pl": "Wybór Pumpa", "uk": "Вибір насоса", "zh-cn": "倾销选择"},
74
77
  "Pump settings": { "en": "Pump settings", "de": "Pumpeneinstellungen", "ru": "Настройки насоса", "pt": "Configurações da bomba", "nl": "Pomp instellingen", "fr": "Paramètres de la pompe", "it": "Impostazioni della pompa", "es": "Ajustes de la bomba", "pl": "Ustawienia pompy", "uk": "Налаштування насоса", "zh-cn": "泵设定"},
@@ -121,6 +124,7 @@ systemDictionary = {
121
124
  "Switch-on point (soil moisture) of the irrigation valves in %": {"en": "Switch-on point (soil moisture) of the irrigation valves in %", "de": "Einschaltpunkt (Bodenfeuchtigkeit) des Bewässerungsventile in %", "ru": "Точка включения (влажность почвы) оросительных клапанов в %", "pt": "Ponto de ativação (umidade do solo) das válvulas de irrigação em %", "nl": "Inschakelpunt (bodemvocht) van de besproeiingsventielen in %", "fr": "Point d'enclenchement (humidité du sol) des vannes d'irrigation en%", "it": "Punto di attivazione (umidità del suolo) delle valvole di irrigazione in %", "es": "Punto de activación (humedad del suelo) de las válvulas de riego en %", "pl": "Punkt włączenia (wilgotność gleby) zaworów nawadniających w %", "uk": "Точка вмикання (вологість ґрунту) зрошувальних клапанів у %", "zh-cn": "灌溉阀的开启点(土壤水分),以%为单位"},
122
125
  "Switch-on point for watering": { "en": "Switch-on point for watering", "de": "Einschaltpunkt zum Gießen", "ru": "Точка включения полива", "pt": "Ponto de ligação para rega", "nl": "Inschakelpunt voor bewatering", "fr": "Point de mise en marche pour l'arrosage", "it": "Punto di accensione per l'irrigazione", "es": "Punto de encendido para riego", "pl": "Punkt włączenia podlewania", "uk": "Точка включення для поливу", "zh-cn": "浇水点"},
123
126
  "Switches on at maximum temperature via": { "en": "Switches on at maximum temperature via", "de": "Einschalten bei maximaler Temperatur über", "ru": "Включается при максимальной температуре через", "pt": "Liga na temperatura máxima via", "nl": "Schakelt in op maximale temperatuur via", "fr": "S'allume à température maximale via", "it": "Si accende alla massima temperatura tramite", "es": "Se enciende a máxima temperatura mediante", "pl": "Włącza się przy maksymalnej temperaturze poprzez", "uk": "Вмикається при максимальній температурі через", "zh-cn": "通过在最高温度下打开"},
127
+ "Switching actuator manufacturer": { "en": "Switching actuator manufacturer", "de": "Hersteller von Schaltaktoren", "ru": "Производитель переключающих актуаторов", "pt": "Fabricante de atuador de comutação", "nl": "Fabrikant van schakelactoren", "fr": "Fabricant d'actionneurs de commutation", "it": "Produttore di attuatori di commutazione", "es": "Fabricante de actuadores de conmutación", "pl": "Producent aktora przełączającego", "uk": "Виробник приводу перемикання", "zh-cn": "开关执行器制造商"},
124
128
  "Switching distance between the valves in ms": { "en": "Switching distance between the valves in ms", "de": "Schaltabstand zwischen den Ventilen in ms", "ru": "Расстояние переключения между клапанами в мс", "pt": "Distância de comutação entre as válvulas em ms", "nl": "Schakelafstand tussen de kleppen in ms", "fr": "Distance de commutation entre les vannes en ms", "it": "Distanza di commutazione tra le valvole in ms", "es": "Distancia de conmutación entre las válvulas en ms", "pl": "Odległość przełączania między zaworami w ms", "uk": "Відстань перемикання між клапанами в мс", "zh-cn": "气门之间的切换距离(毫秒)"},
125
129
  "Telegram": { "en": "Telegram", "de": "Telegram", "ru": "Телеграмма", "pt": "Telegrama", "nl": "Telegram", "fr": "Télégramme", "it": "Telegramma", "es": "Telegrama", "pl": "Telegram", "uk": "Телеграма", "zh-cn": "电报"},
126
130
  "Telegram Receiver": { "en": "Telegram Receiver", "de": "Telegramempfänger", "ru": "Получатель Telegram", "pt": "Receptor de telegrama", "nl": "Telegram-ontvanger", "fr": "Récepteur de télégramme", "it": "Ricevitore di Telegram", "es": "Receptor de telegramas", "pl": "Odbiornik telegramu", "uk": "Приймач телеграм", "zh-cn": "电报接收器"},
@@ -135,6 +139,7 @@ systemDictionary = {
135
139
  "Time-based irrigation restriction": { "en": "", "de": "Zeitliche Bewässerungsbeschränkung", "ru": "Ограничение полива по времени", "pt": "Restrição de irrigação baseada no tempo", "nl": "Tijdgebaseerde irrigatiebeperking", "fr": "Restriction d'irrigation basée sur le temps", "it": "Restrizione dell'irrigazione basata sul tempo", "es": "Restricción de riego basada en el tiempo", "pl": "Ograniczenie nawadniania oparte na czasie", "uk": "Часове обмеження поливу", "zh-cn": "基于时间的灌溉限制"},
136
140
  "Time-based irrigation restriction (Irrigation ban)": {"en": "Time-based irrigation restriction (Irrigation ban)", "de": "Zeitliche Bewässerungsbeschränkung (Bewässerungsverbot)", "ru": "Ограничение орошения по времени (запрет на орошение)", "pt": "Restrição de irrigação baseada no tempo (proibição de irrigação)", "nl": "Tijdgebaseerde irrigatiebeperking (irrigatieverbod)", "fr": "Restriction d'irrigation basée sur le temps (interdiction d'irrigation)", "it": "Restrizione dell'irrigazione basata sul tempo (divieto di irrigazione)", "es": "Restricción de riego basada en el tiempo (Prohibición de riego)", "pl": "Ograniczenia nawadniania oparte na czasie (zakaz nawadniania)", "uk": "Часове обмеження поливу (заборона поливу)", "zh-cn": "基于时间的灌溉限制(灌溉禁令)"},
137
141
  "Tuesday": { "en": "Tuesday", "de": "Dienstag", "ru": "вторник", "pt": "terça", "nl": "dinsdag", "fr": "Mardi", "it": "martedì", "es": "martes", "pl": "wtorek", "uk": "вівторок", "zh-cn": "周二"},
142
+ "Unit of wind speed": { "en": "Unit of wind speed", "de": "Einheit der Windgeschwindigkeit", "ru": "Единица скорости ветра", "pt": "Unidade de velocidade do vento", "nl": "Eenheid van windsnelheid", "fr": "Unité de vitesse du vent", "it": "Unità di velocità del vento", "es": "Unidad de velocidad del viento", "pl": "Jednostka prędkości wiatru", "uk": "Одиниця швидкості вітру", "zh-cn": "风速单位"},
138
143
  "Use weather forecast": { "en": "Use weather forecast", "de": "Wettervorhersage verwenden", "ru": "Использовать прогноз погоды", "pt": "Use a previsão do tempo", "nl": "Gebruik weersvoorspelling", "fr": "Utiliser les prévisions météorologiques", "it": "Usa le previsioni del tempo", "es": "Usar pronóstico del tiempo", "pl": "Użyj prognozy pogody", "uk": "Використовуйте прогноз погоди", "zh-cn": "使用天气预报"},
139
144
  "Waiting for the send (seconds)": { "en": "Waiting for the send (seconds)", "de": "Warten auf den Versand (Sekunden)", "ru": "Ожидание отправки (секунды)", "pt": "Esperando pelo envio (segundos)", "nl": "Wachten op verzending (seconden)", "fr": "En attente de l'envoi (secondes)", "it": "Aspettando l'invio (secondi)", "es": "Esperando el envío (segundos)", "pl": "Oczekiwanie na wysłanie (sekundy)", "uk": "Очікування надсилання (секунд)", "zh-cn": "等待发送(秒)"},
140
145
  "Watering interval in min": { "en": "Watering interval in min", "de": "Bewässerungsintervall in min", "ru": "Интервал полива в мин.", "pt": "Intervalo de rega em min", "nl": "Bewateringsinterval in min", "fr": "Intervalle d'arrosage en min", "it": "Intervallo di irrigazione in min", "es": "Intervalo de riego en min", "pl": "Odstęp podlewania w min", "uk": "Інтервал поливу в хв", "zh-cn": "浇水间隔(分钟)"},
@@ -158,8 +163,10 @@ systemDictionary = {
158
163
  "email instance": { "en": "email instance", "de": "E-Mail-Instanz", "ru": "экземпляр электронной почты", "pt": "instância de email", "nl": "e-mailinstantie", "fr": "instance de messagerie", "it": "istanza di posta elettronica", "es": "instancia de correo electrónico", "pl": "wystąpienie poczty e-mail", "uk": "екземпляр електронної пошти", "zh-cn": "电子邮件实例"},
159
164
  "email receiver": { "en": "email receiver", "de": "E-Mail-Empfänger", "ru": "получатель электронной почты", "pt": "receptor de email", "nl": "e-mailontvanger", "fr": "récepteur de courrier électronique", "it": "destinatario di posta elettronica", "es": "receptor de correo electrónico", "pl": "odbiorca poczty elektronicznej", "uk": "отримувач електронної пошти", "zh-cn": "电子邮件接收者"},
160
165
  "email sender": { "en": "email sender", "de": "E-Mail-Absender", "ru": "отправитель электронной почты", "pt": "remetente de email", "nl": "e-mail afzender", "fr": "expéditeur de l'e-mail", "it": "mittente di posta elettronica", "es": "remitente de correo electrónico", "pl": "nadawca wiadomości e-mail", "uk": "відправник електронної пошти", "zh-cn": "电子邮件发件人"},
161
- "latitude": { "en": "latitude", "de": "Breite", "ru": "широта", "pt": "latitude", "nl": "breedtegraad", "fr": "latitude", "it": "latitudine", "es": "latitud", "pl": "szerokość", "uk": "широта", "zh-cn": "纬度"},
166
+ "km/h": { "en": "km/h", "de": "km/h", "ru": "км/ч", "pt": "km/h", "nl": "km/u", "fr": "km/h", "it": "km/ora", "es": "kilómetros por hora", "pl": "kilometrów na godzinę", "uk": "км/год", "zh-cn": "公里/小时"},
167
+ "latitude": { "en": "latitude", "de": "Breitengrad", "ru": "широта", "pt": "latitude", "nl": "breedtegraad", "fr": "latitude", "it": "latitudine", "es": "latitud", "pl": "szerokość", "uk": "широта", "zh-cn": "纬度"},
162
168
  "longitude": { "en": "longitude", "de": "Längengrad", "ru": "долгота", "pt": "longitude", "nl": "Lengtegraad", "fr": "longitude", "it": "longitudine", "es": "longitud", "pl": "długość geograficzna", "uk": "довгота", "zh-cn": "经度"},
169
+ "m/s": { "en": "m/s", "de": "m/s", "ru": "РС", "pt": "EM", "nl": "mevrouw", "fr": "MS", "it": "SM", "es": "EM", "pl": "SM", "uk": "РС", "zh-cn": "多发性硬化症"},
163
170
  "main settings": { "en": "main settings", "de": "Haupteinstellungen", "ru": "Основные настройки", "pt": "configurações principais", "nl": "belangrijkste instellingen", "fr": "Réglages principaux", "it": "impostazioni principali", "es": "ajustes principales", "pl": "Ustawienia główne", "uk": "основні налаштування", "zh-cn": "主要设定"},
164
171
  "maximum irrigation extension": { "en": "maximum irrigation extension in %", "de": "maximale Bewässerungsverlängerung in %", "ru": "максимальное увеличение орошения в %", "pt": "extensão máxima de irrigação em %", "nl": "maximale verlenging van de irrigatie in %", "fr": "extension maximale de l'irrigation en %", "it": "massima estensione di irrigazione in %", "es": "extensión máxima de riego en %", "pl": "maksymalne rozszerzenie nawadniania w %", "uk": "максимальне подовження поливу в %", "zh-cn": "最大灌溉延伸率(%)"},
165
172
  "maximum pump capacity of the cistern in l/h": { "en": "maximum pump capacity of the cistern in l/h", "de": "maximale Pumpenleistung der Zisterne in l/h", "ru": "максимальная производительность насоса в цистерне в л/ч", "pt": "capacidade máxima da bomba da cisterna em l/h", "nl": "maximale pompcapaciteit van de stortbak in l/h", "fr": "capacité maximale de pompage du réservoir en l/h", "it": "portata massima della pompa della cisterna in l/h", "es": "Capacidad máxima de bombeo de la cisterna en l/h", "pl": "maksymalna wydajność pompy cysterny w l/h", "uk": "максимальна продуктивність насоса цистерни в л/год", "zh-cn": "水箱的最大泵容量,以升/小时为单位"},
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "sprinklecontrol",
4
- "version": "1.0.6",
4
+ "version": "1.0.7",
5
5
  "titleLang": {
6
6
  "en": "Sprinkler Control",
7
7
  "de": "Sprinklersteuerung",
@@ -19,6 +19,19 @@
19
19
  "Dirk Peter <dirk.peter@freenet.de>"
20
20
  ],
21
21
  "news": {
22
+ "1.0.7": {
23
+ "en": "Added pressure monitoring.",
24
+ "de": "Drucküberwachung hinzugefügt.",
25
+ "ru": "Добавлен мониторинг давления.",
26
+ "pt": "Aumentou a monitorização da pressão.",
27
+ "nl": "Toegevoegde drukbewaking.",
28
+ "fr": "Ajout de la surveillance de la pression.",
29
+ "it": "Aggiunto monitoraggio della pressione.",
30
+ "es": "Añadido control de presión.",
31
+ "pl": "Dodano monitorowanie ciśnienia.",
32
+ "uk": "Додано контроль тиску.",
33
+ "zh-cn": "增加了压力监测."
34
+ },
22
35
  "1.0.6": {
23
36
  "en": "Cistern Control Optimized\nTranslation revised",
24
37
  "de": "Zisternensteuerung optimiert\nÜbersetzung überarbeitet",
@@ -96,19 +109,6 @@
96
109
  "pl": "Dodaj homematic on _ time\nZmieniona konfiguracja adaptera\njoBroker- Bot [E4041], [E4043] ukończone",
97
110
  "uk": "Додати Homematic ON TIME\nПереглянуто налаштування адаптера\nioBroker-Bot [E4041], [E4043] завершено",
98
111
  "zh-cn": "添加自定义 ON TIME\n修改适应器配置\nioBroker-Bot [E4041], [E4043] 完成"
99
- },
100
- "1.0.0": {
101
- "en": "Adapter redesign => Be sure to check your configuration\nAdaptation to “dasWeather” >= 4.0\nFix npm publish\ndependencies updated\nupdate dependabot",
102
- "de": "Adapter redesign => Überprüfen Sie Ihre Konfiguration\nAnpassung an „dasWeather“ >= 4.0\nNpm veröffentlichen\naktualisierte abhängigkeiten\nupdate abhängigabot",
103
- "ru": "Адаптивный редизайн = Обязательно проверьте свою конфигурацию\nАдаптация к «dasWeather» 4.0\nИздательство Fix npm\nобновленные зависимости\nобновление dependabot",
104
- "pt": "Redesenho do adaptador => Certifique-se de verificar sua configuração\nAdaptação ao “dasWeather” >= 4.0\nCorrigir a publicação do npm\ndependências atualizadas\nupdate dependebot",
105
- "nl": "Herontwerp van de adapter => Controleer zeker uw configuratie\nAanpassing aan het weer 4.0\nFix npm publiceren\nafhankelijkheden bijgewerkt\nupdate dependabot",
106
- "fr": "Remaniement de l'adaptateur => Vérifiez votre configuration\nAdaptation à la température de l'air >= 4,0\nCorrection de npm publier\ndépendances mises à jour\nmise à jour de dermabot",
107
- "it": "Redesign adattatore = > Assicurati di controllare la configurazione\nAdattamento a “dasWeather” >= 4.0\nFisso npm pubblicazione\ndipendenze aggiornate\naggiornamento dipendeabot",
108
- "es": "Adaptador de rediseño = confianza Asegúrese de comprobar su configuración\nAdaptación a “dasWeather” 4.0\nCorrección npm publicar\ndependencias actualizadas\nactualización dependabot",
109
- "pl": "Przeprojektowanie adaptera = > Sprawdź konfigurację\nAdaptacja do \"dasWeather\" > = 4. 0\nNapraw publikację npm\nzaktualizowane zależności\naktualizacja zależna",
110
- "uk": "Редизайн адаптера => Обов'язково перевірте налаштування\nАдаптація до \"dasWeather\" >= 4.8 км\nВиправлення npm опублікування\nоновлені залежності\nоновлення залежності",
111
- "zh-cn": "适应器的重新设计 请检查您的配置\n适应“DasWeather”_________________________ 4.0 (单位:百万美元)\n修复 npm 发布\n更新依赖关系\n更新依赖保护"
112
112
  }
113
113
  },
114
114
  "desc": {
@@ -171,8 +171,8 @@
171
171
  "maximumParallelValves": "5",
172
172
  "switchingDistance": "0.5",
173
173
  "pressureRelief": false,
174
- "pumpSelection": "mainPump",
175
- "triggerMainPump": "hm-rpc.0.MEQ1234567.1.STATE",
174
+ "pumpSelection": "noPump",
175
+ "triggerMainPump": "",
176
176
  "triggerMainPumpPower": "2000",
177
177
  "mainPumpLeadTime": "1",
178
178
  "triggerCisternPump": "",
@@ -198,9 +198,12 @@
198
198
  "publicHolInstance": "",
199
199
  "latitude": "",
200
200
  "longitude": "",
201
+ "sensorPressure": "",
202
+ "minimumPressure": "2.0",
201
203
  "sensorOutsideTemperature": "",
202
204
  "sensorOutsideHumidity": "",
203
205
  "sensorWindSpeed": "",
206
+ "unitOfWindSpeed": "km/h",
204
207
  "sensorBrightness": "",
205
208
  "sensorRainfall": "",
206
209
  "switchingBehavior": "noResponse",
@@ -384,7 +384,7 @@ const evaporation = {
384
384
  * akt. LuftFeuchtigkeit in %
385
385
  *
386
386
  * @param {number} value
387
- * @param {any} lc
387
+ * @param {number} lc
388
388
  */
389
389
  setCurHumidity (value, lc) {
390
390
  curHumidity.val = value;
@@ -394,7 +394,7 @@ const evaporation = {
394
394
  * akt. Helligkeit wird auf 0 bis 7000 begrenzt
395
395
  *
396
396
  * @param {number} value
397
- * @param {any} lc
397
+ * @param {number} lc
398
398
  */
399
399
  setCurIllumination (value, lc) {
400
400
  curIllumination.val = value;
@@ -404,7 +404,7 @@ const evaporation = {
404
404
  * akt. Windgeschwindigkeit
405
405
  *
406
406
  * @param {number} value Windgeschwindigkeit in km/h
407
- * @param {any} lc
407
+ * @param {number} lc
408
408
  */
409
409
  setCurWindSpeed (value, lc) {
410
410
  curWindSpeed.val = value;
package/lib/tools.js CHANGED
@@ -59,7 +59,7 @@ const tools = {
59
59
  *
60
60
  * @template T
61
61
  * @param {T[]} elements
62
- * @param {any} cb
62
+ * @param {(element: T, index: number, elements: T[]) => Promise<boolean>} cb
63
63
  * @returns {Promise<T | undefined>}
64
64
  */
65
65
  findAsync: async function ( elements, cb) {
@@ -149,7 +149,14 @@ const tools = {
149
149
  }
150
150
 
151
151
  default: {
152
- adapter.log.error(`No switching behavior was selected for the "${id}" watering circuit.`);
152
+ adapter.log.error(`„Zusätzliche Einstellungen“ => „Schaltverhalten anpassen“ enthielt keine Eingabe! Es wurde daher auf „Befehl ohne Rückmeldung“ gesetzt.`);
153
+ adapter.config.switchingBehavior = "noResponse";
154
+ return {
155
+ idState: id,
156
+ idON_TIME: null,
157
+ idACK: null,
158
+ maker: "default"
159
+ };
153
160
  }
154
161
  }
155
162
  },
@@ -23,7 +23,19 @@ const threadList = [];
23
23
  * Ventil mit dem größten Durchfluss (pipeFlow) für die Steuerung des Druckentlastungsventils
24
24
  * - wird in der Funktion updateList() ermittelt
25
25
  */
26
- const pressureReliefValve = {enable: false, name: '',wateringTime: 10, ac: {}, controller: {}, control: {idState: undefined, idON_TIME: undefined, idACK: undefined, maker: undefined}};
26
+ const pressureReliefValve = {
27
+ enable: false,
28
+ name: '',
29
+ wateringTime: 10,
30
+ ac: {},
31
+ controller: {},
32
+ control: {
33
+ idState: undefined,
34
+ idON_TIME: undefined,
35
+ idACK: undefined,
36
+ maker: undefined
37
+ }
38
+ };
27
39
 
28
40
  /**
29
41
  * - bereit zum Boost (true: kein Boostventil aktive; false: BoostVentil aktive)
@@ -46,7 +58,12 @@ let boostReady = true,
46
58
  */
47
59
  timeBasedRestrictionEn = false;
48
60
 
49
- const updateListMarker = {funcActive: false, newStart: false, switchingDistance: 5000, cancelSwitchingDistance: {}};
61
+ const updateListMarker = {
62
+ funcActive: false,
63
+ newStart: false,
64
+ switchingDistance: 5000,
65
+ cancelSwitchingDistance: {}
66
+ };
50
67
 
51
68
  /**
52
69
  * aktive Pumpendaten
@@ -64,9 +81,38 @@ const updateListMarker = {funcActive: false, newStart: false, switchingDistance:
64
81
  * - ac: AbortController
65
82
  */
66
83
 
67
- const currentPumpUse = {enable: false, name: '', wateringTime: 0, id: '', pumpCistern: false, intBreak: false, leadTime: 0, cancelLeadTime: {}, pumpPower: 0, restFlow: 0,ac: {},controller: {}, control: {idState: undefined, idON_TIME: undefined, idACK: undefined, maker: undefined}};
68
- let mainPumpControl = {idState: undefined, idON_TIME: undefined, idACK: undefined, maker: undefined};
69
- let cisternPumpControl = {idState: undefined, idON_TIME: undefined, idACK: undefined, maker: undefined};
84
+ const currentPumpUse = {
85
+ enable: false,
86
+ name: '',
87
+ wateringTime: 0,
88
+ id: '',
89
+ pumpCistern: false,
90
+ intBreak: false,
91
+ leadTime: 0,
92
+ cancelLeadTime: {},
93
+ pumpPower: 0,
94
+ restFlow: 0,
95
+ ac: {},
96
+ controller: {},
97
+ control: {
98
+ idState: undefined,
99
+ idON_TIME: undefined,
100
+ idACK: undefined,
101
+ maker: undefined
102
+ }
103
+ };
104
+ let mainPumpControl = {
105
+ idState: undefined,
106
+ idON_TIME: undefined,
107
+ idACK: undefined,
108
+ maker: undefined
109
+ };
110
+ let cisternPumpControl = {
111
+ idState: undefined,
112
+ idON_TIME: undefined,
113
+ idACK: undefined,
114
+ maker: undefined
115
+ };
70
116
 
71
117
  /**
72
118
  * Steuerspannung 24V
@@ -75,7 +121,27 @@ let cisternPumpControl = {idState: undefined, idON_TIME: undefined, idACK: undef
75
121
  * - idState: Aktorerkennung "hm-rpc.0.MEQ1810129.1.STATE"
76
122
  * - controller: controlle von Zeiten und Abbruchsignalen
77
123
  */
78
- const controlVoltage = {enable: false, name: '24V',wateringTime: 0, ac: {}, controller: {}, control: {idState: undefined, idON_TIME: undefined, idACK: undefined, maker: undefined}};
124
+ const controlVoltage = {
125
+ enable: false,
126
+ name: '24V',
127
+ wateringTime: 0,
128
+ ac: {},
129
+ controller: {},
130
+ control: {
131
+ idState: undefined,
132
+ idON_TIME: undefined,
133
+ idACK: undefined,
134
+ maker: undefined
135
+ }
136
+ };
137
+
138
+ const sensorPressure = {
139
+ inadequatePressure: false, // true = Nicht ausreichender Druck, false = ausreichender Druck
140
+ name: 'Sensor Pressure',
141
+ value: 0,
142
+ state: 0,
143
+ ac: null
144
+ };
79
145
 
80
146
  /**
81
147
  * Schaltabstand in ms
@@ -154,7 +220,7 @@ const setValve = async (thread, val) => {
154
220
 
155
221
  //adapter.log.info(`Set Valve (async () => {...}`);
156
222
  try {
157
- // Ventil ansteuern
223
+ // ON_Time setzen wenn angegeben, damit das Ventil nach der angegebenen Zeit automatisch ausgeschaltet wird (z.B. wenn der Ausschaltbefehl nicht ausgeführt werden kann, z.B Funkstörung)
158
224
  if (thread.control.idON_TIME !== null) {
159
225
  await adapter.setForeignStateAsync(thread.control.idON_TIME, {
160
226
  val: val ? Math.ceil(thread.wateringTime + 5) : 0,
@@ -162,7 +228,7 @@ const setValve = async (thread, val) => {
162
228
  });
163
229
  await asyncTime.setTimeout(200, undefined, undefined);
164
230
  }
165
-
231
+ // Ventil ansteuern
166
232
  const _setValve = await adapter.setForeignStateAsync(thread.control.idState, {
167
233
  val: val,
168
234
  ack: false
@@ -263,6 +329,9 @@ const delList = async (killList) => {
263
329
 
264
330
  /**
265
331
  * currentConsumption aktueller Verbrauch ermitteln
332
+ * - curFlow: aktuelle Restfördertleistung der Pumpe
333
+ * - parallel: aktuelle Anzahl der eingeschalteten Ventile
334
+ * - pumpRequired: Pumpe erforderlich (true/false)
266
335
  *
267
336
  * @param {boolean} write
268
337
  * @returns {Promise<{curFlow:number, parallel:number, pumpRequired:boolean}>}
@@ -274,13 +343,15 @@ const currentConsumption = async (write) => {
274
343
  parallel = 0,
275
344
  pumpRequired = false;
276
345
  adapter.log.debug(`currentConsumption curFlow: ${curFlow}, ${currentPumpUse.intBreak} => ${currentPumpUse.intBreak ? 0 : currentPumpUse.pumpPower}`);
277
- if (!currentPumpUse.intBreak) {
346
+ if (!currentPumpUse.intBreak
347
+ && !sensorPressure.inadequatePressure
348
+ ) {
278
349
  // ermitteln von curPipe und der Anzahl der parallelen Stränge
279
350
  for (const entry of threadList){
280
351
  if (entry.state === 'wait') pumpRequired = true; // state => wait
281
- if (entry.enable === true
282
- && entry.extBreak === false
283
- && timeBasedRestrictionEn === false
352
+ if (entry.enable === true // Ventil eingeschaltet
353
+ && entry.extBreak === false // && nicht in der externen Pause (extBreak)
354
+ && timeBasedRestrictionEn === false // && nicht in der zeitlichen Bewässerungspause
284
355
  ) {
285
356
  curFlow -= entry.pipeFlow; // // ermitteln der RestFörderkapazität
286
357
  parallel ++; // Anzahl der Bewässerungsstellen um 1 erhöhen
@@ -456,7 +527,7 @@ const countSprinkleTime = async (entry) => {
456
527
  /**
457
528
  * Timer zum ausschalten des Boost
458
529
  *
459
- * @param {*} entry
530
+ * @param {object} entry
460
531
  */
461
532
  const boostOnTimer = async (entry) => {
462
533
  entry.ac.acBoostOnTimer = new AbortController;
@@ -538,7 +609,7 @@ const updateList = async () => {
538
609
  : false;
539
610
 
540
611
  /**
541
- * Druckentlastungsventil Steuerung
612
+ * Find das Ventil mit dem größten Durchfluss (pipeFlow) für die Steuerung des Druckentlastungsventils
542
613
  * - Wenn die Bewässerung beendet wird, soll der Druck in den Leitungen durch kurzes Öffnen eines Druckentlastungsventils abgebaut werden,
543
614
  * um die Lebensdauer des Systems zu erhöhen. Hierzu wird das Ventil mit dem Größten Durchfluss (pipeFlow) für 10 Sekunden angesteuert.
544
615
  */
@@ -574,7 +645,7 @@ const updateList = async () => {
574
645
  try {
575
646
  if (adapter.config.triggerControlVoltage
576
647
  && controlVoltage.enable === false
577
- || adjustment === true
648
+ || adjustment === true // Anpassung ON_Time wenn Laufzeit zu kurz, damit die 24V Versorgung während der Laufzeit nicht ausgeschaltet wird
578
649
  ) {
579
650
  controlVoltage.wateringTime = sumOfWateringTime > controlVoltage.wateringTime ? sumOfWateringTime + 5 : controlVoltage.wateringTime; // Schaltzeit der 24V Versorgung entsprechend der maximalen Laufzeit aller Ventile in der threadList anpassen
580
651
  const _controlVoltage = await setValve(controlVoltage, true);
@@ -594,7 +665,7 @@ const updateList = async () => {
594
665
  try {
595
666
  if (adapter.config.pumpSelection !== 'noPump'
596
667
  && currentPumpUse.enable === false
597
- || adjustment === true
668
+ || adjustment === true // Anpassung ON_Time wenn Laufzeit zu kurz, damit die Pumpe während der Laufzeit nicht ausgeschaltet wird
598
669
  ) {
599
670
  currentPumpUse.wateringTime = sumOfWateringTime > currentPumpUse.wateringTime ? sumOfWateringTime : currentPumpUse.wateringTime; // Schaltzeit der Pumpe entsprechend der maximalen Laufzeit aller Ventile in der threadList anpassen
600
671
  const _currentPumpUse = await setValve(currentPumpUse, true);
@@ -744,7 +815,6 @@ const updateList = async () => {
744
815
  try {
745
816
  const empty = await findPressureReliefValve();
746
817
  const _pressureReliefIO = await pressureReliefIO();
747
- adapter.log.info(`pressureReliefIO: ${ _pressureReliefIO }, Data: ${ JSON.stringify(_pressureReliefIO) }`);
748
818
  if (empty && _pressureReliefIO === 0) { // Ventil gefunden und alle Ventile haben ihre Laufzeit beendet
749
819
  pressureReliefValve.name = empty.objectName;
750
820
  pressureReliefValve.wateringTime = 10;
@@ -817,7 +887,7 @@ const setActualPump = async () => {
817
887
  /* Pumpe AUS => Zisternen-Bewässerung nicht aktiviert */
818
888
  if (adapter.config.triggerCisternPump) {
819
889
  await adapter.setStateAsync('info.cisternState', {
820
- val: `Cistern settings are not active! ${(fillLevelCistern > 0) ? (`level sensor: ${fillLevelCistern}% ${(adapter.config.triggerMinCisternLevel !== '') ? (` ${adapter.config.triggerMinCisternLevel}%`) : ('')}`):('')}`,
890
+ val: `Cistern settings are not active! ${(fillLevelCistern > 0) ? (` ${fillLevelCistern}% ${(adapter.config.triggerMinCisternLevel !== '') ? (` ${adapter.config.triggerMinCisternLevel}%`) : ('')}`):('')}`,
821
891
  ack: true
822
892
  });
823
893
  }
@@ -853,7 +923,7 @@ const setActualPump = async () => {
853
923
  }
854
924
  /* Info aktualisieren */
855
925
  await adapter.setStateAsync('info.cisternState', {
856
- val: `${ (currentPumpUse.intBreak === true) ? 'Cistern empty: ' : 'Cistern filled: ' } Cistern level: ${ fillLevelCistern } % (${ adapter.config.triggerMinCisternLevel } %)`,
926
+ val: `${ (currentPumpUse.intBreak === true) ? 'Cistern empty: ' : 'Cistern filled: ' } ${ fillLevelCistern } % (${ adapter.config.triggerMinCisternLevel } %)`,
857
927
  ack: true
858
928
  });
859
929
  break;
@@ -926,7 +996,7 @@ const setActualPump = async () => {
926
996
  }
927
997
  /* Info aktualisieren */
928
998
  await adapter.setStateAsync('info.cisternState', {
929
- val: `${ (currentPumpUse.pumpCistern === false) ? 'Cistern empty: ' : 'Cistern filled: ' } Cistern level: ${ fillLevelCistern } % (${ adapter.config.triggerMinCisternLevel } %)`,
999
+ val: `${ (currentPumpUse.pumpCistern === false) ? 'Cistern empty: ' : 'Cistern filled: ' } ${ fillLevelCistern } % (${ adapter.config.triggerMinCisternLevel } %)`,
930
1000
  ack: true
931
1001
  });
932
1002
  break;
@@ -1325,6 +1395,63 @@ const valveControl = {
1325
1395
  }
1326
1396
  }
1327
1397
  }
1398
+
1399
+ /**
1400
+ * Objekt sensorPressure anlegen und abonnieren, wenn benötigt
1401
+ */
1402
+
1403
+ if (typeof adapter.config.sensorPressure === 'string'
1404
+ && adapter.config.sensorPressure.length > 5
1405
+ && adapter.config.pumpSelection !== 'noPump'
1406
+ ) {
1407
+ const _sensorPressure = await adapter.getForeignStateAsync(adapter.config.sensorPressure);
1408
+ if (_sensorPressure) {
1409
+ adapter.subscribeForeignStates(adapter.config.sensorPressure);
1410
+ const _waterPressure = await adapter.getObjectAsync(`info.waterPressure`);
1411
+ if (_waterPressure) {
1412
+ await adapter.setStateAsync(`info.waterPressure`, {
1413
+ val: `${ _sensorPressure.val }`,
1414
+ ack: true
1415
+ });
1416
+ } else {
1417
+ await adapter.setObjectNotExistsAsync(`info.waterPressure`, {
1418
+ type: 'state',
1419
+ common: {
1420
+ role: 'state',
1421
+ name: 'Water pressure',
1422
+ desc: {
1423
+ en: 'Water pressure',
1424
+ de: 'Wasserdruck',
1425
+ ru: 'Давление воды',
1426
+ pt: 'Pressão da água',
1427
+ nl: 'Waterdruk',
1428
+ fr: "Pression de l'eau",
1429
+ it: "Pressione dell'acqua",
1430
+ es: 'Presión del agua',
1431
+ pl: 'Ciśnienie wody',
1432
+ uk: 'Тиск води',
1433
+ 'zh-cn': '水压'
1434
+ },
1435
+ type: 'string',
1436
+ read: true,
1437
+ write: false,
1438
+ def: ' --- ',
1439
+ unit: 'bar'
1440
+ },
1441
+ native: {},
1442
+ });
1443
+ await adapter.setStateAsync(`info.waterPressure`, {
1444
+ val: `${ _sensorPressure.val }`,
1445
+ ack: true
1446
+ });
1447
+ }
1448
+ } else {
1449
+ adapter.log.warn(`The configured pressure sensor "${ adapter.config.sensorPressure }" could not be found. Please check the configuration of the pressure sensor!`);
1450
+ }
1451
+ } else {
1452
+ const _waterPressure = await adapter.getObjectAsync(`info.waterPressure`);
1453
+ if (_waterPressure) await adapter.delObjectAsync(`info.waterPressure`);
1454
+ }
1328
1455
  } catch (error) {
1329
1456
  adapter.log.error(`initValveControl ERROR: ${error}`);
1330
1457
  }
@@ -1342,6 +1469,7 @@ const valveControl = {
1342
1469
  */
1343
1470
  addList: async function (sprinkleList) {
1344
1471
  try {
1472
+ sensorPressure.inadequatePressure = false; // Kontrolle Drucksensorwert zurücksetzen, damit die Bewässerungsbeschränkung korrekt funktioniert, wenn der Drucksensorwert während der Bewässerungsbeschränkung unter dem Minimum lag
1345
1473
  // kontrolle bei ausgeschalteter Pumpe, ob die Zisterne zur Bewässerung genutzt werden kann
1346
1474
  if (adapter.config.pumpSelection === 'pumpAndCistern'
1347
1475
  && currentPumpUse.enable === false
@@ -1444,7 +1572,8 @@ const valveControl = {
1444
1572
  }, // End addList
1445
1573
 
1446
1574
  timeBasedRestriction: async function (enable) { //Irrigation ban => zeitliche Bewässerungsbeschränkung noch zu bearbeiten ! ! !
1447
- try {
1575
+ try {
1576
+ sensorPressure.inadequatePressure = false; // Kontrolle Drucksensorwert zurücksetzen, damit die Bewässerungsbeschränkung korrekt funktioniert, wenn der Drucksensorwert während der Bewässerungsbeschränkung unter dem Minimum lag
1448
1577
  timeBasedRestrictionEn = enable;
1449
1578
  if (threadList) {
1450
1579
  if (timeBasedRestrictionEn === true) { // zeitliche Bewässerungsbeschränkung aktiv
@@ -1654,8 +1783,72 @@ const valveControl = {
1654
1783
  */
1655
1784
  getIntBreakCisternPump: function () {
1656
1785
  return (adapter.config.pumpSelection === 'cistern') ? currentPumpUse.intBreak : false;
1657
- }
1786
+ },
1658
1787
 
1788
+ /**
1789
+ * Setzt den Drucksensorwert
1790
+ * https://blog.logrocket.com/complete-guide-abortcontroller/
1791
+ *
1792
+ * @param {number} pressure
1793
+ */
1794
+ setSensorPressure: async function (pressure) {
1795
+ let alteredPressure = false; // Veränderter Druck => updateList starten um Verbrauch anzupassen / Ventile ausschalten
1796
+ let reviews = '';
1797
+ try {
1798
+ sensorPressure.value = parseFloat(pressure).toFixed(1);
1799
+ if (currentPumpUse.enable === true && adapter.config.minimumPressure > pressure) {
1800
+ if (sensorPressure.ac === null) {
1801
+ sensorPressure.ac = new AbortController();
1802
+ await asyncTime.setTimeout(60000, undefined, { signal: sensorPressure.ac.signal }); // max. 60s warten und Drucksensorwert erneut prüfen, bevor die Pumpe ausgeschaltet wird
1803
+ const _currentPressure = await adapter.getForeignStateAsync(adapter.config.sensorPressure);
1804
+ if (_currentPressure?.val
1805
+ && currentPumpUse.enable === true
1806
+ && adapter.config.minimumPressure > parseFloat(_currentPressure.val)
1807
+ ) {
1808
+ reviews = 'Not Okay'
1809
+ if (sensorPressure.inadequatePressure === false) {
1810
+ alteredPressure = true;
1811
+ sensorPressure.inadequatePressure = true;
1812
+ }
1813
+ sensorPressure.value = parseFloat(_currentPressure.val).toFixed(1);
1814
+ adapter.log.warn(`Pressure sensor value ${ pressure } bar is below the minimum pressure ${ adapter.config.minimumPressure } bar. The pump will be turned off to prevent damage. Please check the pressure sensor and the configuration of the minimum pressure!`);
1815
+ if (adapter.config.notificationEnabled) {
1816
+ sendMessageText.sendMessage(`Pressure sensor value ${ pressure } bar is below the minimum pressure ${ adapter.config.minimumPressure } bar. The pump will be turned off to prevent damage. Please check the pressure sensor and the configuration of the minimum pressure!`);
1817
+ }
1818
+ sensorPressure.ac.abort(); // setTimeout abbrechen, da die Pumpe bereits ausgeschaltet wird
1819
+ sensorPressure.ac = null; // AbortController zurücksetzen
1820
+ } else if (_currentPressure?.val) {
1821
+ reviews = 'Okay';
1822
+ }
1823
+ sensorPressure.ac = null; // AbortController zurücksetzen
1824
+ } else {
1825
+ reviews = 'I don\'t know';
1826
+ }
1827
+ } else if (currentPumpUse.enable === false || adapter.config.minimumPressure <= pressure) {
1828
+ reviews = 'Okay'
1829
+ if (sensorPressure?.ac !== null) {
1830
+ await sensorPressure.ac.abort(); // AbortController zurücksetzen
1831
+ sensorPressure.ac = null;
1832
+ }
1833
+ } else {
1834
+ reviews = 'Okay'
1835
+ }
1836
+ } catch (error) {
1837
+ if (error.name === 'AbortError') {
1838
+ adapter.log.debug(`setSensorPressure(${pressure}): The shutdown process was aborted because the operating pressure was restored.`);
1839
+ if (sensorPressure?.ac !== null) {
1840
+ sensorPressure.ac.abort(); // AbortController zurücksetzen
1841
+ sensorPressure.ac = null;
1842
+ }
1843
+ }
1844
+ } finally {
1845
+ await adapter.setStateAsync(`info.waterPressure`, {
1846
+ val: `${ reviews } ( ${ sensorPressure.value } bar )`,
1847
+ ack: true
1848
+ });
1849
+ if (alteredPressure) updateList();
1850
+ }
1851
+ }
1659
1852
  }; // End valveControl
1660
1853
 
1661
1854
  /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/