Homematic über Harmony steuern ohne zusätzliche Hardware

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

LDSign
Beiträge: 40
Registriert: 09.01.2016, 09:24
Danksagung erhalten: 1 Mal

Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von LDSign » 09.04.2016, 08:04

Hallo

Nachdem ich in diesem Forum schon einiges an Hilfe bekommen habe, möchte ich nun etwas zurück geben :)

Und zwar habe ich schon länger nach einer Lösung gesucht, um einige meiner Homematic Aktoren mit der Harmony von Logitech zu steuern. Gerade da die neuen (950 mit Hub/Elite) ja sogar dedizierte Buttons dafür haben. Die gängigen Lösungen mittels IRTRans oder IRE 8 haben aber - neben den zusätzlichen Kosten - einen entscheidenden Nachteil: Logitech hat entschieden, dass die oben genannten Home Control Buttons der Harmony nur für bestimmte Geräte (u.a. Philips HUE) außerhalb einer Aktivität belegt werden dürfen. Shame on them!

Ich finde gerade die Möglichkeit, z.B. das Licht außerhalb einer Aktivität zu steuern ein Muss. Dazu habe ich mich mal auf die Suche nach einer Lösung gemacht. Ausgangspunkt der Überlegung war, dass sowohl das HUE-System wie auch das Harmony-Hub über WLAN kommunizieren. Da muss es doch möglich sein, der Harmony eine HUE-Bridge vorzugaukeln.

Und tatsächlich...da gibt es schon was :)

https://github.com/falk0069/hue-upnp

Das Ganze läuft bei mir auf einer VM im Keller. System ist Ubuntu 15 und die einzigste Voraussetzung nach der frischen Installation ist, dass Python installiert ist. Die Scripts müssen händisch angepasst werden:

Der obere Teil der hueUpnp_config.py sollte selbsterklärend sein, weiter unten werden die Geräte definiert:

Code: Alles auswählen

from collections import OrderedDict
devices = OrderedDict([
    ('Homematic 1', ('script_handler', './hue-upnp-helper.sh')),
    ('Homematic 2', ('script_handler', './hue-upnp-helper.sh')),
    ('Homematic 3', ('script_handler', './hue-upnp-helper.sh')),
    ('Homematic 4', ('script_handler', './hue-upnp-helper.sh')),
])
Hier 4 Aktionen für die 4 Buttons auf der Harmony. Ich habe die Namen generisch gelassen, da die Zuordnung dann über die Datei hue-upnp-helper.sh geschieht:

Code: Alles auswählen

#!/bin/bash

#examples:
#./hue-upnp-helper.sh "Wemo Light" on true
#./hue-upnp-helper.sh "hue light 2" xy [0.4544,0.511]
#./hue-upnp-helper.sh "My toaster" ct 396
#./hue-upnp-helper.sh "PC WOL" bri 254

echo "$0 called with '$1' '$2' '$3'"

DEVICE1="Homematic 1"
DEVICE2="Homematic 2"
DEVICE3="Homematic 3"
DEVICE4="Homematic 4"

#HUE LIGHT 1 (DEVICE1)
if [ "$1" == "$DEVICE1" ]; then

  echo "Running directive for $DEVICE1"

  #ON/OFF Directive
  if [ "$2" == "on" ]; then
    if [ "$3" == "true" ]; then
      echo 1 on true
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/javascript.0.Stehlampe.STATE?value=true
    elif [ "$3" == "false" ]; then
      echo 1 on false
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/javascript.0.Stehlampe.STATE?value=false
    fi

  #BRIGHTNESS
  elif [ "$2" == "bri" ]; then
    echo 1 bri $3
    wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/javascript.0.Stehlampe.HUE_LEVEL?value=$3
  #CT
  elif [ "$2" == "ct" ]; then
    echo 1 ct $3

  #XY
  elif [ "$2" == "xy" ]; then
    echo 1 xy $3
  fi

#HUE LIGHT 2 (DEVICE2)
elif [ "$1" == "$DEVICE2" ]; then

  echo "Running directive for $DEVICE2"

  #ON/OFF Directive
  if [ "$2" == "on" ]; then
    if [ "$3" == "true" ]; then
      echo 2 on true
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/hm-rpc.0.MEQXXXXXXX.1.STATE?value=true
    elif [ "$3" == "false" ]; then
      echo 2 on false
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/hm-rpc.0.MEQXXXXXXX.1.STATE?value=false
    fi

  #BRIGHTNESS
  elif [ "$2" == "bri" ]; then
    echo 2 bri $3

  #CT
  elif [ "$2" == "ct" ]; then
    echo 2 ct $3

  #XY
  elif [ "$2" == "xy" ]; then
    echo 2 xy $3
  fi

