Secustik-Griffe von HOPPE

Wenns um das 0/2 Problem geht… wie gesagt, das kann man an diesem Drehgeben (weißes Plättchen mit Vierkant-Loch im Inneren) irgendwie durch drehen desgleichen einstellen…

Toni

Mir ging es nur darum wenn es 4 eindeutige Positionen gibt, dass diese 4 Positionen auch je EINE EINDEUTIGE Nummer haben könnten.

So ist es halt 0 oder 2.

Wie kann ich denn in einem Script verhindern, dass „offen“, also bei mir 0 oder 2 ausgeführt wird, wenn ich gerade von „kipp“ auf „geschlossen“ gedreht habe?
Mir fehlte da bisher die richtige Idee.

also 0 oder 2 erkennen ist leicht: wie in Beiträgen zuvor geschrieben durch event=(0 or 2)

Das "Umgehen der Zwischenstufe ‚offen‘ ", also 1 zu 3 ohne auf 0 oder 2 zu reagieren wird komplizierter, und muß dann „wie im richtigen Leben“ daran festgemacht werden, woran du manuell auch die „Gültigkeit“ erkennst: an der Zeitdauer zwischen den Ereignissen 0|2 und 3:

Das kannst du z.B. ermitteln durch testen des „Alters“ der Variable, also deine Final-Aktion erst auslösen, wenn diese Variable x Sekunden alt ist. Um das aber wiederum eventgesteuert zu triggern, mußt du ein „Tochterscript“ haben, das (durch das direkt getriggerte Primärscript so einzutragen) wiederum per Scripttimer erst x Sekunden in der Zukunft startet, und sich selbst dann wieder auf scripttimer=0 zurücksetzt. Ein „Doppeleintrag“, also sowohl bei „gekippt“ als auch dann bei „offen“ löst das nicht doppelt aus, sondern verzögert den Start nur nochmal.

Dann würdest Du aber pro Griff ein extra Tochter-Script brauchen, da das ja zeitlich überlappend unabhängig an verschiedenen Griffen ausgelöst werden könnte.

Aber wozu der Aufwand? Zustands-Pictogramme z.B. im Designer wechseln eben live mit, TTS-Ausgaben beenden ein evtl. noch „laufenden“ alten Output, wenn ein neuer Inhalt da ist. Und Logs bekommen eben eine weitere neuere Zeile… oder willst du alles per SMS senden? :rolleyes:

Gruß Gerd

… ich begreife es nicht :confused: :confused: :confused:
Wenn ich meinen Fenstergriff um 360 Grad drehe ist er im Arsc …
Da ist mit es völlig Wurst ob 2 oder 0.

MST

es geht nicht um 360 Grad, sondern Ralf hat (so wie ich das verstehe) den Wunsch, von 12 Uhr- auf 6 Uhr-Stellung zu schalten, ohne zwischendurch bei 3- oder 9-Uhr-Stellung (die ja überstrichen werden muß) ein Event auszulösen, also nur 180 Grad brutto ohne Reaktion bei 90 grad…

Aber ich seh es auch als „Kanonen auf Spatzen“, da ich den eigentlichen Sinn des Weglassens der „Zwischeninfo“ noch nicht erfasse bzw. mich diese nicht stören würde

… ah ja - klar - wenn man sonst keine Sorgen hat …

Hallo ralf,
vielleicht hilft dir das weiter…

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Probe.ips.php
Trigger  : Statusvariable von HOPPE => onChange
Interval : 
*/
switch ($IPS_SENDER) {
   case "Variable":
      $IPS_VALUE=0;
      // wenn gekippt ------------>  komm noch mal nach 2 Sekunden
      if (!($IPS_VALUE % 2)) IPS_SetScriptTimer($IPS_SELF,2);
      else {
         IPS_SetScriptTimer($IPS_SELF,0);
         if ($IPS_VALUE==1) {
            // Hier das Skript für Zustand = 1
         }
         else {
            // Hier das Skript für Zustand = 3
         }
      }
   break;
   case "TimerEvent":
      IPS_SetScriptTimer($IPS_SELF,0);
      // Hier das Skript für Zustand = 0 oder Zustand = 2
   break;
}
?>

