FHEM Forum

FHEM => Automatisierung => Thema gestartet von: ChristianKnorr am 20 Oktober 2015, 17:24:11

Titel: Prüfen ob dummy existiert
Beitrag von: ChristianKnorr am 20 Oktober 2015, 17:24:11
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...
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: marvin78 am 20 Oktober 2015, 17:27:56
Du könntest defmod verwenden.

Alternative:

if (!defined("dummyname")) {
irgendwas...
}
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: Ellert am 20 Oktober 2015, 17:34:32
Hier gibt es mehr Infos http://www.fhemwiki.de/wiki/DevelopmentModuleIntro#Der_Hash_einer_Ger.C3.A4teinstanz (http://www.fhemwiki.de/wiki/DevelopmentModuleIntro#Der_Hash_einer_Ger.C3.A4teinstanz)

$defs{Devicename}
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: rudolfkoenig am 20 Oktober 2015, 18:45:57
http://fhem.de/commandref.html#defmod
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: marvin78 am 20 Oktober 2015, 19:31:05
defmod war ja der erste Rat ;)
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: rudolfkoenig am 20 Oktober 2015, 19:40:07
Sorry, habs ueberlesen.
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: ChristianKnorr am 20 Oktober 2015, 21:08:57
Zitat von: marvin78 am 20 Oktober 2015, 17:27:56
Du könntest defmod verwenden.

Alternative:

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


Besten Dank :)
Titel: Antw:Prüfen ob dummy existiert
Beitrag 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.
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: marvin78 am 21 Oktober 2015, 07:37:18
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.
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: Ellert am 21 Oktober 2015, 08:46:37
$defs{Devicename}  auf das Beispiel bezogen sieht dann so $defs{"zzz_Position_zzz"} aus.
if (!exists($defs{"zzz_Position_zzz"}) {fhem "define ...";}
Titel: Antw:Prüfen ob dummy existiert
Beitrag von: ChristianKnorr am 25 Oktober 2015, 18:02:39
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.