FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Moalti am 20 Mai 2018, 19:04:19

Titel: myutils Anweisung mit ne Ungleich
Beitrag von: Moalti am 20 Mai 2018, 19:04:19
Hallo Fhemler,

Ich schicke den Batteriestatus meiner HM-Rauchmelder über UDP zu meinen Loxone über folgenden Code in myutils:

sub LoxGateway_Rauchmelder($)
{
my ($device) = @_;
my $battery = ReadingsVal("$device","battery","1");
     if ($battery eq "ok") {$battery = "1";}
     if ($battery eq "low") {$battery = "0";}
UDP_Msg("10.0.1.2" , "7000" , "$device: $battery");
}

Nun würde ich gerne die IF Anweisung mit eq ,,low" etwas  allgemeiner halten und im Grunde alles mit 0 senden was ungleich ,,ok" ist.

Hatte es mit ne ,,ok" versucht. Brachte aber leider keinen Erfolg. Egal welches event kommt wird dann eine 0 verschickt. 

Vielleicht hat jemand von euch eine Idee.
Bedank.
Gruß Moalti
Titel: Antw:myutils Anweisung mit ne Ungleich
Beitrag von: CoolTux am 20 Mai 2018, 19:08:02

if ($battery eq "ok") {$battery = "1";}
     else { $battery = "0";}
Titel: Antw:myutils Anweisung mit ne Ungleich
Beitrag von: JoWiemann am 20 Mai 2018, 19:37:25
Zitat von: CoolTux am 20 Mai 2018, 19:08:02

if ($battery eq "ok") {$battery = "1";}
     else { $battery = "0";}


oder


$battery eq "ok"?$battery = "1":$battery = "0";


Grüße Jörg
Titel: Antw:myutils Anweisung mit ne Ungleich
Beitrag von: amenomade am 20 Mai 2018, 21:00:02
Zitat von: JoWiemann am 20 Mai 2018, 19:37:25
oder


$battery eq "ok"?$battery = "1":$battery = "0";


Grüße Jörg
Lieber
$battery = ($battery eq "ok")?1:0;

Dein Code funktioniert nicht, Jörg (precedence Problem; da fehlen mind. ein paar Klammern)
$battery eq "ok"?$battery = "1":($battery = "0");;)

So... jetzt... lass uns spielen:

my $var1 = "";
my $var0 = "";

1 ? $var1 : $var0 = "Hello ";
0 ? $var1 : $var0 = "World\n";

print $var1.$var0;
ergibt
ZitatHello World
:)
Titel: Antw:myutils Anweisung mit ne Ungleich
Beitrag von: JoWiemann am 20 Mai 2018, 21:16:08
Stimmt. War ein Schnellschuss ohne genauer nachzudenken  ;)
Titel: Antw:myutils Anweisung mit ne Ungleich
Beitrag von: Moalti am 21 Mai 2018, 16:55:50
Zitat von: CoolTux am 20 Mai 2018, 19:08:02

if ($battery eq "ok") {$battery = "1";}
     else { $battery = "0";}


Vielen Dank!
Ist ja der Knüller. Auf die Lösung mit dem If Else bin ich einfach nicht gekommen!

Funktionierte auf Anhieb.

@Alle Anderen: schön das ihr Spaß habt [emoji6]

Vielen Dank nochmal!
Da fragt man gerne anstatt Stunden vor Google zu hängen!

Grüße