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();}
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

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!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

toupman


P.A.Trick

Einfach im Notify auf DEF klicken, also die FHEM Gui!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

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
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn