Playbulb candle in Fhem ?

Begonnen von ChrisW, 10 Januar 2015, 19:16:10

Vorheriges Thema - Nächstes Thema

Thorsten

Hallo,

ich habe auch gestern versucht ein Playbulb Candle zu steuern. Ich konnte mich mit wie hier -> https://pdominique.wordpress.com/2015/01/02/hacking-playbulb-candles/ beschrieben dem gatttool  verbinden - der Playbulb reagiert aber leider auf kein Kommando. Gibt es da vielleicht unterschiedliche Firmwarestände auf den Kerzen oder sowas?

zYloriC

Hallo Thorsten,

konntest du dich erfolgreich mit den Playbulbs verbinden? Sie benötigen ja BLE-Bluetooth.

Gruß, zYloriC

RaspiLED

Hallo,
hier hänge ich mich gerne an und hole den Thread noch mal hoch! Gibt es eine Modulvorlage auf wifilight Basis? Hat schon jemand mit der Playbulb Garden und FHEM Erfahrung?
Gruß Arnd
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Conti

Hallo zusammen

scheint mir ein bisschen schwierig in diesem thread.
Gibt es denn nun schon ein Modul, und wie heisst es?
Ich bin auch daran interessiert und wäre bereit zu testen.
Allerdings habe ich nur eine PlayBulb Sphere.

Viele Grüsse
Conti

waschbaerbauch

Naja, sluggyly war zuletzt im März hier im Board online und hat da schon nicht auf die Anfragen reagiert/geantwortet.

Ich denke eher nicht das es da von seiner Seite noch mal was geben wird. Entweder hat er einfach keine Lust/Zeit seinen Stand zu teilen oder er hatte schlichtweg keinen und wollte nur ein wenig trollen ;)

Vielleicht findet sich ja in den nächsten Monaten jemand der technisch tief genug in der Materie ist um ein Modul zu bauen - ich bin es leider nicht, dafür kann ich aber gut Estrich-Beton und Mörtel anrühren :D

Ma_Bo

Schade, das Modul wäre für mich auch interessant, aber auch ich kann sowas leider nicht.

Wie schon waschbaerbauch geschrieben hat, vielleicht findet sich jemand der uns ein schönes Modul erstellt.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

ilprincipe

Gibts was Neues? Oder vielleicht ein alternatives Produkt, was mit fhem funktioniert?

Ma_Bo

#37
Hey Leute,
ich habe heute meine Playbulb Candle erfolgreich über fhem eingebunden.
Es ist zwar kein Modul, aber es läuft mit 5 dummy´s und 2 DOIF.

Erstmal sollte man seine Playbulbs in der Linux Shell finden und testen, bevor man meine DEF benutzt.

Ich bin wie folgt vorgegangen, schaltet eure Playbulb ein und gebt folgendes in der Linux Shell ein:
EDIT1 = Bluetooth sollte bei euch eingeschaltet sein und auf dem System funktionieren

sudo hciconfig
sudo hciconfig hci0 up
sudo hcitool lescan


dann sollte zumindest eine MAC Adresse eurer Playbulb zu sehen sein, ungefähr so:
LE Scan ...
AC:E6:4B:06:6F:CD (unknown)
AC:E6:4B:06:6F:CD PLAYBULB CANDLE


wenn ihr dann eure Mac habt, gebt folgendes ein: (00:00:00:00:00:00  <<--- diese Mac gegen eure tauschen)
gatttool -b 00:00:00:00:00:00 --char-write -a 0x0019 -n 0000FF00

Ggfs. muss es mit sudo vorne angestellt ausgeführt werden
sudo gatttool -b 00:00:00:00:00:00 --char-write -a 0x0019 -n 0000FF00

Sollte dies so sein, müsst ihr in dem DOIF für die Modi, das sudo auch überall dort einfügen wo gatttool steht.

