Funkbefehl wiederholen

Hi,

ich hab folgendes Problem, mein 4-Kanal-UP-Sender mit Batterie schaft es nur in 70% der Fälle das Signal beim Empfänger zu platzieren, weil die Reichweite nicht ganz reicht. Allerdings empfängt die FHZ immer das Signal, weil dichter dran.

Ich überlege jetzt das Signal von der FHZ einfach als Repeater wiederholen zu lassen, also bei Variablenänderung nochmal das Signal zu senden. Das geht jetzt auch mit einem Provisorium, aber ich würde gerne wissen wie man es richtig macht. Aktuell frage ich den STatus des Gerätes ab und sende das nochmal, also bei AUS sende ich nochmal AUS, aber das ist ja nicht so doll.

Kann man das Signal der FB auswerten und darauf den Befehl wiederholen?

Gestern hatte ich kurzfristig das oben genannte Provisiorum auf den Variable-Aktualisierungs-Event gelegt, das war lustig :wink:

Eventscript ist eigentlich OK. Man muss nur eine kleine Zeitsperre einbauen, das sich die Wiederholung nicht selber wiederholt.

Ich hatte das so gelöst:Kommt das Event rein, wird erst geprüft, ob sich die aktuelle Zeit von der Änderungszeit der Variable um mindestens x Sekunden unterscheidet. Ist sie kleiner, dann ist es das eigene Echo und kann ignoriert werden.

Anbei das Script, was ich mit IPS V1 genutzt habe, die Syntax muss entsprechend angepasst werden.


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : FS20_Nachbrenner.ips.php
Trigger  : 
Interval : 
*/

$s=$IPS_SENDER;
if ($s == "Variable") {
	$v=$IPS_VARIABLE;
	$vn=IPS_GetName($v);
}else{
	$vn="FS20_ST_4";
	$v=IPS_GetVariableID($vn);
}
$on=GetValueBoolean($v);
$t=time()-IPS_getUpdateTime($vn);
if ($t<2) return;
//echo "Sender: $s, Trigger: $vn, Status:";
//echo $on?"ON":"OFF";
FS20_SwitchMode($v,$on);

?>

Tommi

Hi,
brauch ich die Wartezeit wirklich noch? Wenn ich mit dem Script auf Variablenänderung reagiere, wird ja nur einmal, nämlich beim Funkbefehl die Variable verändert. Wenn ich dann das Script loslaufen lasse nehme ich ja den aktuellen Wert, also kommt es nicht zu einer Variablen-Änderung, oder ?? :confused:

Das funktioniert so lange, wie die FHZ-Variable den gleichen Status hat wie das Gerät. Drückt man auf On, weil das Gerät aus ist, die FHZ aber die letzte Änderung nicht mitgeschnitten hat und die Variable deshalb auf ON steht, klappt das nicht mehr.

BTW:Im Zeitmodus sollte das Script besser eine eigene „LastRepeated“-StatusVariable bekommen, welche vor dem NeuSenden mit dem zu sendenden Status gesetzt wird. Das Änderungsdatum dieser Variable wird dann mit dem der FHZ-Variablen verglichen.

Ich greif das Thema nochmal auf:
Also deine letzte Antwort versteh ich nicht. Wenn Gerät und IPS nicht übereinstimmen, ist das doch wurscht. Wenn ich am Gerät gedrückt habe und danach am IPS einen Befehl auslöse, wäre es ja nur von Bedeutung, wenn ich einen „Umschalter“ im IPS hätte. Sowas hab ich zum Glück nicht, ich hab immer konkret EIN oder AUS.

Ich habe jetzt bei jedem Schalter folgendes eingebaut (Event auf Status-Änderung)

 sleep(5);
FS20_SwitchMode($IPS_TARGET , $IPS_Value);

damit wird einfach jede Statusänderung immer nach 5 Sekunden nochmal wiederholt. Da ich den Event auf Änderung gelegt habe passiert es genau 1x.

Blöd das das FS20-System nur eine 90% Zuverlässigkeit hat. Trotz kurzer Funkstrecke schaltet mein Brunnen nicht zuverlässig. Deswegen jetzt die Signalwiederholung. Ich war sogar am Überlegen den Befehl in einem bestimmten Rythmus bis zu nächsten Änderung zu wiederholen…aber erstmal reicht wohl eine einfache Wiederholung… vielleicht greife ich bei wichtigen Schaltern das nochmal auf…

macht ihr das beim FS20-System ähnlich? Es drängt mich langsam parallel ein HMS einzusetzen, für wichtigere Schaltaktionen…