+ Antworten
Ergebnis 1 bis 10 von 10
  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    25

    Standard Display der 19 Tasten Fernbedienung ansteuern

    Ich habe die 19 Tasten Fernbedienung mit Display und würde gerne das Display von IPS aus ansteuern.

    Von Homematic aus kann ich das Display (Unteradresse :18) einwandfrei ansteuern. Daher habe ich einen Homematic Empfänger in IPS angelegt und die Adress Suche (Suche neue Geräte) gestartet. Ich bekomme darüber alle Tasten der Fernbedienung aber leider nicht das Display angezeigt. Weiß jemand wie ich das Display ansteuern kann??? Leider kann ich die Adresse des Homematic Device nicht händisch eingeben...

    Danke
    Martin

  2. #2
    Registriert seit
    Jan 2007
    Beiträge
    25

    Standard Workaround

    Ich habe einen Workaround gefunden, unschön aber funktioniert.

    Da das Display nicht über die Adress Search Funktion gefunden werden kann, muss diese manuell eingetragen werden.
    - Ein Device "Homematic Empfänger" anlegen und Objekt ID merken
    - IPS beenden
    - Dateien Settings.* sichern
    - Datei Settings.xml manuell editieren (nach Objeckt ID suchen) und die Adresse für das Display mit der richtigen Seriennr. eintragen (Unteradresse :18) :
    <Address Value="SERIENNR:18"/>
    - IPS starten

    Mittels folgender Funktion können die Texte ans Display gesendet werden:
    function setDisplay($text, $beep, $backlight, $unit) {
    HM_WriteValueString(51722 , "TEXT", $text);
    HM_WriteValueString(51722 , "BEEP", $beep);
    HM_WriteValueString(51722 , "BACKLIGHT", $backlight);
    HM_WriteValueString(51722 , "UNIT", $unit);
    HM_WriteValueBoolean(51722 , "SUBMIT", True);
    }

    Dabei sind folgende Werte möglich:
    // Backlight
    OFF = 0
    ON = 1
    BLINK = 2
    // Unit
    OFF = 0
    PERCENT = 1
    WATT = 2
    CELSIUS = 3
    FARENHEID = 4
    // Beep
    Ton OFF = 0
    Ton 1 = 1
    Ton 2 = 2
    Ton 3 = 3


    Kennt jemand den Parameter für die Symbole?

    Gruß
    Martin

  3. #3
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,608

    ... schönes Ding ...
    "Parameter für die Symbole" kriegen wir auch noch raus ...

    MST

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,608

    Standard Sauna aufgeheizt

    ... nette Spielerei - man kann nun noch eine Quittierung einbauen und
    wenn diese nicht erfolgt erneut melden ect.pp...

    PHP-Code:
    $temp GetValue(40931 /*[Neben Gebäude\Sauna\Temp Sauna\Temperature]*/);
    $temp number_format($temp1".""." );

    setDisplay("Sauna"310);
    IPS_Sleep(3000);
    setDisplay($temp013);

    // Backlight OFF = 0 ON = 1 BLINK = 2
    // Unit OFF = 0 PERCENT = 1 WATT = 2 CELSIUS = 3 FARENHEID = 4
    // Beep Ton OFF = 0 Ton 1 = 1 Ton 2 = 2 Ton 3 = 3

    function setDisplay($text$beep$backlight$unit) {
    $id 34506 /*[ZBV_Test_QC\HomeMatic\HM Display groß]*/;
    HM_WriteValueString($id  "TEXT"$text);
    HM_WriteValueString($id  "BEEP"$beep);
    HM_WriteValueString($id  "BACKLIGHT"$backlight);
    HM_WriteValueString($id  "UNIT"$unit);
    HM_WriteValueBoolean($id  "SUBMIT"True);


  5. #5
    Registriert seit
    Jan 2007
    Beiträge
    25

    Standard Parameter für Symbole

    Nachdem ich mir mit dem CCU Update meine Zentrale abgeschossen habe, musste ich wohl oder Übel in die Tiefen der Homematic einsteigen. Dabei bin ich auf die Datei /usr/local/etc/config/homematic.regadom gestossen. Diese Datei enthält Informationen über alle verbundenen Devices. Es gibt Einträge für Devices, Channels, Verknüpfungen usw.

    Dabei habe ich folgende Parameter für das Display gefunden

    ARROW_DOWN
    ARROW_UP
    BELL
    BLIND
    BULB
    CLOCK
    DOOR
    PHONE
    SCENE
    SWITCH
    WINDOW

    Einfach mittels HM_WriteValueBoolean das gewünschte Symbol setzen. Z.B.
    HM_WriteValueBoolean($id_aktor, "PHONE", true)

    Martin

  6. #6
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,608

    Hallo Martin,

    PHP-Code:
    HM_WriteValueBoolean($id"BULB"true);
    HM_WriteValueString($id"TEXT""Lampe");
    HM_WriteValueBoolean($id"SUBMIT"True); 
    PHP-Code:
    setDisplay("Gute"010);
    IPS_Sleep(2000);
    $id 34506 /*[ZBV_Test_QC\HomeMatic\HM Display groß]*/;
    HM_WriteValueBoolean($id"SCENE"True);
    setDisplay("Nacht"110);

    function 
    setDisplay($text$beep$backlight$unit) {
    $id 34506 /*[ZBV_Test_QC\HomeMatic\HM Display groß]*/;
    HM_WriteValueString($id"TEXT"$text);
    HM_WriteValueString($id"BEEP"$beep);
    HM_WriteValueString($id"BACKLIGHT"$backlight);
    HM_WriteValueString($id"UNIT"$unit);
    HM_WriteValueBoolean($id"SUBMIT"True);

    Danke, dass wir auch von Deinem Fund partizipieren durften...

    MST
    Geändert von steiner (14.09.08 um 14:36 Uhr)

  7. #7
    Registriert seit
    Dec 2005
    Ort
    Hamburg
    Beiträge
    2,254

    Seid Ihr hier mittlerweile schon weiter ?

    Ich habe jetzt die 19 Tasten Fernbedienung, beim Anlegen z.B. legt er keine Variablen an... alles noch sehr sehr manuell...

  8. #8
    Registriert seit
    Dec 2005
    Ort
    Hamburg
    Beiträge
    2,254

    So, fummel mich da gerade nochmal rein.

    Habt ihr für die Display Messages und Symbole jeweils manuell eigene Variablen angelegt ? Oder haut ihr die Befehle immer nur per Skript raus ?

    Könnt ihr sonst mal ein Screenshot der Variablen machen, wie das ganze bei euch aussieht ?
    Besten, Nico


    IPS Server @ WinXP ASUS eeeBOX B202
    Eaton xComfort / CCU - Homematic Funk & Wired (Fokus) / FS20 / IPS868 / Chromoflex III RC
    SimonsVoss / FUHR Türsystem
    Sonos / T-Home Entertain / AppleTV V2 & V3
    5x Philips LCD TV / Mitsubishi HC5000 / Mitsubishi HC7000
    CANTON & BOSE inWall & inCeiling Speaker / Teufel 5 THX
    iPhone5 / iPad2 / MacBook Air
    Fritzbox 7390 modded / TP-Link 24 Gigabit Switch

  9. #9
    Registriert seit
    Jun 2008
    Beiträge
    200

    Standard scrollen

    Hat eigentlich schon jemand eine möglichkeit gefunden, texte zu scrollen? will z.b. Telefonnummern anzeigen und dafür ist das Display einfach zu klein...

    korny

  10. #10
    Registriert seit
    Sep 2008
    Ort
    Hamburg
    Beiträge
    800

    Ich habe ein Skript geschrieben, das eine String-Variable auswertet und das Display einer HomeMatic-Fernbedienung entsprechend setzt. Um das ganze komfortabler zu machen, werden alle Informationen aus einem einzigen String gezogen. Das Skript tut dann einige mehr oder minder "kluge" Dinge:

    -Falls im String eine unterstützte Einheit gefunden wird (z.B. °C) wird automatisch das entsprechende Einheitssymbol im Display verwendet.
    -Falls der String ansonsten numerisch ist, wird er automatisch rechtsbündig angezeigt.
    -vor dem String lassen sich, separiert durch ein Pipe-Zeichen | Sonderfunktionen und Symbole angeben, z.B. blink für ein blinkendes Display, beep für einen Piepton oder bulb für das Glühlampen-Symbol. Die Bezeichner der Sonderfunktionen finden ich im Code.

    Das Skript kann als Event-Handler auf Variablenaktualisierungen reagieren. Zum Test kann es per Execute aufgerufen werden und zeigt dann einen Test-Text.

    Einige beispiele für gültige Strings:

    Code:
    bulb|DIM50%
    21.5°C
    HALLO
    blink beep3 bell|ALARM
    switch light|850W
    PHP-Code:
    <?

    // diese Zeilen bitte entsprechend ändern.
    $displayId 10182  /*[Hardware\HomeMatic\Fernbedienung Kino\DISPLAY]*/;
    $testText '21,5°C';

    if(
    $_IPS['SENDER'] == 'Execute')
        
    $text $testText;
    else if(
    $_IPS['SENDER'] == 'Variable')
        
    $text $_IPS['VALUE'];

    $unit '0';
    if(
    substr($text, -2) == '°C')
    {
        
    $unit '3';
        
    $text substr($text0strlen($text) - 2);
    }
    else if(
    substr($text, -2) == '°F')
    {
        
    $unit '4';
        
    $text substr($text0strlen($text) - 2);
    }
    else if(
    substr($text, -1) == '%')
    {
        
    $unit '1';
        
    $text substr($text0strlen($text) - 1);
    }
    else if((
    strtolower(substr($text, -1)) == 'w') &&
        (
    is_numeric(substr($text, -21)) || (substr($text, -21) == ' ')))
    {
        
    $unit '2';
        
    $text substr($text0strlen($text) - 1);
    }

    if(
    strpos($text'|') !== FALSE)
    {
        
    $symbols substr($text0strpos($text'|'));
        
    $symbols explode(' '$symbols);
        
    $text substr($textstrpos($text'|') + 1);
    }

    $text trim($text);
    $hasDot = (strpos($text'.') !== FALSE);
    $hasComma = (strpos($text',') !== FALSE);

    if(
    $hasDot || $hasComma)
    {
        if(
    $hasDot)
            
    $text substr($text0strpos($text'.') + 2);
        else if(
    $hasComma)
            
    $text substr($text0strpos($text',') + 2);
        if(
    strlen($text) > 6$text substr($text06);
    }
    else
    {
        if(
    strlen($text) > 5$text substr($text05);
        if(
    is_numeric($text)) $text str_pad($text5' 'STR_PAD_LEFT);
    }

    echo 
    $text;

    HM_WriteValueString($displayId"TEXT"$text);
    HM_WriteValueString($displayId"UNIT"$unit);

    foreach(
    $symbols as $thisSymbol)
    {
        switch(
    strtolower($thisSymbol))
        {
           case 
    'beep':
           case 
    'beep1':
               
    HM_WriteValueString($displayId"BEEP"'1');
               break;
           case 
    'beep2':
               
    HM_WriteValueString($displayId"BEEP"'2');
               break;
           case 
    'beep3':
               
    HM_WriteValueString($displayId"BEEP"'3');
               break;
           case 
    'light':
               
    HM_WriteValueString($displayId"BACKLIGHT"'1');
               break;
           case 
    'blink':
               
    HM_WriteValueString($displayId"BACKLIGHT"'2');
               break;

           case 
    'up':
               
    HM_WriteValueBoolean($displayId"ARROW_UP"TRUE);
               break;
           case 
    'down':
               
    HM_WriteValueBoolean($displayId"ARROW_DOWN"TRUE);
               break;
           case 
    'bell':
               
    HM_WriteValueBoolean($displayId"BELL"TRUE);
               break;
           case 
    'blind':
               
    HM_WriteValueBoolean($displayId"BLIND"TRUE);
               break;
           case 
    'bulb':
               
    HM_WriteValueBoolean($displayId"BULB"TRUE);
               break;
           case 
    'clock':
               
    HM_WriteValueBoolean($displayId"CLOCK"TRUE);
               break;
           case 
    'door':
               
    HM_WriteValueBoolean($displayId"DOOR"TRUE);
               break;
           case 
    'phone':
               
    HM_WriteValueBoolean($displayId"PHONE"TRUE);
               break;
           case 
    'scene':
               
    HM_WriteValueBoolean($displayId"SCENE"TRUE);
               break;
           case 
    'switch':
               
    HM_WriteValueBoolean($displayId"SWITCH"TRUE);
               break;
           case 
    'window':
               
    HM_WriteValueBoolean($displayId"WINDOW"TRUE);
               break;
        }
    }
    HM_WriteValueBoolean($displayId"SUBMIT"True);

    ?>
    LCN | HM | FS20, HMS und FHT | Arduino | FrtzBx | Ras Pi
    "Technik sollte nicht ins Auge springen, nicht auf einen Wow-Effekt abzielen, sich nicht zu wichtig nehmen. Technik sollte im Verborgenen dienen."

Ähnliche Themen

  1. Suche Mediacenter Fernbedienung
    Von Ferengi-Master im Forum Off Topic
    Antworten: 11
    Letzter Beitrag: 08.05.08, 20:06
  2. Display blinken, Kontrast sehr schlecht
    Von andrge im Forum 1-Wire, M-BUS
    Antworten: 2
    Letzter Beitrag: 07.10.07, 16:44
  3. Anwendungsbeispiel: 1-Wire Display - Feedback?
    Von Markus im Forum 1-Wire, M-BUS
    Antworten: 2
    Letzter Beitrag: 20.02.07, 16:05
  4. Fernbedienung FS20 S20
    Von Jimmy Neutron im Forum Allgemeine Diskussion
    Antworten: 1
    Letzter Beitrag: 10.01.06, 20:46

Stichworte