Bei dem 0x0019 kann es sein, dass ihr einen anderen Wert eingeben müsst, es scheint verschiedene Versionen der Playbulbs zu geben, nähere Infos hier : https://www.jeedom.com/doc/documentation/plugins/playbulb/de_DE/playbulb.html

Jetzt sollte die Playbulb grün leuchten, mit folgendem sollte sie rot leuchten: (00:00:00:00:00:00  <<--- diese Mac gegen eure tauschen)
gatttool -b 00:00:00:00:00:00 --char-write -a 0x0019 -n 00FF0000

Wenn das funktioniert, Glückwunsch, dann steht dem Rest nichts im Wege.

Ich habe folgendes in FHEM definiert:

Einen dummy für die Auswahl der Playbulb:
define Playbulb_Candle_device dummy
attr Playbulb_Candle_device alias 00 Playbulb Device
attr Playbulb_Candle_device room 4.22_Playbulb
attr Playbulb_Candle_device setList state:Playbulb1,Playbulb2,Playbulb3,Playbulb4,Playbulb5,Playbulb6,Playbulb7,Playbulb8,Playbulb9,Playbulb10,BT_Reset
attr Playbulb_Candle_device webCmd state


Danach habe ich mit
setreading Playbulb_Candle_device Befehl_Effekt 0x0017
setreading Playbulb_Candle_device Befehl_Farbe 0x0019

den Befehl für den Effekt und die Farbe eingetragen, dies habe ich extra so gemacht, falls jemand eine andere Version der Playbulb hat und der Befehl anders sein sollte, braucht man diesen hier nur eintragen.

nun noch die zuvor ermittelte MAC Adresse eintragen mit: (00:00:00:00:00:00  <<--- diese Mac gegen eure tauschen)
setreading Playbulb_Candle_device Mac_Playbulb1 00:00:00:00:00:00

Sollten mehrere Playbulbs eingetragen werden dann einfach weiterführen:
setreading Playbulb_Candle_device Mac_Playbulb2 00:00:00:00:00:00

Ich habe zusätzlich einfach mal für 10 Stück eingetragen, auch wenn hier nur die 00:00:00:00:00:00 bleiben, braucht man ja dann später nur ersetzen, wenn man eine neue Playbulb dazu bekommt
setreading Playbulb_Candle_device Mac_Playbulb2 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb3 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb4 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb5 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb6 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb7 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb8 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb9 00:00:00:00:00:00
setreading Playbulb_Candle_device Mac_Playbulb10 00:00:00:00:00:00



Jetzt habe ich einen dummy für die verschiednen Modis erstellt:
define Playbulb_Candle_mode dummy
attr Playbulb_Candle_mode alias 01 Playbulb Mode
attr Playbulb_Candle_mode eventMap 00:Flash 01:Pulse 02:Rainbow_Jump 03:Rainbow_Fade 04:Candle
attr Playbulb_Candle_mode room 4.22_Playbulb
attr Playbulb_Candle_mode setList state:Color,Flash,Pulse,Rainbow_Jump,Rainbow_Fade,Candle,off
attr Playbulb_Candle_mode webCmd state


Einen dummy für den Weiß-Kanal:
define Playbulb_Candle_saturation dummy
attr Playbulb_Candle_saturation alias 03 Playbulb White
attr Playbulb_Candle_saturation eventMap 00:0 0d:5 19:10 26:15 32:20 3f:25 4b:30 58:35 64:40 71:45 7d:50 8a:55 96:60 a3:65 af:70 bc:75 c8:80 d5:85 e1:90 ee:95 ff:100
attr Playbulb_Candle_saturation room 4.22_Playbulb
attr Playbulb_Candle_saturation setList state:slider,0,5,100,5
attr Playbulb_Candle_saturation webCmd state


