Zurück   IP-Symcon Community Forum > IP-Symcon Hardware > HomeMatic

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
  #1 (permalink)  
Alt 14.08.08, 16:55
Junior Member
 
Registriert seit: Jan 2007
Beiträge: 24
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
Mit Zitat antworten
  #2 (permalink)  
Alt 20.08.08, 19:23
Junior Member
 
Registriert seit: Jan 2007
Beiträge: 24
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
Mit Zitat antworten
  #3 (permalink)  
Alt 20.08.08, 20:49
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,387
Thumbs up

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

MST
Mit Zitat antworten
  #4 (permalink)  
Alt 21.08.08, 18:57
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,387
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);

Mit Zitat antworten
  #5 (permalink)  
Alt 13.09.08, 10:40
Junior Member
 
Registriert seit: Jan 2007
Beiträge: 24
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
Mit Zitat antworten
  #6 (permalink)  
Alt 13.09.08, 21:09
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,387
Thumbs up

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)
Mit Zitat antworten
  #7 (permalink)  
Alt 27.05.10, 20:43
Benutzerbild von roadsterhh
Moderator
 
Registriert seit: Dec 2005
Ort: Hamburg
Beiträge: 1,793
Standard

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...
Mit Zitat antworten
  #8 (permalink)  
Alt 27.12.10, 14:09
Benutzerbild von roadsterhh
Moderator
 
Registriert seit: Dec 2005
Ort: Hamburg
Beiträge: 1,793
Standard

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 on WHS 2011 @ DELL Inspiron 19" Touchscreen Server
Eaton xComfort / Homematic / FS20 / IPS868 / Chromoflex III RC / 1-Wire
SimonsVoss / FUHR Türsystem
Sonos / T-Home Entertain / AppleTV V2
5x Philips LCD TV / Mitsubishi HC5000 / Mitsubishi HC7000
CANTON inWall & inCeiling Speaker / Teufel 5 THX
iPhone4 / iPad2 / MacBook Air
Fritzbox 7390 / TP-Link Access Point / TP-Link 24 Gigabit Switch
Mit Zitat antworten
  #9 (permalink)  
Alt 15.07.11, 19:34
Senior Member
 
Registriert seit: Jun 2008
Beiträge: 183
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
Mit Zitat antworten
  #10 (permalink)  
Alt 03.03.12, 11:51
Senior Member
 
Registriert seit: Sep 2008
Ort: Hamburg
Beiträge: 210
Standard

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);

?>
__________________
Ich mag Technik, die im Verborgenen dient, intuitiv benutzbar ist und sich nicht für schlauer hält als ihre Benutzer.
Mit Zitat antworten
Antwort

Stichworte
fernbedienung display

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
Suche Mediacenter Fernbedienung Ferengi-Master Off Topic 11 08.05.08 20:06
Display blinken, Kontrast sehr schlecht andrge 1-Wire, M-BUS 2 07.10.07 16:44
Anwendungsbeispiel: 1-Wire Display - Feedback? Markus 1-Wire, M-BUS 2 20.02.07 16:05
Fernbedienung FS20 S20 Jimmy Neutron Allgemeine Diskussion 1 10.01.06 20:46


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 Uhr.


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