Conan79
14. April 2020 um 18:29
301
Ahh…hab ich eingetragen:
function get_WateringConfiguration() {
return array(
c_WateringCircle_1 => array(
c_Property_Name => '1 vorm Haus',
c_Property_Component => 'IPSComponentSwitch_EIB, 44999',
c_Property_Sensor => '',
),
bekomme aber trotzdem eine Fehlermeldung.
Funktion ist auch nicht da.
RSRS
14. April 2020 um 20:12
302
Hallo, ich habe unter KNX das selbe Problem :eek:. Bekomme auch diese Meldung, nachdem ich mein System auf einem QNAP habe bekomme ich es leider auch nicht mehr zum laufen.
bumaas
14. April 2020 um 22:42
303
Die ID 44999 ist nicht korrekt. Du musst die Id deines Aktors nehmen.
Conan79
14. April 2020 um 23:03
304
Vielen Dank… da hätte ich auch selber drauf kommen können… Jetzt gehts:)
Ich habe noch an anderer stelle in der Visu einen Schalter zum Starten der einzelnen Stränge. Wie schaff ichs jetzt noch dass die sich aktualisieren?
Vielen Dank für die kompetente Unterstützung!
RSRS
16. April 2020 um 15:25
305
Bei mir kommt diese Meldung.
Bei dieser Konfig…
Luca
20. April 2020 um 18:31
306
Hallo Andreas,
ich nutze IPSWatering sehr erfolgreich und zufrieden seit mittlerweile über einem Jahr - vielen Dank für das tolle Modul. Bis jetzt nutze ich Homematic Aktoren, würde jetzt bei einem neuen Bewässerungskreis jedoch gerne auf Shelly setzen. Leider sehe ich hier noch nicht, wie ich vorgehen muss. In der Component Class ist Shelly ja aktuell nicht implementiert - kannst du das implementieren, oder gibt es einen Workaround, z.B. irgendwie über den Typ Dummy? Ich sehe da leider gerade den Wald vor lauter Bäumen nicht…
Gruß
Luca
Poste doch mal die Befehle wie Du einen Kreis schaltest, dann seh ich mir das an.
Prinzipiell könntest Du das auch über die Callback Funktionen machen:
IPSWatering_BeforeActivateWatering
RSRS
23. April 2020 um 09:45
308
Ich muss hier noch mal nachfragen, wegen der Fehlermeldung, die bei mir Angezeigt wird. Ich habe vorher alles auf einem Windows Server am laufen gehabt ohne Probleme. Nach der Umstellung auf QNAP und der damit verbundenen Neuinstallation, kommt jetzt immer diese Fehlermeldung wie in # 305. Was anders als beim Windows ist, ist das ich die KNX-Daten jetzt mit den neuen Adressen angelegt habe. Kann es daran liegen das der Befehl jetzt anders lauten muss? Ich habe in meiner Konfig ja dies drin IPSComponentSwitch_EIB.
Luca
23. April 2020 um 18:35
309
Brownson:
Poste doch mal die Befehle wie Du einen Kreis schaltest, dann seh ich mir das an.
Prinzipiell könntest Du das auch über die Callback Funktionen machen:
IPSWatering_BeforeActivateWatering
Hi Andreas,
auf die Idee mit der Callback Funktion bin ich garnicht bekommen - klingt logisch. Würde ich vermutlich irgendwie zusammenbekommen, ich poste trotzdem mal die Befehle - das kannst du sicherlich eleganter als ich.
Die Shellys werden einfach über RequestAction gesteuert:
RequestAction(52887, false) --> Ausschalten
RequestAction(52887, true); --> Einschalten
Dabei ist die 52887 der Platzhalter für die entsprechende Variablen ID der Status Variabel des entsprechenden Shellys.
Gruß
@RSRS sicher dass Du da die Instanz IDs angegeben hast und nicht direkt die Variablen. Das Symcon OS kann da nicht der Auslöser für das Problem sein
RSRS
23. April 2020 um 21:52
312
Hallo Andreas,
ich habe die Instanz ID genommen.
Hier mal die Bilder dazu:
@Luca
ich hab mal eine Anbindung gebastelt, Einbindung über
IPSComponentSwitch_RequestAction,12345
wobei 12345 die jeweilige VariableId ist.
@RSRS
sieht alles korrekt aus, hast Du schon mal den manuellen Aufruf versucht:
EIB_Switch($instanceId, $value)
Ansonsten könntest Du auch die neue Anbindung aus dem Beitrag oben versuchen.
Luca
24. April 2020 um 22:45
315
Hi Andreas,
super cool, vielen Dank für die schnelle Umsetzung! Ich warte gerade noch auf einen Hutschienenhalter - dann kann ich den Shelly für den neuen Bewässerungskreis hoffentlich Anfang nächster Woche einbauen und dann berichten, wie die Einbindung des Shelly sowie der Mischbetrieb mit Homematic läuft. Vielen Dank für deine Unterstützung!
Gruß
RSRS
27. April 2020 um 07:59
316
Hallo Andreas,
das mit IPSComponentSwitch_RequestAction,hat funktioniert…
Vielen Dank.
Luca
27. April 2020 um 12:20
317
Hallo Andreas,
auch ich wollte gerade testen. Blöderweise habe ich zuerst versucht IPSWatering nach Anpassung der Config neu zu installieren, bevor ich IPSComponent gepudated habe. Jetzt (auch nach Update von IPSComponent und Neustart des Symcon Dienstes) hängt IPSWatering endlos auf „Installing“ fest. Hast du eine Idee, wie ich da raus komme? Möglichst ohne das Modul zu löschen und neu zu installieren - dann ändern sich ja vermutlich alle IDs und ich muss alle Steuerelemente in IPSView für IPSWatering neu „verlinken“, richtig?
Gruß
PS: So sieht die Log Datei aus:
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:39.14 Create Directory C:\IP-Symcon\backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/install/DownloadListFiles
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:39.14 Copy C:\IP-Symcon\scripts/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:39.14 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini —> C:/IP-Symcon/scripts/IPSLibrary/install/DownloadListFiles/IPSWatering_FileList.ini
IPSModuleManager-Log-IPSFileVersionHandler 2020-04-27 12:46:40.36 Set Version IPSWatering=2.50.10 (Loading)
IPSModuleManager-Log-IPSFileVersionHandler 2020-04-27 12:46:40.36 Set Repository IPSWatering=https://raw.githubusercontent.com/brownson/IPSLibrary/Development/
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:40.37 Create Directory C:\IP-Symcon\backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/install/InstallationScripts
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:40.37 Copy C:\IP-Symcon\scripts/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:40.38 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php —> C:/IP-Symcon/scripts/IPSLibrary/install/InstallationScripts/IPSWatering_Installation.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:40.75 Create Directory C:\IP-Symcon\backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/install/InitializationFiles/Default
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:40.75 Copy C:\IP-Symcon\scripts/IPSLibrary/install/InitializationFiles/Default/IPSWatering.ini --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/install/InitializationFiles/Default/IPSWatering.ini
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:40.75 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/install/InitializationFiles/Default/IPSWatering.ini —> C:/IP-Symcon/scripts/IPSLibrary/install/InitializationFiles/Default/IPSWatering.ini
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:41.04 Register Script IPSWatering.ini in Program.IPSLibrary.install.InitializationFiles (File=C:\IP-Symcon\scripts/IPSLibrary/install/InitializationFiles/IPSWatering.ini)
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.04 Create Directory C:\IP-Symcon\backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.04 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.05 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering.inc.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.07 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_Logging.inc.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering_Logging.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.08 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.09 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOn.ips.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOn.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.10 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOff.ips.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOff.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.11 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_ChangeSettings.ips.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering_ChangeSettings.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.12 Copy C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_RefreshTimer.ips.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/app/modules/IPSWatering/IPSWatering_RefreshTimer.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.14 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.44 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering.inc.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:41.81 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering_Logging.inc.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_Logging.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:42.10 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:42.40 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOn.ips.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOn.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:42.70 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOff.ips.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOff.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:42.99 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering_ChangeSettings.ips.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_ChangeSettings.ips.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:43.27 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/app/modules/IPSWatering/IPSWatering_RefreshTimer.ips.php —> C:/IP-Symcon/scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_RefreshTimer.ips.php
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.57 Register Script IPSWatering_Constants in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_Constants.inc.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.57 Register Script IPSWatering in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering.inc.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.57 Register Script IPSWatering_Logging in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_Logging.inc.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.57 Register Script IPSWatering_ActivationTimer in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_ActivationTimer.ips.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.57 Register Script IPSWatering_AutomaticOn in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOn.ips.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.58 Register Script IPSWatering_AutomaticOff in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_AutomaticOff.ips.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.58 Register Script IPSWatering_ChangeSettings in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_ChangeSettings.ips.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:43.58 Register Script IPSWatering_RefreshTimer in Program.IPSLibrary.app.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/app/modules/IPSWatering/IPSWatering_RefreshTimer.ips.php)
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:43.58 Create Directory C:\IP-Symcon\backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/config/modules/IPSWatering/Default
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:43.58 Copy C:\IP-Symcon\scripts/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Configuration.inc.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Configuration.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:43.59 Copy C:\IP-Symcon\scripts/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Custom.inc.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Custom.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:43.60 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Configuration.inc.php —> C:/IP-Symcon/scripts/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Configuration.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:43.91 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Custom.inc.php —> C:/IP-Symcon/scripts/IPSLibrary/config/modules/IPSWatering/Default/IPSWatering_Custom.inc.php
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:44.23 Register Script IPSWatering_Configuration in Program.IPSLibrary.config.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/config/modules/IPSWatering/IPSWatering_Configuration.inc.php)
IPSModuleManager-Log-IPSScriptHandler 2020-04-27 12:46:44.24 Register Script IPSWatering_Custom in Program.IPSLibrary.config.modules.IPSWatering (File=C:\IP-Symcon\scripts/IPSLibrary/config/modules/IPSWatering/IPSWatering_Custom.inc.php)
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:44.24 Create Directory C:\IP-Symcon\backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/config/modules/IPSWatering/Examples
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:44.24 Copy C:\IP-Symcon\scripts/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoConfiguration.inc.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoConfiguration.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:44.26 Copy C:\IP-Symcon\scripts/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoCustom.inc.php --> C:/IP-Symcon/backup/IPSLibrary_Load/IPSLibrary_2020-04-27_1246/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoCustom.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:44.27 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoConfiguration.inc.php —> C:/IP-Symcon/scripts/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoConfiguration.inc.php
IPSModuleManager-Log-IPSFileHandler 2020-04-27 12:46:44.59 Copy https://raw.githubusercontent.com/brownson/IPSLibrary/Development/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoCustom.inc.php —> C:/IP-Symcon/scripts/IPSLibrary/config/modules/IPSWatering/Examples/IPSWatering_DemoCustom.inc.php
IPSModuleManager-Log-IPSFileVersionHandler 2020-04-27 12:46:44.89 Set Version IPSWatering=2.50.10 (Loaded)
IPSModuleManager-Log-IPSModuleManager 2020-04-27 12:46:44.90 Module IPSWatering is already at installed Version 2.50.3
IPSModuleManager-Log-IPSFileVersionHandler 2020-04-27 12:46:44.90 Set Version IPSWatering=2.50.3 (Installed)
Luca
27. April 2020 um 14:30
318
Habe es gelöst bekommen - Löschen mit anschließender Neuinstallation - Die RequestAction Sache läuft problemlos, vielen Dank dafür!
EDIT: Leider doch nicht… Es läuft zwar nun und die Installation lief durch - der Status steht aber nun immernoch auf „Installing“… Wie kann ich das wieder weg bekommen?
Hallo zusammen,
ich wollte mich mal erkundigen, ob schon jemand einen Bodenfeuchtesensor eingebunden hat.
Plane einen Analogen kapazitiven Bodenfeuchtesensor V1.2 einzubinden.
Viele Grüße
Oli
Hallo @Brownson , kannst du mir verraten wie ich mit IPSWatering meine Tasmota Geräte benutzen kann?
Der Befehl lautet
Tasmota_setPower(40597, 1, false); //Power Variable 1 Graben rechts
Tasmota_setPower(40597, 2, false); //Power Variable 2 Rasen rechts
Tasmota_setPower(40597, 3, false); //Power Variable 3 Links
Tasmota_setPower(40597, 4, false); //Power Variable 4 Links Hecke
Tasmota_setPower(36580, 1, false); //Pumpe
Ich bekomme meine Geräte leider über dein Modul nicht angesprochen.