Einen dummy für die Geschwindigkeit:
define Playbulb_Candle_speed dummy
attr Playbulb_Candle_speed alias 04 Playbulb Speed
attr Playbulb_Candle_speed eventMap ff:0 ee:5 e1:10 d5:15 c8:20 bc:25 af:30 a3:35 96:40 8a:45 7d:50 71:55 64:60 58:65 4b:70 3f:75 32:80 26:85 19:90 0d:95 00:100
attr Playbulb_Candle_speed room 4.22_Playbulb
attr Playbulb_Candle_speed setList state:slider,0,5,100,5
attr Playbulb_Candle_speed webCmd state


Einen dummy für die Farben:
define Playbulb_Candle_color dummy
attr Playbulb_Candle_color alias 02 Playbulb Color
attr Playbulb_Candle_color room 4.22_Playbulb
attr Playbulb_Candle_color setList state:colorpicker,RGB
attr Playbulb_Candle_color webCmd state:state FF0000:state 00FF00:state 0000FF:state FFFFFF:state F7FF00:state 00FFFF:state F700FF


Ein DOIF um die verschiedenen Modi zu steuern:
define Playbulb_Candle_DOIF DOIF (([Playbulb_Candle_color:state] or [Playbulb_Candle_device:state] or [Playbulb_Candle_saturation:state] or [Playbulb_Candle_speed:state]) and [Playbulb_Candle_mode] eq "off")("gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Farbe] -n [Playbulb_Candle_saturation:state]000000",set Playbulb_Candle_fullcommand gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Farbe] -n [Playbulb_Candle_saturation:state]000000) DOELSEIF (([Playbulb_Candle_device:state] or [Playbulb_Candle_color:state] or [Playbulb_Candle_saturation:state] or [Playbulb_Candle_speed:state]) and [Playbulb_Candle_mode] eq "Color")("gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Farbe] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state]",set Playbulb_Candle_fullcommand gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Farbe] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state]) DOELSEIF (([Playbulb_Candle_device:state] or [Playbulb_Candle_color:state] or [Playbulb_Candle_saturation:state] or [Playbulb_Candle_speed:state]) and [Playbulb_Candle_mode] eq "Flash")("gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00",set Playbulb_Candle_fullcommand gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00) DOELSEIF (([Playbulb_Candle_device:state] or [Playbulb_Candle_color:state] or [Playbulb_Candle_saturation:state] or [Playbulb_Candle_speed:state]) and [Playbulb_Candle_mode] eq "Pulse")("gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00",set Playbulb_Candle_fullcommand gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00) DOELSEIF (([Playbulb_Candle_device:state] or [Playbulb_Candle_color:state] or [Playbulb_Candle_saturation:state] or [Playbulb_Candle_speed:state]) and [Playbulb_Candle_mode] eq "Rainbow_Jump")("gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00",set Playbulb_Candle_fullcommand gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00) DOELSEIF (([Playbulb_Candle_device:state] or [Playbulb_Candle_color:state] or [Playbulb_Candle_saturation:state] or [Playbulb_Candle_speed:state]) and [Playbulb_Candle_mode] eq "Rainbow_Fade")("gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00",set Playbulb_Candle_fullcommand gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00) DOELSEIF (([Playbulb_Candle_device:state] or [Playbulb_Candle_color:state] or [Playbulb_Candle_saturation:state] or [Playbulb_Candle_speed:state]) and [Playbulb_Candle_mode] eq "Candle")("gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00",set Playbulb_Candle_fullcommand gatttool -b [Playbulb_Candle_device:Mac] --char-write -a [Playbulb_Candle_device:Befehl_Effekt] -n [Playbulb_Candle_saturation:state][Playbulb_Candle_color:state][Playbulb_Candle_mode:state]00[Playbulb_Candle_speed:state]00)
attr Playbulb_Candle_DOIF checkReadingEvent 1
attr Playbulb_Candle_DOIF do always
attr Playbulb_Candle_DOIF room 4.22_Playbulb
attr Playbulb_Candle_DOIF wait 0.5:0.5:0.5:0.5:0.5:0.5