Aber beachte: durch IPS_SetScripttimer funktioniert das nur mit einer Statusvariable (einem Hoppegriff). Du benötigst also pro Griff ein solches Skript für die Ausführung.

Günter

Ok, dann mal zur Erklärung ;).

Ich schalte unter anderem bei „offen“ z.B. Licht im Garten an, Sperre IR-Sensoren Außen, und dimme das Innenlicht herunter, natürlich nur, wenn es auch dunkel draußen ist. Und das soll beim „Vorbeikommen an offen auf dem Weg von gekippt“ nicht ausgelöst werden.

Und Steiner, andere Probleme habe ich auch noch eine ganze Menge :eek:.

Spawn, danke ich werde es so testen.

Trotzdem noch mal zu den Werten. Vielleicht erkläre ich nicht klar genug. Natürlich kann ich meinen Griff auch nicht um 360 Grad drehen. Und das Abfangen mit if oder im case ist natürlich auch machbar.

Aber wenn ich „oben/12 Uhr“ und „unten/6 Uhr“ eindeutige Werte habe verstehe ich halt nicht, warum die Mittelstellung (bei mir rechts/3 Uhr) zwei unterschiedliche Werte liefert.

Auch wenn scheinbar nur zwei „Kontakte“ binär codiert werden, wäre eine eindeutige Zuordnung zur Position möglich.

Sicher ist vieles möglich. Warum das nun aber so ist und nicht anders, mußt du Hoppe fragen oder EnOcean, von denen die Sensoren wohl stammen.

Noch dazu, wie ich anfangs schrieb, macht das durchaus nicht jeder Griff drehrichtungsabhängig.

… es tut mir wirklich Leid, aber ich habe das Problem immer noch nicht begriffen :confused:
0, 1 ,2, 3 - dass habe ich mir ausgedacht - man hätte auch A, B, C D nehmen können oder 1,2,3,4 was auch immer.

Zur Mechanik: es wurde u.a. der ECO 100 Elektrodynamischer Generator verbaut.
Dieser erzeugt eine Spannung von ± 5V je nach Drehrichtung - somit weiß ich,
aus welcher Position das Fenster geöffnet wurde: 0 oder 2 (wenn es denn jemanden interessiert).
Wird ein geschlossenes Fenster auf „Kipp“ gestellt (oder umgekehrt) , so bekommt man zwei (Trigger) Werte.
Möchte man nur den letzen Impuls auswerten siehe u.g. Skript von Spawn,
Ähnlich ist es beim EnOcean easyfit / 4-fach Taster auch hier kann man feststellen, ob eine Taste gedrückt ober losgelassen wurde -wenn es denn jemanden interessiert :wink:

MST

… Nachtag - mich hat eben folgende Mail von DerOerg erreicht:

… ich kann Ralf sein Problem verstehen da ich dies so am Anfang auch hatte. Wenn man den Hoppe Griff als „Kompas“ sieht ist es eigentlich egal ob ich „aus Norden“ oder „aus Süden“ komme, dann ist z.B. „Osten“ immer „Osten“ und wechselt nicht nach „Westen“. In der Variable steht neben der Position auch noch die Richtung drin, DAS ist das eigentliche Problem. Man muß aus der Variable die „Position“ und die „Richtung“ raus klamüsern. Vielleicht ist es jetzt ein wenig verständlicher. Es ist nicht immer so einfach zwei unterschiedliche Informationen in einer Variable unterzubringen. Lösungsvorschlag: 0 + 2 für 9:00 Position und 4 + 5 für 3:00 Position. Somit ist Richtung und Position genau definiert. Ist nur ein Vorschlag, ich lebe mit der jetzigen Lösung sehr gut.

Wir werden in V2.0 dem Hoppe-Modul o.g. Vorschlag aufgreifen
z.B.:
1 = Kipp-Position
2 = geöffnet (unabhängig vom Anschlag)
3 = geschlossen

Ob wir eine 2. Variable für die Richtung und eine „Totzeit“ von 2 Sekunden einbauen, werden intern diskutieren.

MST