# \[Modul\] Homematic Extended (Instanzen für besondere Geräte und Funktionen)

**URL:** <https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340>\
**Category:** PHP-Module (Diskussion)\
**Created:** [2. August 2015 um 14:48 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340 "2015-08-02T14:48:47Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [13. März 2016 um 13:49 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/41 "2016-03-13T13:49:25Z")

</div>

Kann durchaus sein dass es da noch Fehler gibt.  
Die Instanz habe ich noch nie zu 100% durch getestet, die Doku fehlt ja auch :o  
Schaue ich mir mal an.  
Danke fürs testen und die Info.  
Der Timer soll eigentlich mit jeden Tastendruck zurück gesetzt werden und nach auslösung wieder deaktiv werden.  
Allerdings sind die Timer in der 4.0 aktuell noch nicht fertig implementiert (für Module).  
Michael

UPDATE: Auch der Timer-Fehler der Dis-WM55-Instanze ist behoben.

---

<div class="post-metadata">

**Author:** ![PumpkinEater](https://community.symcon.de/letter_avatar_proxy/v4/letter/p/4af34b/32.png) [@PumpkinEater](https://community.symcon.de/u/PumpkinEater)\
**Post date:** [14. März 2016 um 09:03 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/42 "2016-03-14T09:03:23Z")

</div>

Noch ein Hinweis zur Funktion „hex\_encode“. Das Mapping der Umlaute in dieser Funktion funktioniert nur für UTF-8 codierte Strings als Input. Hat mir eine Menge Zeit gekostet, um herauszufinden, dass „Köln“ nicht gleich „Köln“ ist ;). Man sollte also sicherstellen, dass alle anzuzeigenen Strings im UTF-8 Format vorliegen, oder man ändert die Zeile

$return = str\_replace($umlaut, $hex\_neu, $string); in  
$return = str\_replace($umlaut, $hex\_neu, utf8\_encode($string));  
um.

Viele Grüße  
Peter

---

<div class="post-metadata">

**Author:** ![Bayaro](https://community.symcon.de/user_avatar/community.symcon.de/bayaro/32/699_2.png) [@Bayaro](https://community.symcon.de/u/Bayaro)\
**Post date:** [14. März 2016 um 09:05 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/43 "2016-03-14T09:05:47Z")

</div>

Moin!

Leider kann man aber nicht immer UTF-8 bekommen. Manche IPS Funktionen lesen in UTF-8 aus, wandeln dann aber intern irgendwie in ANSI und dann kann man mit decode/encode versuchen was man will und keine Chance an einen sauberen Zeichensatz zu bekommen.

Aber paresy meinte ja, dass er sich darum bald mal kümmern will und dann ist das sehr nervige Thema „Umlaute“ hoffentlich bald Vergangenheit und man kann wieder halbwegs normal mit IPS arbeiten.

Grüße,  
Chris

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [14. März 2016 um 09:17 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/44 "2016-03-14T09:17:03Z")

</div>

@Peter: worauf beziehst du dich ?  
Der interne Datenaustausch ist immer enkodiert. Weil JSON\_encode das nicht automatisch macht.  
Michael

---

<div class="post-metadata">

**Author:** ![PumpkinEater](https://community.symcon.de/letter_avatar_proxy/v4/letter/p/4af34b/32.png) [@PumpkinEater](https://community.symcon.de/u/PumpkinEater)\
**Post date:** [14. März 2016 um 09:36 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/45 "2016-03-14T09:36:48Z")

</div>

> [@Nall chan](#):
>
> @Peter: worauf beziehst du dich ?

Ich lese mit einem anderen Skript die Abfahrtstafeln der Bahn aus, und dabei werden dann (scheinbar) Strings im nicht-UTF8 Format erzeugt. Ich will aber auch nicht ausschließen, dass das Problem irgendwie auf meiner BananaPI-Installation „hausgemacht“ ist. Das ganze Thema mit den Zeichensätzen habe ich noch nie komplett durchdrungen :p.  
Gruß  
Peter

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [14. März 2016 um 10:16 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/46 "2016-03-14T10:16:13Z")

</div>

Und was hat das jetzt hier mit dem Thema zu tun?  
Michael

---

<div class="post-metadata">

**Author:** ![PumpkinEater](https://community.symcon.de/letter_avatar_proxy/v4/letter/p/4af34b/32.png) [@PumpkinEater](https://community.symcon.de/u/PumpkinEater)\
**Post date:** [14. März 2016 um 12:39 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/47 "2016-03-14T12:39:13Z")

</div>

Das sollte für andere nur ein Hinweis sein, dass der zu „displayende“ Text in UTF-8 Format vorliegen muss.

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [14. März 2016 um 13:09 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/48 "2016-03-14T13:09:01Z")

</div>

Wo? Bei dem Displaytaster ?  
Der kann doch gerade mal ASCII und 5-6 Sonderzeichen.  
Michael

---

<div class="post-metadata">

**Author:** ![PumpkinEater](https://community.symcon.de/letter_avatar_proxy/v4/letter/p/4af34b/32.png) [@PumpkinEater](https://community.symcon.de/u/PumpkinEater)\
**Post date:** [14. März 2016 um 17:02 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/49 "2016-03-14T17:02:34Z")

</div>

> [@Nall chan](#):
>
> Wo? Bei dem Displaytaster ?  
> Der kann doch gerade mal ASCII und 5-6 Sonderzeichen.  
> Michael

Natürlich nicht die ganze Abfahrttafel :). Auf dem Display werden nur die nächsten Abfahrtzeiten für den Bus vor der Tür und die S-Bahn in der Nähe dargestellt:

Abfahrt 015  
in 5 min Ost  
in 7 min Mitte  
Abfahrt S6  
in 12 min Essen  
in 10 min Köln

Das Display hängt an der Haustür, und sagt mir, ob das Rennen zum Bus noch lohnt 😉

Gruß  
Peter

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [14. März 2016 um 17:58 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/50 "2016-03-14T17:58:32Z")

</div>

Ah… ja jetzt wird ein Schuh draus und ich verstehe was du meinst. 🙂

@Chris und das hat nix mit IPS zu tun, außer das es schwierig ist so etwas in der Konsole zu debuggen.

Es ist einfach so, dass die JSON-Funktionen von PHP immer UTF8-Strings brauchen, sonst kann er es nicht korrekt verarbeiten.  
Und wenn man es dann richtig macht, sieht Köln im JSON-String so aus: „K\u00f6ln“  
Wobei da aber immer das größte Problem ist, welches Format haben die Daten welche man ausliest :rolleyes:

Allerdings wundert es mich dass es überhaupt mit Umlauten so bei dir funktioniert.  
In meinem Beispiel werden Texte mit Umlaut vorher noch mit hex\_encode umgewandelt, weil die Anzeige für ein ‚ö‘ z.B: ein ‚|‘ haben möchte.

```php
$display_line[1] = array('Text' => hex_encode("Führe"),
        'Icon' => Icon_no,
        'Color' => Color_orange);

```

Und „K|ln“ kann JSON\_encode dann auch so verarbeiten, ohne dass du vorher den String „K|ln“ noch mit utf8\_encode bearbeiten musst.

Michael

---

<div class="post-metadata">

**Author:** ![PumpkinEater](https://community.symcon.de/letter_avatar_proxy/v4/letter/p/4af34b/32.png) [@PumpkinEater](https://community.symcon.de/u/PumpkinEater)\
**Post date:** [14. März 2016 um 21:28 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/51 "2016-03-14T21:28:14Z")

</div>

> [@Nall chan](#):
>
> Allerdings wundert es mich dass es überhaupt mit Umlauten so bei dir funktioniert.  
> In meinem Beispiel werden Texte mit Umlaut vorher noch mit hex\_encode umgewandelt, weil die Anzeige für ein ‚ö‘ z.B: ein ‚|‘ haben möchte.

Ja, Du hast recht - mein Fehler. Ich hatte die Funktion utf8\_encode nicht wie oben beschrieben, beim json\_encode eingesetzt, sondern in der Funktion hex\_encode an der Stelle:  
$return = str\_replace($umlaut, $hex\_neu, utf8\_encode($string));  
Ohne diese Änderung greift das Mapping von ö auf | nicht, da bei mir das ö ja nicht im utf8-Format vorliegt.

(ich habe meinen Eintrag oben entsprechend geändert)

Gruß  
Peter

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [14. März 2016 um 21:33 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/52 "2016-03-14T21:33:36Z")

</div>

Und das ist wohl wirklich wieder ein IPS Problem… Scripte scheinen da wohl Probleme zumachen, je nachdem wie man sie auf sein System importiert / anlegt oder mit C&P den Code einfügt.  
Danke für die Rückmeldung, ich werde die Funktion mal umbauen.  
Michael

---

<div class="post-metadata">

**Author:** ![Fonzo](https://community.symcon.de/user_avatar/community.symcon.de/fonzo/32/480_2.png) [@Fonzo](https://community.symcon.de/u/Fonzo)\
**Post date:** [25. März 2016 um 11:20 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/53 "2016-03-25T11:20:12Z")

</div>

Ich habe mir mal die laufenden Threads angeschaut und dabei festgestellt das bei mir das Modul dauerhaft die meisten Threads belegt. Teilweise sind das bis zu 15 Threads gleichzeitig.

 ![HomematicExtended.png](https://community.symcon.de/uploads/default/original/2X/8/80c64e715d360c2bce5a98d98b9723e44a14b700.png)

Ist das normal habe ich da einen Fehler in meiner Konfiguration? Kann man das irgendwie auch reduzieren?

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [25. März 2016 um 12:22 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/54 "2016-03-25T12:22:34Z")

</div>

Ja, nein, nein 😃  
Die Instanzen hängen am HM-Socket und somit ist das Verhalten normal.  
Michael

UPDATE: Mit IPS 4.1 behoben! Es werden nicht permanent Thread-Slots belegt.

---

<div class="post-metadata">

**Author:** ![scanix](https://community.symcon.de/user_avatar/community.symcon.de/scanix/32/790_2.png) [@scanix](https://community.symcon.de/u/scanix)\
**Post date:** [12. Juli 2016 um 13:53 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/55 "2016-07-12T13:53:49Z")

</div>

Hallo zusammen,

ich möchte gerne eine CCU Var. auslesen ob diese True oder False ist.

Der wert möchte ich gleich in einen if Abfrage einbinden.

```php
if (*CCU Abfrage* == true)

```

Was müsste bei CCU Var abfrage stehen?

Danke

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [12. Juli 2016 um 14:17 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/56 "2016-07-12T14:17:55Z")

</div>

Wie Abfragen?  
Einfach GetValueBoolean auf die IPS-Variable.  
Oder was hast du genau vor?  
Michael

---

<div class="post-metadata">

**Author:** ![scanix](https://community.symcon.de/user_avatar/community.symcon.de/scanix/32/790_2.png) [@scanix](https://community.symcon.de/u/scanix)\
**Post date:** [12. Juli 2016 um 14:27 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/57 "2016-07-12T14:27:38Z")

</div>

Aha so einfach;-)

Möchte einfach wenn die var true ist Geräte a einschalten wenn die var false ist gerät b und c einschalten.

Denke jetzt geht es.

Danke^^^^

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [23. Juli 2016 um 21:23 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/58 "2016-07-23T21:23:49Z")

</div>

Update-Preview für IPS 4.1

Im Modul-Control auf den Branch ‚tester‘ umstellen !

Michael

---

<div class="post-metadata">

**Author:** ![c.radi](https://community.symcon.de/user_avatar/community.symcon.de/c.radi/32/383_2.png) [@c.radi](https://community.symcon.de/u/c.radi)\
**Post date:** [25. Juli 2016 um 15:59 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/59 "2016-07-25T15:59:02Z")

</div>

Hallo,

kannst Du ganz kurz noch erläutern, wie man das Modul für den Displaytaster verwendet.

Die beiden ersten Werte sind klar, die IDs der Taster.  
Die beiden nächsten Werte sind mir schon nicht klar. Ich hätte ein Script vermutet, darf ich aber nicht verlinken.

Was ist mit Timeout gemeint, wird der Displayinhalt\< danach gelöscht?  
Was macht das Displayskript?

Ich habe bisher über die beiden Taster anwesend und abwesend gesetzt. Jeder Taster hat ein Script ausgelöst und in den verschiedenen Systemen den Status passend gesetzt.

Gruß  
Christian

---

<div class="post-metadata">

**Author:** ![Nall-chan](https://community.symcon.de/user_avatar/community.symcon.de/nall-chan/32/18_2.png) [@Nall-chan](https://community.symcon.de/u/Nall-chan)\
**Post date:** [25. Juli 2016 um 19:20 UTC](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340/60 "2016-07-25T19:20:55Z")

</div>

Schau mal ob das paßt:  
[GitHub - Nall-chan/IPSHomematicExtended at tester](https://github.com/Nall-chan/IPSHomematicExtended/tree/tester#7-homematic-wm55-dis)

Ich habe das mal versucht in Worte zu fassen.

In den ersten vier Feldern kannst die vier PRESS-Datenpunkte der Statusanzeige eintragen.  
Also z.B. Hoch und runter PRESS\_SHORT und bei Aktion PRESS\_LONG.

Die Aktionen stehen dann im Display-Script zur Verfügung, inkl. der Seitennummer.  
Dieses Script stellt meinem Modul den anzuzeigenden Inhalt zur Verfügung, und muss von dir erweitert / angepaßt werden.

Das Timeout heißt nur dass nächstes mal wieder Seite 1 angezeigt wird. Die Dauer der Anzeige selbst, kannst du glaube ich direkt in der CCU / dem Gerät einstellen.

Michael

[Vorherige Seite](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340.md?page=2)

[Nächste Seite](https://community.symcon.de/t/modul-homematic-extended-instanzen-fuer-besondere-geraete-und-funktionen/38340.md?page=4)
