Paulmann SmartHome-Leuchten in FHEM einbinden (Bluetooth, ZigBee)?

Begonnen von bsl02, 26 August 2016, 19:05:40

Vorheriges Thema - Nächstes Thema

bsl02

Hallo,
hat schon jemand diese Einbauleuchten von Paulmann mit FHEM betrieben? Derzeit erfolgt deren Ansteuerung wohl noch mit Bluetooth, in 2017 soll eine Erweiterung auf ZigBee erfolgen.

Ich darf die Beleuchtung für einen Wintergarten planen, Fertigstellung hoffentlich Ende Oktober 2016 ;-)

Die Einbauleuchte:
https://de.paulmann.com/leuchten/smart-home/dimmen/smarthome-led-einbauleuchte-coin-5w-weiss-matt-mit-dimmfunktion/92094

In 2017 soll eine Erweiterung auf Zigbee erfolgen
https://de.paulmann.com/ueber-uns/presse/pressemitteilungen/paulmann-home-lichtsteuerung-bequem-per-app

Grüsse
Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

MattG

Hi!

in einem Spontankauf habe ich mir heute eine Paulmann LED-Lampe (SmartHome LED AGL Boyn 9W E27 mit Farblichtsteuerung) gekauft ohne vorher zu recherieren, ob und wie die Lampe unterstützt wird. Dei Benutzung mit der Paulmann-App war problemlos möglich und klappte sofort. Es wäre nett, wenn man auch FHEm benutzen könnte.

Die erste Analyse war recht einfach: Die Lampe wird per Bluetooth LE gesteuert und taucht in entsprechenden Scan-Programmen als Lamp-RGBW auf. Man kann eine Verbindung aufbauen und bekommt neben dem üblichen Namen, Versionnr. etc. eine übersichtliche Struktur von mit 11 Charakteristiken zur Steuerung - alle sauber mit Namen versehen wie z.B. RGB oder Brightness. Bevor man Werte schreiben oder lesen kann, muss man zuvor in "Password" ein Passwort schreiben, dass man nettweise aus der Paulmann-App einfach übernehmen kann. Danach ließ sich z.B. die Farbe und Helligkeit sofort einstellen.

Soweit die gute Nachricht - die schlechte ist, dass es derzeit keine Modul in FHEM gibt, mit dem man direkt in Bluetooth LE schreiben könnte. Und ich kenne auch kein Perlmodul, dass Bluetooth LE unterstützt, so dass ein FHEM-Modul auch nicht so einfach zu bauen wäre.

Viele Grüße,
Matthias

herrmannj

Hallo Matthias

Cooltux und ich bearbeiten das Thema. Wenn Du Dich noch gedulden kannst dann behalte am besten die Entwicklung bei den playbulbs im Auge und wenn die in die nächste Phase gehen gib bitte noch einmal ein Signal. Gern per pm.

Wenn Du magst kannst Du auch Interesse halber die Characteristics posten ?

vg
joerg

CoolTux

Mahlzeit die Herren.
Ich trage mich mal hier ein um das Thema nicht zu verlieren.
Es gibt bereits für BTLE Licht Devices das 31_PLAYBULB Modul. Hier werden vorerst nur die Playbulb Produkte der Firma MiPow unterstützt. Es sollte aber kein Problem sein Dein Device da mit unter zu bringen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

MattG

Cool! Das ist genau die Nachricht auf die ich gewartet habe!
Da werde ich mal bei den Playbulbs reinschauen.

Hier die Characteristics für den Service FFB0:

FFB1 Auto Change Ctrl (RW): Steht auf 0x00001E für konstant an. Weitere Modi habe ich nicht getestet.

FFB2 RGB (RW): wie der Name sage mit einem Byte pro Wert, beim Schreiben wird auf RGB-Mode geschalten und die Farbe gesetzt (0xff0000 = rot).

FFB3 System Time (RW): Im Format Jahr(2B)-Monat(1B)-Tag(1B)-Stunde(1B)-Minute(1B)-Sekunde(1B). Startet immer bei 2000-01-01-00:00:00 neu, wenn der Strom unterbrochen war, lässt sich aber auch direkt schreiben und tickt dann gleich los.

FFB4 Timer (RW): Nicht getestet, steht auf 0x0014000000170000

FFB5 Device Name (RW): String mit 14B, enthält "Lamp-RGBW"

FFB6 CCT (RW): Farbtemperaturwert in K als 16bit-Int, beim Start auf 2700. Lässt sich schreiben, aber nimmt nur einen der wenigen passenden Werte an (z.B. 5000K). Nach dem Schreiben schaltet die Lampe auf den Weiss-Modus.

FFB7 Switch (RW): 0 schaltet aus, 1 schaltet ein. Die anderen Werte bleiben erhalten, man landet also bei der gleichen Farbe

FFB8 Brightness (RW): 1 Byte für die Helligkeit in Prozent (0 bis 100). Höhere Werte als 100 werden akzeptiert, die maximale Helligkeit wird aber bei 100 schon erreicht.