und ein DOIF um die Mac Adressen umzuschalten:
define Playbulb_Candle_device_Mac_setzen_DOIF DOIF ([Playbulb_Candle_device:state] eq "Playbulb1") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb1]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb2") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb2]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb3") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb3]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb4") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb4]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb5") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb5]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb6") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb6]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb7") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb7]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb8") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb8]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb9") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb9]) DOELSEIF ([Playbulb_Candle_device:state] eq "Playbulb10") (setreading Playbulb_Candle_device Mac [Playbulb_Candle_device:Mac_Playbulb10]) DOELSEIF ([Playbulb_Candle_device:state] eq "BT_Reset") ("sudo hciconfig hci0 up")
attr Playbulb_Candle_device_Mac_setzen_DOIF checkReadingEvent 1
attr Playbulb_Candle_device_Mac_setzen_DOIF do always
attr Playbulb_Candle_device_Mac_setzen_DOIF room 4.22_Playbulb


Zusätzlich habe ich einen dummy angelegt, der mir den kompletten Befehl anzeigt (optional, nur für mich zur Kontrolle um zu sehen ob alles stimmt):
define Playbulb_Candle_fullcommand dummy
attr Playbulb_Candle_fullcommand alias 05 Playbulb Shellcommand
attr Playbulb_Candle_fullcommand room 4.22_Playbulb
attr Playbulb_Candle_fullcommand stateFormat "state"


Jetzt sollte man seine Playbulb(s) schalten können.

Was mir aufgefallen ist, wenn der Candle Effekt drin ist und zurück auf Color geschaltet wird, bleibt der Candle Effekt drin, man muss also erst auf Flash oder einen anderen Effekt und dann auf Color.
Das Problem besteht in der App aber auch, scheint ein Bug in der Playbulb zu sein.

Ich schätze mal, dass das alles evtl auch einfacher und weniger kompliziert geht, aber das ist das was ich rausgefunden habe und es funktioniert wunderbar, somit wollte ich euch auch daran Teil haben lassen.

Vielleicht kann aufrgrund der Daten einer ein Modul dazu entwickeln.

Alle Infos habe ich von hier:

https://www.jeedom.com/doc/documentation/plugins/playbulb/de_DE/playbulb.html
https://pdominique.wordpress.com/2015/01/02/hacking-playbulb-candles/

Hoffe es funktioniert bei euch auch.

P.S. ich habe gerade noch 2 weitere Playbulbs eingebunden, alle 3 laufen wunderbar.

####Edit 2
Sollten die Playbulb ausgeschaltet sein und man versucht sie über FHEM zu steuern passiert logischerweise nix an den Playbulbs, aber es gibt dann eine Meldung im LOG, die z.B. so aussieht:
Connection refused (111)
connect: Device or resource busy (16)


Dies ist ja nur ein Hinweis, somit nicht "gefährlich"  ;)

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

CoolTux

Auch hier möchte ich mich einklinken.
Ich habe vor in nächster Zeit ein gatttool IODev Modul zu schreiben worauf dann andere Module zugreifen können und BT LE Devices zu steuern. So kann dann auch ein Modul für die Lampe geschrieben werden, oder generell für BT LE Lampen.

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

herrmannj

find ich sehr gut.

Den Befehlssatz für das reine setzen der Farben könnte wifilight fast out-of-the-box abbilden. Die dunkle jahreszeit steht vor der Tür, käme passend.

vg
joerg

CoolTux

Habe mir gleich mal 3 von den Dingern bestellt. Hihi
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

waschbaerbauch

Ich kann mich zumindest zum testen mit sechs PlayBulbs anbieten ;)

herrmannj

gibt es eine aktuell günstige Bezugsquelle ?

Hab mal gelernt das es sich lohnt die im Angebot zu kaufen.

vg
joerg

CoolTux

Keine Ahnung ob günstig. Ich habe bei Amazon bestellt. 42 Euro für 3 Stück
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

herrmannj

done! Danke

Hab 2x 3er genommen. Brauch ja schon 4 für den Adventskranz ...  8)