myutils Anweisung mit ne Ungleich

Begonnen von Moalti, 20 Mai 2018, 19:04:19

Vorheriges Thema - Nächstes Thema

Moalti

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

CoolTux


if ($battery eq "ok") {$battery = "1";}
     else { $battery = "0";}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

JoWiemann

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
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

amenomade

#3
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
:)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

JoWiemann

Stimmt. War ein Schnellschuss ohne genauer nachzudenken  ;)
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Moalti

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