Hallo zusammen,
habe folgende notifys in der fhem.cfg definiert:
define FritzDectToLoxone notify .*:(on|off|power.*|temperature.*|energy.*) {FritzDectToLoxone("$NAME")}
define TempHumidityToLoxone notify .*:temperature.* {TempHumidityToLoxone("$NAME")}
define OnOffToLoxone notify .*:(on|off) {OnOffToLoxone("$NAME")}
und folgende Scripte in der 99_myUtils.pm definiert:
#OnOffToLoxone
#device:
#1 state(0,1)
#2 pct(0-100)
sub OnOffToLoxone($)
{
my ($device) = @_;
my $state = ReadingsVal("$device","state","-1");
if ($state eq "on") {
$state = "1";
}
if ($state eq "off") {
$state = "0";
}
my $pct = ReadingsVal("$device","pct","-1");
#fhem("set $device: $state $pct");
UDP_Msg("192.168.178.245" , "7200" , "$device: $state $pct");
}
#TempHumidityToLoxone
sub TempHumidityToLoxone($)
{
my ($device) = @_;
my $temperature=ReadingsVal("$device","temperature","-1");
my $humidity=ReadingsVal("$device","humidity","-1");
UDP_Msg("192.168.178.245" , "7200" , "$device: $temperature $humidity");
}
#FritzDectToLoxone
#device
#1 state(0,1)
#2 power
#3 energy
#4 temperature
sub FritzDectToLoxone($)
{
my ($device) = @_;
my $state = ReadingsVal("$device","state","-1");
if ($state eq "off") {
$state = "0";
}
if ($state eq "on") {
$state = "1";
}
my $power = ReadingsVal("$device","power","-1");
my $energy = ReadingsVal("$device","energy","-1");
my $temperature=ReadingsVal("$device","temperature","-1");
UDP_Msg("192.168.178.245" , "7200" , "$device: $state $temperature $power $energy");
}
Wie mache ich das, dass alle Fritz Dect (z.B. Fritz!Dect200) über den "FritzDectToLoxone" im Format "$state $temperature $power $energy" per UDP zu meiner Loxone funken und die restlichen Geräte über das andere Skript rüber beame....
Bedeutet ich muss aus dem Standard "on/off", "Temperatur" notify die Fritz*... Geräte ausschließen und bei der "FritzDectToLoxone" die anderen Geräte in der Signalisierung ausschließen.....
Da bin ich jetzt überfragt.....
Wäre toll wenn mir jemand helfen könnte.
DANKE im Voraus.
LG
Logol01
ZitatWie mache ich das, dass alle Fritz Dect (z.B. Fritz!Dect200) über den "FritzDectToLoxone" im Format "$state $temperature $power $energy" per UDP zu meiner Loxone funken und die restlichen Geräte über das andere Skript rüber beame....
Hallo logol01,
zB. indem du anstatt auf alle Geräte (.*) nur auf bestimmte triggerst:
Fritz2Loxone.*:(on|off|power.*|temperature.*|energy.*) {FritzDectToLoxone("$NAME")}
Bedeutet natürlich dass du die devices entsprechend benamst ;)
Man sollte generell notifys à la .*:... vermeiden. Hier wird auf
JEDES Event getriggert :o
VG Sebastian
Hallo Sebastian,
Danke!
geht das auch, dass man mehrere Geräte Triggern kann z.B. alle die mit "Fritz" beginnen?
z.B.
define FritzDectToLoxone notify Fritz*.*:(on|off|power.*|temperature.*|energy.*) {FritzDectToLoxone("$NAME")}
oder was soll ich dazu verwenden?
VG
Christoph
Ja genauso geht das. Lass aber den * vor .* weg. ;)
Fritz.*:(on|off|power.*|temperature.*|energy.*) {FritzDectToLoxone("$NAME")}
VG Sebastian
Gesendet von iPad mit Tapatalk
DANKE :)
Hallo Sebastian,
wie müsste das heißen, wenn man mehrere verschiedene Gerätenamen triggern möchte.
Sprich - wie muss ich den Code schreiben, wenn ich alle Geräte die mit Firtz, Max und Moritz beginnen triggern möchte, das der UDP Wert geschickt wird sobald sich ein Wert ändert?
Irgendwie so?
define FritzDectToLoxone notify (Fritz.*|Max.*|Moritz.*):(on|off|power.*|temperature.*|energy.*) {FritzDectToLoxone("$NAME")}
VG
Logol01
Noch einfacher so:
(Fritz|Max|Moritz).*:(on|off|power.*|temperature.*|energy.*) {FritzDectToLoxone("$NAME")}
VG Sebastian
DANKE!!!! :)