FFB9 Working Mode (R): Zeigt den aktuellen Modus 0x01020000 für Weiss mit Farbtemperatur und 0x01010000 für RGB-Mode. Der Wert ist readonly und ändert sich, wenn man in die anderen Register schreibt.

FFBB Controller Enable (RW): Steht auf 1 und lässt sich durch Schreiben nicht beeinflussen.

FFBA Password (W): Vor jedem anderen Zugriff muss hier das Passwort aus der Paulmann-App schreiben - sonst bricht die Lampe bei jedem anderen Zugriff die Verbindung ab. Das Passwort wird als ASCII geschrieben - "1234" wird also zu 0x31323334.


Soweit mein derzeitiger Stand - noch nicht getestet habe ich die Timer und die Farbwechselmodi.


Viele Grüße,
Matthias


MattG

Hi nochmal!

Ich habe mit mal das Playbulb-Modul runtergeladen und angesehen. Daran hatte ich gar nicht gedacht, dass man auf diese Weise gatttool einbinden kann - damit umschifft man die Misere der fehlenden Bibliotheken. Ich bin bei meinen Spielereien mit BLE bisher immer bei einer Bibliothek für Node.js geblieben, weil es sonst nichts vernünftiges gab. Diese Bibliothek greift direkt auf das Host Controller Interface zu, was viel Handarbeit bedeutet, aber leider gibt's in bluez keine schönere API. Und daher stammt auch meine Aussage, dass es in Perl nix gibt...

Wie ich im Modul auch gesehen habe, geschieht der Zugriff über Handlenummern und nicht UUIDs. Daher hier zur Vervollständigung noch die Handles:
ffb1 Auto Change Ctrl = 0x25
ffb2 RGB = 0x28
ffb3 System Time = 0x2b
ffb4 Timer = 0x2e
ffb5 Device Name = 0x31
ffb6 CCT = 0x34
ffb7 Switch = 0x37
ffb8 Brightness = 0x3a
ffb9 Working Mode = 0x3d
ffbb Controller Enable = 0x40
ffba Password = 0x43

Leider ist es mir mit gatttool noch nicht gelungen, eine Verbindung aufzubauen - es scheitert an der Autorisierung. Mit der LightBlue-App war das kein Problem, da passiert der Aufbau der Verschlüsselung im Hintergrund.

Viele Grüße,
Matthias



ofno

Hi

Hat sich im Bereich der paulmann Anbindung was getan?

Gruß ofno

MattG

Hi Ofno,

für meine Geräte mit Bluetooth LE hab ich mir ein Gateway gebaut und die Lampe dort notdürftig eingebunden. Ist leider immer noch nicht in einem Zustand, der stabil genug wäre, um es zu veröffentlichen. Ich baue gerade von Http auf MQTT um, damit es sinnvoll benutzbar und leicht in FHEM einbindbar wird. Im Moment komme ich leider nicht so recht zum Programmieren...
Im Prinzip sollte es auch ohne so ein Gateway gehen. Aber was die Steuerung über Bluetooth LE betrifft ist die Paulmannlampe etwas hakelig - man muss direkt nach Verbindungsaufbau das Passwort schicken, und kann dann erst Einstellungen vornehmen. Außerdem vergisst die Lampe alles, wenn der Strom weg ist. Mit der Technik über gatttool, wie es das Playbulbmodul macht, ist das schwierig. Und da ich nicht nur die Lampe, sondern auch noch ein paar andere Dinge mit BLE betreibe, wollte ich alles in ein Teil einbauen. Aber wie gesagt, ich komme im Moment nicht so recht voran.

Gruß, Matthias

rubbertail

Seit dem letzten HUE Bridge Firmware-Update kann eine HUE Bridge auch mit Paulmann ZigBee 3.0-Controllern umgehen. :)
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

ingoha

Ich habe mir ein kleines Bash-Skript geschrieben, das auf dem Pi installiert ist:


#!/bin/bash

options=':b:p:'
while getopts $options option
do
    case $option in
        b  )    BT_ADDR=$OPTARG;;
        p  )    PIN=`echo $OPTARG|xxd -p -l 4`;;
        h  )    error $EXIT $DRYRUN;;
        \? )    if (( (err & ERROPTS) != ERROPTS ))
                then
                    error $NOEXIT $ERROPTS "Unknown option."
                fi;;
        *  )    error $NOEXIT $ERROARG "Missing option argument.";;
    esac
done

shift $(($OPTIND - 1))
COMMAND=$1

#TODO: Handle aus UUID ermitteln; scheint nicht immer gleich zu sein...
PWD_HANDLE="0x3d"

DEFAULT_PIN=`echo 0123|xxd -p -l 4`

