Button um eine Perl Funktion aufzurufen funktioniert nicht

Begonnen von toupman, 10 Juli 2014, 21:38:42

Vorheriges Thema - Nächstes Thema

toupman

Hallo,

nachdem meine drei Thermostate jetzt einwandfrei funktionieren, wollte ich mir einen Button machen um alle auf Sommer/Urlaub umzustellen und einen um wieder auf Winter zustellen.

Dazu habe ich zwei Perl Funktionen geschrieben, die die Umstellung machen

sub
SetTempList_Sommer_Urlaub()
{

{ fhem ("set Bad.Thermostat_Clima tempListMon prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListTue prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListWed prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListThu prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListFri prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListSat prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListSun exec 00:05 11.5 23:55 12.0 24:00 11.5")};

{ fhem ("set Wohnzimmer.Thermostat_Clima tempListMon prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListTue prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListWed prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListThu prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListFri prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListSat prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListSun exec 00:05 11.5 23:55 12.0 24:00 11.5")};

{ fhem ("set Kueche.Thermostat_Clima tempListMon prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListTue prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListWed prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListThu prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListFri prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListSat prep 00:05 11.5 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListSun exec 00:05 11.5 23:55 12.0 24:00 11.5")};

}

sub
SetTempList_Winter()
{

{ fhem ("set Bad.Thermostat_Clima tempListMon prep 00:05 11.5 05:30 12.0 08:30 22.0 17:30 12.0 22:30 22.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListTue prep 00:05 11.5 05:30 12.0 08:30 22.0 17:30 12.0 22:30 22.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListWed prep 00:05 11.5 05:30 12.0 08:30 22.0 17:30 12.0 22:30 22.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListThu prep 00:05 11.5 05:30 12.0 08:30 22.0 17:30 12.0 22:30 22.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListFri prep 00:05 11.5 05:30 12.0 08:30 22.0 17:30 12.0 22:30 22.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListSat prep 00:05 11.5 07:00 12.0 10:00 22.0 17:30 18.5 23:00 22.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Bad.Thermostat_Clima tempListSun exec 00:05 11.5 07:00 12.0 10:00 22.0 17:30 18.5 23:00 22.0 23:55 12.0 24:00 11.5")};

{ fhem ("set Wohnzimmer.Thermostat_Clima tempListMon prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListTue prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListWed prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListThu prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListFri prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListSat prep 00:05 11.5 07:00 12.0 10:00 20.0 17:00 18.5 23:55 20.0 24:00 11.5")};
{ fhem ("set Wohnzimmer.Thermostat_Clima tempListSun exec 00:05 11.5 07:00 12.0 10:00 20.0 17:00 18.5 23:55 20.0 24:00 11.5")};

{ fhem ("set Kueche.Thermostat_Clima tempListMon prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListTue prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListWed prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListThu prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListFri prep 00:05 11.5 05:30 12.0 08:30 16.0 17:30 12.0 22:30 20.0 23:55 12.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListSat prep 00:05 11.5 07:00 12.0 10:00 20.0 17:00 18.5 23:55 20.0 24:00 11.5")};
{ fhem ("set Kueche.Thermostat_Clima tempListSun exec 00:05 11.5 07:00 12.0 10:00 20.0 17:00 18.5 23:55 20.0 24:00 11.5")};

}


Diese Funktionen werden auch ausgeführt wenn ich sie mit den geschweiften Klammern in die Kommandozeile so z.B. {SetTempList_Sommer_Urlaub()}

Danach habe ich mir je einen Button mit Dummy definiert und diese sollten dann je eine Funktion aufrufen, das sieht dann so aus

#Button Dummy
define urlaubsButton dummy
attr urlaubsButton room 99_System
attr urlaubsButton webCmd setUrlaub
define myNotifyUrlaub notify urlaubsButton:setUrlaub {SetTempList_Sommer_Urlaub()}

#Button Dummy
define winterButton dummy
attr winterButton room 99_System
attr winterButton webCmd setWinter
define myNotifyWinter notify winterButton:setWinter {SetTempList_Winter()}


Allerdings werden die Funktionen nicht ausgeführt.

Habe ich irgendwo einen Denkfehler, oder ist sonst irgendwas falsch?

Vielen Dank

Tobias

P.A.Trick

Versuche das mal mit einem Semikolon!

{SetTempList_Winter();}
FHEM + Homeassistant - meine HW -> https://www.trinityonline.de/hardware/

toupman

Das funktioniert leider nicht.

Beim speichern der cfg erhalte ich:

ERROR:

Unknown command }, try help. Unknown command }, try help.

P.A.Trick

Nimm die GUI nicht in der fhem.cfg arbeiten! Wenn doch, dann musst du zwei Semikolons nehmen!
FHEM + Homeassistant - meine HW -> https://www.trinityonline.de/hardware/

toupman


P.A.Trick

Einfach im Notify auf DEF klicken, also die FHEM Gui!
FHEM + Homeassistant - meine HW -> https://www.trinityonline.de/hardware/

toupman

Das sowas geht habe ich noch gar nicht gewußt  ;D

Vielleicht ist man da als Informatiker eher etwas Betriebsblind  ;D

Man pfuscht halt von Haus aus gerne in Config Files rum  ;)

Das doppelte Semikolon funktioniert übrigens 1A,

Vielen Dank

P.A.Trick

Tröste dich ging mir genauso..habe auch zwei Monate gebraucht um das zu kapieren :D
FHEM + Homeassistant - meine HW -> https://www.trinityonline.de/hardware/