Zurück   IP-Symcon Community Forum > IP-Symcon Hardware > Eaton Xcomfort

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
  #1 (permalink)  
Alt 13.05.10, 19:03
Benutzerbild von mischo22
Member
 
Registriert seit: Dec 2006
Ort: Delmenhorst
Beiträge: 94
Standard Auswertung Kurzer/langer Tastendruck

Hallo!

Ich habe einen Xcomfort 2-fach Schaltaktor in IP-Symcion eingebunden. Gibt es eine möglichkeit, in IP-Symcon gerrauszufeinden, ob ein langer Tastendruck oder ein kurzer gemacht wurde?
Leider habe ich ja nur die Statusvariable (True/False), nicht aber den
Command, der vom Taster gesendet wurde...

Jemand eine Idee, wie das gelößt werden kann?
__________________
mfg

Michael Scholze
Mit Zitat antworten
  #2 (permalink)  
Alt 14.05.10, 11:49
Junior Member
 
Registriert seit: May 2010
Ort: nähe Wien
Beiträge: 5
Standard Auswertung Kurzer/langer Tastendruck

Hallo,

Ich bin gerade dabei, mir einen Möller-Funkbus zuzulegen und möchte erweiterte Funktionen mit IP-Symcon lösen.

Damit ich gewisse Aktionen starten kann, möchte ich diese direkt durch Drücken eines Möller-Funktasters [z.B. kurz => Funktion 1 & lange => Funktion 2] starten.

Meine Frage:
Wie kann man einen Möller-Funkt-Taster abfragen?
(Die Tastendruckzeit beträgt z.B. für einen kurzen Tastendruck nur einige 100ms oder sogar weniger)
Wenn der Taster nur den Status "True" und "False" zurückgibt, hat man ja fast keine Möglichkeit einen Tastendruck auszuwerten?

Ein Taster kann ja z.B. Oben-Kurz / Oben-Lange / Unten-Kurz / Unten-Lange als Funksignal senden.
Wie bekomme ich diese Information über den Datenpunkt der Möller-Kommunikationsschnittstelle zu IP-Symcon, wenn dieser nur den Status "True" & "False" annehmen kann?

Ich würde mich freuen, wenn mir jemand bei diesem grundsätzlichen Problem helfen kann!

mfG Erich
Mit Zitat antworten
  #3 (permalink)  
Alt 14.05.10, 17:36
Benutzerbild von Ferengi-Master
Großer Nagus
 
Registriert seit: Feb 2007
Ort: Zwickau
Beiträge: 3,960
Standard

Bei FS20 gibt es dazu ja eine "Data" Variable. Ich habe leider keinen Moeller Taster, aber habt Ihr schonmal versucht den Taster als XComfort Remote einzubinden, diese hat eine "Data" Variable? Nur so eine Idee.
__________________
MfG Thomas

Hardware im Einsatz: Eaton Xcomfort | Enocean | FS20 | 1-Wire | ALL2282+Axis WebCam | AVM Fritz! Repeater | WMRS200 Wetterstation | IPS-Funksystem-868 | Visu auf: 10"Touchscreen | Apple iPod Touch 2G | Apple iPod Touch 4G | Apple IPhone 4s | Software: IPS V2.5 | IPS Server mit Windows 7 Prof 32bit und Mediaportal 1.2.1 | diverse IPS Clients mit Dashboard | WebFront | iFront

*** Citius, altius, fortius ***
Mit Zitat antworten
  #4 (permalink)  
Alt 20.05.10, 00:14
Benutzerbild von mischo22
Member
 
Registriert seit: Dec 2006
Ort: Delmenhorst
Beiträge: 94
Standard

Sa, habe das mal mit "Xcomfort Remote" getestet.
Die Data-Variable zeigt im normalzustand "2" an. Wird der Taster gedrückt, so wechselt der Wert zu "1".

Leider ist die Anzeige viel zu träge, um daraus irgendetwas zu reproduzieren.
Einige Statuswechsel werden auch verschluckt... sehr seldsam
__________________
mfg

Michael Scholze
Mit Zitat antworten
  #5 (permalink)  
Alt 20.05.10, 08:11
Junior Member
 
Registriert seit: May 2010
Ort: nähe Wien
Beiträge: 5
Standard

Hallo,
Danke für Deinen Versuch und Deinen Input!

Hast Du es auch geschafft, einen anderen Wert zu bekommen, wenn Du den Taster Länger drückst [Tastendruck Lange] ?
...und gibt es einen Unterschied, wenn man den Taster [oben] oder [unten] betätigt?
=> Somit sollte es 5 Möglichkeiten geben:
1. Ruhezustand
2. Taste [Oben-Kurz] gedrückt
3. Taste [Oben-Lange] gedrückt
4. Taste [Unten-Kurz] gedrückt
5. Taste [Unten-Lange] gedrückt