# Iss. #1
BT_ADDR=${BT_ADDR//./:}
#echo $BT_ADDR

# Vorgehen wie in der App:
#  zweimal die eingestellte PIN probieren...
if ! gatttool -b $BT_ADDR --char-write-req -a 0x3d -n $PIN | grep -q 'successfully'
then
    if ! gatttool -b $BT_ADDR --char-write-req -a 0x3d -n $PIN | grep -q 'successfully'
    then
        # ...dann die default-PIN
if gatttool -b $BT_ADDR --char-write-req -a 0x3d -n $DEFAULT_PIN | grep -q 'successfully'
        then
            # und PIN ändern
            if ! gatttool -b $BT_ADDR --char-write-req -a 0x3d -n $DEFAULT_PIN$PIN | grep -q 'successfully'
            then
                echo "Error changing PIN"
                exit 1
            fi
        else
            echo "Wrong PIN"
            exit 1
        fi
    fi
fi

#0x2b entspricht ffb5=device name...
DEV_NAME=`gatttool -b $BT_ADDR --char-read -a 0x2b | cut -d":" -f2 | xxd -r -p`
#echo $DEV_NAME
case $COMMAND in
    on  ) gatttool -b $BT_ADDR --char-write-req -a 0x31 -n 01;;
    #Ausschalten ;-) ffb7
    off ) gatttool -b $BT_ADDR --char-write-req -a 0x31 -n 00;;
    power )
POWER_STATUS=`gatttool -b $BT_ADDR --char-read -a 0x31 | cut -d":" -f2`
echo $POWER_STATUS
;;
    # ffb8=Helligkeit
    bright)
        BRIGHTNESS=`printf "%02X" $2`
        gatttool -b $BT_ADDR --char-write-req -a 0x34 -n $BRIGHTNESS;;
    # ffb6=Farbtemperatur
    #TODO im BT-Sniff nachschauen (16bit-int?)
    temp) gatttool -b $BT_ADDR --char-write-req -a 0x2e -n $2;;
esac


Wenn es noch jemanden interessiert, kann ich auch gern das Git-Repo veröffentlichen...

Damit steuere ich erfolgreich meine Paulmann DiscLED 1 (LAMP-WC).

uwirt

Gibt es die Möglichkeit Paulmann YourLED Strips direkt über einen ARILUX SL-LC 01 WiFi Controller anzusprechen?

Update:
Ich gebe mir die Antwort gleich selber - meine beiden ARILUX SL-LC 01 WiFi Controller sind gestern angekommen und innerhalb einer halben Stunde konnte ich sie in FHEM einbinden. Alle Anschlüsse sind völlig kompatibel.

Fast schon Plug&Play.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

Tueftler1983

Hallo ich habe einen RGB-WW-CW 50w Strahler gekauft, er ist von GEYUEYA Home und arbeitet mit BLE Mesh, Dazu Gab es die Fernbedienung ebenfalls mit BLE und die app Hao Deng für Android.
Am Raspberry bekomme ich den Strahler mit
hcitool lescan
Als LE Scan ...
LE Scan ...
F8:1D:78:6B:E1:F0 b50cc1c738752ee7
F8:1D:78:6B:E1:F0 (unknown)
angezeigt unb bei
pi@gargatttool -Iool lescan
[                 ][LE]> connect F8:1D:78:6B:E1:F0
Attempting to connect to F8:1D:78:6B:E1:F0
Connection successful
[F8:1D:78:6B:E1:F0][LE]>

Soweit so gut ein characteristics liefert
[F8:1D:78:6B:E1:F0][LE]> characteristics
handle: 0x0002, char properties: 0x02, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
handle: 0x0005, char properties: 0x02, char value handle: 0x0006, uuid: 00002a01-0000-1000-8000-00805f9b34fb
handle: 0x0008, char properties: 0x02, char value handle: 0x0009, uuid: 00002a26-0000-1000-8000-00805f9b34fb
handle: 0x000a, char properties: 0x02, char value handle: 0x000b, uuid: 00002a29-0000-1000-8000-00805f9b34fb
handle: 0x000c, char properties: 0x02, char value handle: 0x000d, uuid: 00002a24-0000-1000-8000-00805f9b34fb
handle: 0x000e, char properties: 0x02, char value handle: 0x000f, uuid: 00002a27-0000-1000-8000-00805f9b34fb
handle: 0x0011, char properties: 0x1a, char value handle: 0x0012, uuid: 00010203-0405-0607-0809-0a0b0c0d1911
handle: 0x0014, char properties: 0x0e, char value handle: 0x0015, uuid: 00010203-0405-0607-0809-0a0b0c0d1912
handle: 0x0017, char properties: 0x06, char value handle: 0x0018, uuid: 00010203-0405-0607-0809-0a0b0c0d1913
handle: 0x001a, char properties: 0x0a, char value handle: 0x001b, uuid: 00010203-0405-0607-0809-0a0b0c0d1914


Kann jemand mit den Daten was anfangen um den Strahler in Fhem einzubinden?
Bin auch gerne bereit Arbeit zu investieren.

Mit freundlichen Grüßen
Holger