#Licht Kueche Decke (DEVICE3)
elif [ "$1" == "$DEVICE3" ]; then

  echo "Running directive for $DEVICE3"

  #ON/OFF Directive
  if [ "$2" == "on" ]; then
    if [ "$3" == "true" ]; then
      echo 1 on true
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/hm-rpc.0.MEQXXXXXXX.1.STATE?value=true
    elif [ "$3" == "false" ]; then
      echo 1 on false
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/hm-rpc.0.MEQXXXXXXX.1.STATE?value=false
    fi
  fi


#Licht Kueche Unterschrank (DEVICE4)
elif [ "$1" == "$DEVICE4" ]; then

  echo "Running directive for $DEVICE4"

  #ON/OFF Directive
  if [ "$2" == "on" ]; then
    if [ "$3" == "true" ]; then
      echo 1 on true
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/hm-rpc.0.MEQXXXXXXX.2.STATE?value=true
    elif [ "$3" == "false" ]; then
      echo 1 on false
      wget -S -q --header "Accept: application/json" -O - http://smarthome:8087/set/hm-rpc.0.MEQXXXXXXX.2.STATE?value=false
    fi
  fi

else
  echo "Error: Unknown Device '$1' command=$2 $3"
  exit 1
fi
Wie man sieht rufe ich in jedem Device-Block das passende API auf. Bei mir ist es ioBroker, es könnte aber genau so gut das XML-API der CCU sein.

Der erste Block (DEVICE1) ist noch ganz interessant: Hier rufe ich statt eines Aktors erstmal ein Script in iobroker auf, das sich darum kümmert, dass der Dimmwert der HUE-Bridge (0-254) in den Homematic-LEVEL (0-100) konvertiert wird. Außerdem sorgt ein weiteres Script dafür dass während des Dimmens (WORKING) die LED am Wandtaster (gesteuert über ein HM-MOD-Re-8) blinkt - it’s all about details, you know ;)

Hier das Script für iobroker - das sollte sich in der CCU2 auch umsetzen lassen (ich habe aber alle meine Scripts zentral in iobroker).

Code: Alles auswählen

createState('javascript.0.Stehlampe.HUE_LEVEL', {type: 'number', min: 0, max: 254});
createState('javascript.0.Stehlampe.STATE', {type: 'boolean'});
createState('javascript.0.Stehlampe.LEVEL', {type: 'number', min: 0, max: 100, unit: '%'});

on('javascript.0.Stehlampe.HUE_LEVEL', function(obj) {
    var level = Math.ceil(obj.state.val / 254 * 10) * 10;

    setState('javascript.0.Stehlampe.LEVEL', level);
});

on('javascript.0.Stehlampe.LEVEL', function(obj) {
    var level = obj.state.val;

    setState('hm-rpc.0.MEQXXXXXXX.1.LEVEL', level);
});

on('javascript.0.Stehlampe.STATE', function(obj) {
    var state = obj.state.val;

    if (state === true) {
        var level = getState('javascript.0.Stehlampe.LEVEL');

        setState('hm-rpc.0.MEQXXXXXXX.1.LEVEL', level.val);
    }

    if (state === false) {
        setState('hm-rpc.0.MEQXXXXXXX.1.LEVEL', 0);
    }
});
(Das Ganze wird über den Umweg mit einer STATE/LEVEL-Variable gemacht, da die Harmony/der HUE-Emulator bei jeder Änderung des Dimmwertes vorher ein Kommando "on" schickt. Das hat zu einem Zucken der Lampe geführt.)

Diese Lösung ist exakt das, was ich gesucht habe und funktioniert prima - die Kommandos der Harmony werden astrein und ohne merkliche Verzögerung (< 0.5s) ausgeführt.

Für ein Tutorial ist das oben etwas zu wenig, aber ich denke die Scripts sind so einfach dass ein Schubs in die Richtung genügen muss. Vielleicht kann der ein oder andere ja damit etwas anfangen - viel Spaß beim Nachbasteln!

Viele Grüße,
Frank
Zuletzt geändert von LDSign am 09.04.2016, 15:36, insgesamt 5-mal geändert.

LDSign
Beiträge: 40
Registriert: 09.01.2016, 09:24
Danksagung erhalten: 1 Mal

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von LDSign » 09.04.2016, 08:19

Ergänzend hierzu noch kurz ein Link zu einem Thread den ich im ioBroker-Forum eröffnet habe:

http://forum.iobroker.net/viewtopic.php?f=24&t=2648

Gruß,
Frank

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von grissli1 » 09.04.2016, 10:34

Super, danke dir! Wird sicher viele freuen.
Aber es läuft nicht ohne zusätzliche Hardware, denn man braucht eine VM auf einem Rechner oder aber einen Raspi.
Da sich der Raspi in der HM Welt immer mehr durchsetzt wäre es schön, eine Schritt für Schritt Anleitung für Raspi User zu machen.

