ukulele
[xhome.git] / Griesstatt / 99_myUtils.pm
diff --git a/Griesstatt/99_myUtils.pm b/Griesstatt/99_myUtils.pm
new file mode 100644 (file)
index 0000000..eb76ed9
--- /dev/null
@@ -0,0 +1,48 @@
+##############################################
+# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
+#
+# Save this file as 99_myUtils.pm, and create your own functions in the new
+# file. They are then available in every Perl expression.
+
+package main;
+
+use strict;
+use warnings;
+use POSIX;
+
+sub
+myUtils_Initialize($$)
+{
+  my ($hash) = @_;
+}
+
+# Enter you functions below _this_ line.
+
+sub setHeizstatus {
+   my $heizstatus = shift;
+   my $force = shift;
+
+   # parameter check
+   die ("Ungültiger Heizstatus (1 .. 4)") if ($heizstatus < 1 or $heizstatus > 4);
+
+   # status check
+   my $hstat = Value("KNX_0000001");
+   if ($hstat == 4 or $hstat == 1) {
+      # Frostschutz/Aufheizen
+      if (!defined($force)) {
+         die "setHeizstatus nicht ausgeführt, da Frostschutz/Aufheizbetrieb. Setze mit '(F)orce'.";
+      }
+   }
+   fhem("set KNX_0000001 g1 $heizstatus");
+   Log(1, "Set Heizstatus to $heizstatus");
+   fhem("set KNX_LED1 g1 off");
+   fhem("set KNX_LED2 g1 off");
+   fhem("set KNX_LED3 g1 off");
+   fhem("set KNX_LED4 g1 off");
+
+   fhem("set KNX_LED1 g1 on") if ($heizstatus == 1);
+   fhem("set KNX_LED2 g1 on") if ($heizstatus == 2);
+   fhem("set KNX_LED3 g1 on") if ($heizstatus == 3);
+   fhem("set KNX_LED4 g1 on") if ($heizstatus == 4);
+}
+1;