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...
Du könntest defmod verwenden.
Alternative:
if (!defined("dummyname")) {
irgendwas...
}
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}
http://fhem.de/commandref.html#defmod
defmod war ja der erste Rat ;)
Sorry, habs ueberlesen.
Zitat von: marvin78 am 20 Oktober 2015, 17:27:56
Du könntest defmod verwenden.
Alternative:
if (!defined("dummyname")) {
irgendwas...
}
Besten Dank :)
Das wird immer wahr sein, den String gibt es ja ;) Du musst das noch mit dem
$defs{Devicename}
kombinieren.
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.
$defs{Devicename}
auf das Beispiel bezogen sieht dann so $defs{"zzz_Position_zzz"}
aus.
if (!exists($defs{"zzz_Position_zzz"}) {fhem "define ...";}
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.