Viele Grüße
Chris

Unterwegs @ G-Pad
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

LDSign
Beiträge: 40
Registriert: 09.01.2016, 09:24
Danksagung erhalten: 1 Mal

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von LDSign » 09.04.2016, 10:40

grissli1 hat geschrieben:Super, danke dir! Wird sicher viele freuen.
Aber es läuft nicht ohne zusätzliche Hardware, denn man braucht eine VM auf einem Rechner oder aber einen Raspi.
Da sich der Raspi in der HM Welt immer mehr durchsetzt wäre es schön, eine Schritt für Schritt Anleitung für Raspi User zu machen.

Viele Grüße
Chris

Unterwegs @ G-Pad
Hi Chris

Ja, du hast recht. Aber wie du schon sagst, ein Server ist mittlerweile schon fast Standard und man spart sich die Hardware für irgendwelche Transceiver, die ja in der o.g. Konstellation auch nicht das Optimum wären.

Die perfekte Lösung wäre tatsächlich ein ioBroker-Adapter als HUE Emulator - mal sehen, was sich "drüben" ergibt :)

Viele Grüße,
Frank

painkillerde
Beiträge: 24
Registriert: 22.12.2014, 08:49

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von painkillerde » 03.06.2016, 17:01

Hallo zusammen,

erstmal danke für die Kurzanleitung.

Hab ewig genau da nach gesucht.

Leider komm ich nach dem Pairing in myharmony nicht weiter. er möchte meine "zugangsdaten" um von huee zu importieren - hab ich natürlich nicht.

Wie kann ich die Geräte importieren????


DANKE!!!

Gruß
Daniel
Grüße

Daniel
------------------------------------
ioBroker auf Raspberry Pi3, Homamatic CCU2 + ca 50 Geräte (Aktoren, Sender, Sensoren), Alexa Echo, Alexa Echo Dot, Vu+ Duo2, Logitech Harmony Elite

http://www.painkiller.de

LDSign
Beiträge: 40
Registriert: 09.01.2016, 09:24
Danksagung erhalten: 1 Mal

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von LDSign » 03.06.2016, 17:04

Hey Daniel

Ich habe mittlerweile auf eine bessere Möglichkeit umgestellt:

https://github.com/bwssytems/ha-bridge

Damit kommt man auf das gleiche Ergebnis - nur deutlich komfortabler. Und man hat eine Weboberfläche zur Administration :)

Gruß,
Frank

painkillerde
Beiträge: 24
Registriert: 22.12.2014, 08:49

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von painkillerde » 03.06.2016, 17:06

das hab ich auch ned recht auf die reihe bekommen. zumindest die Installation.

gibts da ne gute Anleitung.

Vielen dank für die schnelle Antwort
Grüße

Daniel
------------------------------------
ioBroker auf Raspberry Pi3, Homamatic CCU2 + ca 50 Geräte (Aktoren, Sender, Sensoren), Alexa Echo, Alexa Echo Dot, Vu+ Duo2, Logitech Harmony Elite

http://www.painkiller.de

LDSign
Beiträge: 40
Registriert: 09.01.2016, 09:24
Danksagung erhalten: 1 Mal

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von LDSign » 03.06.2016, 17:17

Das war in der Tat etwas tricky. Aber irgendwann gings dann :) Wenn du nicht weiterkommst, am besten mal bei Github fragen...

painkillerde
Beiträge: 24
Registriert: 22.12.2014, 08:49

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von painkillerde » 03.06.2016, 18:12

so läuft soweit man muss nur mal auf die idee kommen das webinterface aufzurufen - dann sieht man das es schon läuft ;-)

kannst du mir evt ein Screen von einem deiner devices machen dann kann ich das übernehmen und für mich anpassen - da klemmts nämlich jetzt.

vielen Dank!!!
Grüße

Daniel
------------------------------------
ioBroker auf Raspberry Pi3, Homamatic CCU2 + ca 50 Geräte (Aktoren, Sender, Sensoren), Alexa Echo, Alexa Echo Dot, Vu+ Duo2, Logitech Harmony Elite

http://www.painkiller.de

painkillerde
Beiträge: 24
Registriert: 22.12.2014, 08:49

Re: Homematic über Harmony steuern ohne zusätzliche Hardware

Beitrag von painkillerde » 03.06.2016, 19:34

OK habs hinbekommen - Danke nochmal!!!
Grüße

Daniel
------------------------------------
ioBroker auf Raspberry Pi3, Homamatic CCU2 + ca 50 Geräte (Aktoren, Sender, Sensoren), Alexa Echo, Alexa Echo Dot, Vu+ Duo2, Logitech Harmony Elite

http://www.painkiller.de

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“