Hallo,
ich suche eine Möglichkeit auf InternalVal("CUNX868","hmPair","0")
reagieren.
Da es kein Reading ist geht es mit notify nicht.
Ich habe einen dummy Schalter mit fhem("set CUNX868 hmPairForSec 120")
angelegt und möchte den Schalter auf off setzen wenn hmPair wieder "Weg" ist.
Gruß
Thomas
Ich kann Dir jetzt auch keine Lösung, wie Du auf ein internal reagieren kannst, aber es wäre hilfreich, wenn Du beschreben würdest was Du eigentlich erreichen willst, vielleicht gibt es ja einen anderen Weg?
Achso ich habe nicht wirklich was Du mit folgendem meinst:
Zitat von: Tommi ratlos am 12 November 2017, 17:41:37
Ich habe einen dummy Schalter mit fhem("set CUNX868 hmPairForSec 120")
angelegt und möchte den Schalter auf off setzen wenn hmPair wieder "Weg" ist.
Wo ist der dummy hier ?
Hallo,
den Dummy Schalter (setPairON) on/off habe ich nicht extra reingeschrieben.
Ich möchte erreichen das der Schalter nach Ablauf der hmPairForSec Zeit bzw . nach dem Pairen auf off gesetzt wird.
Etwa so
if InternalVal("CUNX868","hmPair","0") = 0 {
set setPairON off
}
Gruß
Thomas
Und wozu?
Dumm aber machbar: zyklisches 'at' das das InternalVal prüft und schaltet...
Gruß, Joachim
Zitat von: Tommi ratlos am 12 November 2017, 23:32:28
Ich möchte erreichen das der Schalter nach Ablauf der hmPairForSec Zeit bzw . nach dem Pairen auf off gesetzt wird.
Aber warum - was willst Du mit dem dummy erreichen, denn wie MadMax-FHEM schon schreibt, ohne das ständige überprüfen per polling kommst Du nwohl nicht herum.
Morgähn,
danke für die Antworten Ihr habt natürlich recht AT oder Polling macht keinen Sinn kostet nur Rechenleistung. Hatte gehofft es gibt eine andere Lösung.
Gruß
Thomas
Rein aus Neugierde würde mich aber trotzdem interessieren: wozu du das willst/brauchst...
Und wie schon geschrieben: vielleicht gibt es ja eine Lösung für das was du wirklich willst/brauchst/damit bezweckst/bezwecken willst...
Gruß, Joachim
Hallo Joachim,
naja, wirklich brauchen tue ich das nicht. ;) Die Idee war ein wenig mehr Komfort beim Pairen.
Schalter (der eher als Taster funktioniert) drücken, hmPairForSec wird gesetzt. Nach Ablauf der Zeit bzw. wenn Pairing nAC oder AC (hmPair nicht mehr gesetzt) wird er Schalter auf "off" gesetzt.
Gruß
Thomas
Dazu gibt es verschiedene Möglichkeiten:
- Im FTUI kann man auch die Werte von Internals anzeigen, ich denke das geht auch für den Status eines Buttons (vermutlich aber nicht als event, sondern nur über shortpoll)
- Alternativ kann auch zusammen mit dem Setzen des hmpairforsec auch ein at erzeugt werden, dass den Status des dummies wieder zurücksetzt
define makro_pairing notify makro_pairing set setPairON on;; set CUNX868 hmPairForSec 120;; sleep 120;; set setPairON off
mit
trigger makro_pairing
wird dieses dann gestartet
Ohne das jetzt ausprobiert zu haben und wie gesagt es gibt da vermutlich noch mehr Möglichkeiten
Hallo,
danke für den Ansatz, gibt es so etwas wie "do until" oder "do while"? hmPair wird ja auch gelöscht sobald ein Pairing versucht wird "AC/nAC".
Gruß
Thomas
Nein nur auf der Basis von events soweit ich wüsste (nicht sicher ob sich so etwas mit DOIF erledigen liesse)
Wenn das berücksichtigt werden soll ist wohl ein polling wirklich die beste Möglichkeit
Hallo nochmal,
habe es jetzt so gelöst:
setPairON:on {
fhem("set CUNX868 hmPairForSec 600");
fhem("set VCCU hmPairForSec 600");
fhem("setreading CUNX868 MyHmPair 1");
fhem("define AT_WaitPairOFF at +*00:00:03 setreading CUNX868 MyHmPair 2");
}
CUNX868:MyHmPair.* {
my $PairOn = InternalVal("CUNX868", "hmPair", "0");
if ($PairOn eq "0"){
fhem("set setPairON off");
fhem("setreading CUNX868 MyHmPair 0");
fhem("delete AT_WaitPairOFF");
}
}
Gruß
Thomas