Wie wird bei Dir dieser Tastendruck in IPS erkannt?
... durch ein Event (sobald der Taster gedrückt wird, kann z.B. ein Script gestartet werden)

oder

... muß man den Status vom Taster ständig abfragen?

Wird die DATA-Variable dann auch sofort wieder 2 [Ruhezustand], wenn ich den Taster wieder loslasse?

=> Somit kann ich den Zustand des Tasters direkt abfragen,
oder gibt die Data-Variable den Wert eines Schalters zurück
(könnte vielleicht auch erklären, warum er nicht jeden Tastendruck erkennt)
z.B.
[Taster wird [Oben] betätigt => Data-Variable wird [EIN]
[Taster wird [Unten] betätigt => Data-Variable wird [AUS]

mfG Erich

[PS: bin noch Anfänger mit IPS - Sorry für vielleicht so grundlegende Fragen]
Mit Zitat antworten
  #6 (permalink)  
Alt 25.05.10, 00:18
Benutzerbild von mischo22
Member
 
Registriert seit: Dec 2006
Ort: Delmenhorst
Beiträge: 94
Standard

Hallo austi.

leider ist kein Unterschied erkennbar, ob der Taster lang oder kurz gedrückt wurde. Entweder er ist 2 (Normalzustand) oder 1, wenn gedrückt (lang oder Kurz spielt keine Rolle).

Zu deiner Frage mit dem abfragen:
Ich habe immer die Sensoren und Aktoren im Xcomfort-System verbunden (mit der Moeller Software), nicht über IP-Symcon. IP-Symcon steuert nur zusatzfunktionen, wie Anwesenheitsautomatik oder reaktion auf bestimmte Ereignisse, wie sonnenaufgang etc.

Um z.B. einen taster abzufragen, benötigst du die Instanz "Xcomfort Binary Input". Nun kannst du ein Script erstellen, welches an der Status-Variable vom "Xcomfort Binary Input" bei Änderung getriggert wird. Das wars
__________________
mfg

Michael Scholze
Mit Zitat antworten
  #7 (permalink)  
Alt 25.05.10, 08:51
Junior Member
 
Registriert seit: May 2010
Ort: nähe Wien
Beiträge: 5
Standard

Danke für Deine Antwort!

Ich möchte mit IPS grundsätzlich auch solche Zusatzfunktionen steuern. Ich möchte aber nicht immer zum PC gehen, wenn ich diese parametrisieren möchte (z.B. bin zu Hause, bin nicht zu Hause, aber ich möchte damit z.B. auch die Raffstore-Steuerung und die Lichtsteuerung etwas komfortabler gestalten. Dafür wäre es aber notwendig, daß ich die Möller-Funktaster direkt abfragen kann (auch mit Unterschied [kurz/lange] und [oben/unten], damit ich nicht unnötig viele Taster dafür benötige).

Aber so wie es aussieht wird dieser Wunsch keine leichte Aufgabe...

mfG Erich
Mit Zitat antworten
  #8 (permalink)  
Alt 25.05.10, 13:09
Senior Member
 
Registriert seit: Jan 2007
Ort: Etzenrot
Beiträge: 107
Standard

Hallo

wie mischo22 schon geschrieben hat funkt moeller nur ob gedrückt oder nicht.
Aber dafür haben wir ja IPS das diese Unterscheidung kurz/lang machen kann.
Einfach ein Script auf den Status des Tasters ausführen lassen.
Im Script erst kurz warten
PHP-Code:
IPS_sleep(5); 
,damit kannst Du auch festlegen was ein kurzer Druck ist, und dann schauen ob der Status
PHP-Code:
$data=getvalue($tasterdata); 
noch true oder false ist.
Wenn er true ist hast Du einen langen ansonsten eine kurzen Tastendruck. Mit einer While schleife kannst Du z.B. auch solange er gedrückt ist etwas ausführen lassen.
Oder Du wertest aus wielange er gedrückt wurde z.b. 2s/5s/10s und schaltest daraufhin das Licht dann 5m/30m/1h usw. Die Möglichkeiten sind bei IPS immer riesig.


Hier mal ein Beispielscript:
Ein kurzer Druck schaltet die Stereoanlage ein(bzw. um auf den Auxkanal)/aus, ein langer Druck macht lauter/leiser solange man den Taster drückt.

PHP-Code:
<?

$tasterdata 
=  56500 /*[EG\WZ\Geräte\Stereo\3 Taster rechts\Status]*/;
$lautleiseid=  51283 /*[EG\WZ\Geräte\Stereo\lautleise]*///da nur ein Taster für laut/leise da ist wird einmal lauter und das nächstemal leiser gemacht
IPS_SLEEP(5);
$data=getvalue($tasterdata);
$lautleise=getvalue($lautleiseid);
if (
$data==false)  //kurzer druck
    
{
    
//print "false";
    
if (getvalue(20739 /*[EG\WZ\Geräte\Stereo\Modus]*/)!= "aux"// wenn stereo an aber nicht auf aux ist umschalten
    
{
        
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","aveingang");
        
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","auxeingang");
             
SetValue($lautleiseid,true);
        
setvalue(20739 /*[EG\WZ\Geräte\Stereo\Modus]*/,"aux");
    }
    else  
//wenn stereoanlage schon an und auf aux ist dann ausschalten
    
{
      
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","aveingang");
        
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","aus");
        
setvalue(20739 /*[EG\WZ\Geräte\Stereo\Modus]*/,"aus");
        }
    }
while (
$data == true)   // solange ausführen wie Taster gedrückt ist
{
        if (
$lautleise)
            {
           if (
getvalue(20739 /*[EG\WZ\Geräte\Stereo\Modus]*/)!= "aux"// wenn stereoalnlage aus oder auf tv ist erst ein bzw. umschaltenschalten
            
{
            
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","aveingang");
            
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","auxeingang");
            
setvalue(20739 /*[EG\WZ\Geräte\Stereo\Modus]*/,"aux");
               
SetValue($lautleiseid,true);
            }
         
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","lauter"); //lauter machen

            
}
        else
            {
                  
WinLIRC_SendOnce(29416 /*[Diverse\Module\IrTrans]*/,"stereo","leiser"); //leiser machen
            
}
IPS_SLEEP(100); //kurz warten
$data=getvalue($tasterdata);// neuen status vom taster abholen
}

SetValue($lautleiseid,!getvalue($lautleiseid)); // lautleise invertieren

?>

Gruß Jannis
Mit Zitat antworten
  #9 (permalink)  
Alt 02.06.10, 17:23
Benutzerbild von mischo22
Member
 
Registriert seit: Dec 2006
Ort: Delmenhorst
Beiträge: 94
Standard

jein...

Ja es theoretisch möglich, so was per Script zu realisieren, aber leider macht das Xcomfort System uns da einen strich durch die Rechnung.

Warum?
Nun, durch das Routing im Xcomfort System können manchmal Signale verzögert übertragen werden. Wird z.B. ein Taster lang gedrückt, und das Event, Taster runtergedrückt, braucht länger als das Event Taster losgelassen, wird der lange Tastendruck als kurz interpretiert.

Dies liegt daran, dass das System immer auf Rückmeldungen wartet. Falls ein Timeout auftritt und der Befehl erst beim zweiten mal korrekt empfangen wurde, vergehen rund 1-2 Sekunden. Diese sind entscheidend, ob nun lang oder kurz erkannt wird. In 80% der fälle klappt es, aber in den anderen 20% halt nicht. Lösung wäre, die Lang gedrückt Zeit deulich zu verlängern, aber wer will schon 5 Sekunden den Taster drücken...

Die Lösung wäre, die Instanzen "Xcomfort Binary Input" und " Xcomfort Remote" so zu erweitern, dass der lange Tastendruck erkannt wird. Dies wird im Xcomfort Protokoll auch signalisiert (MGW_TED_UP = kurz; MGW_UP_PRESSED/RELEASED = lang). leider wertet IpSymcon dies bisher nicht aus.


Bitte Bitte, Parasy, wir brauchen diese Funktion...
__________________
mfg

Michael Scholze
Mit Zitat antworten
  #10 (permalink)  
Alt 02.06.10, 22:57
Junior Member
 
Registriert seit: May 2010
Ort: nähe Wien
Beiträge: 5
Standard

Danke für diesen Hinweis!
=> [MGW_TED_UP = kurz]
=> [MGW_UP_PRESSED/RELEASED = lang]

Genau nach dieser Funktion habe ich auch schon gesucht.

Hast Du auch herausgefunden, ob es auch eine Unterscheidungsmöglichkeit gibt, ob der Taster [oben] oder [unten] betätigt wird?

mfG Erich
Mit Zitat antworten
Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2x gleichen Tastendruck abfragen mr_command Scripte, PHP, SQL 13 18.11.11 10:30
Auswertung einer Zeitüberschreitung bei x-Comfort Jannis Scripte, PHP, SQL 4 11.01.10 07:43
Auswertung Brandmeldeanlage - VdS 2465 dhecker Allgemeine Diskussion 2 22.11.09 16:30
IR Trans - mehrfacher Tastendruck mr_command Haustechnik 1 27.08.09 15:07
So mache ich derzeit die Auswertung in IPS mr_cg Allgemeine Diskussion 7 12.05.09 23:10


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0