Prüfen ob dummy existiert

Begonnen von ChristianKnorr, 20 Oktober 2015, 17:24:11

Vorheriges Thema - Nächstes Thema

ChristianKnorr

Hallo zusammen,
es soll ein dummy gesetzt werden. Beim Aufruf kann das Script nicht wissen ob es schon existiert. Wenn nicht, soll es angelegt werden.

Folgendes habe ich bisher:  my $anlegen = "nein";
  my $newdevice = $Bewohner . "_Position_" . $Position;
  fhem("set $newdevice $Zustand") or $anlegen = "ja";
  if ( $anlegen ne "nein" ) {[...]}


Das funktioniert aber nicht. Hier der Log-Auszug:2015.10.20 16:15:49 3: define zzz_Position_zzz dummy : zzz_Position_zzz  already defined, delete it first

Wie kann ich prüfen ob das Anlegen erforderlich ist?

Danke schonmal,
Christian...

marvin78

Du könntest defmod verwenden.

Alternative:

if (!defined("dummyname")) {
irgendwas...
}



marvin78


rudolfkoenig


ChristianKnorr

Zitat von: marvin78 am 20 Oktober 2015, 17:27:56
Du könntest defmod verwenden.

Alternative:

if (!defined("dummyname")) {
irgendwas...
}


Besten Dank :)

igami

Das wird immer wahr sein, den String gibt es ja ;) Du musst das noch mit dem

$defs{Devicename}

kombinieren.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

marvin78

Zitat von: igami am 20 Oktober 2015, 21:45:45
Das wird immer wahr sein, den String gibt es ja ;) Du musst das noch mit dem

$defs{Devicename}

kombinieren.

Eventuell bezieht er sich ja auch auf dem defmod Teil. Das ist ohnehin der bessere Weg für ihn.

Ellert

$defs{Devicename}  auf das Beispiel bezogen sieht dann so $defs{"zzz_Position_zzz"} aus.
if (!exists($defs{"zzz_Position_zzz"}) {fhem "define ...";}

ChristianKnorr

Zitat von: marvin78 am 20 Oktober 2015, 17:27:56if (!defined("dummyname")) {
irgendwas...
}
Das hat nicht funktioniert.

Zitat von: Ellert am 21 Oktober 2015, 08:46:37
if (!exists($defs{"zzz_Position_zzz"}) {fhem "define ...";}
Das versuche ich jetzt.