i-have-a-dreambox.com | Dreambox - Support

Registrierung Kalender Mitgliederliste Teammitglieder Galerie Zum Portal Zur Startseite

Boardregeln Häufig gestellte Fragen Statistik Statistik Suche Pinwand Dreambox Blog Ihad/Gemini Fan-Shop
i-have-a-dreambox.com | Dreambox - Support » Developer Bereich (CVS, Openembedded) » Python » Enigmalight anpassen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Enigmalight anpassen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
bigfoot1313
User


Dabei seit: 02.01.2012
Beiträge: 126
Welche Box: DM900
Externe Speichermedien: HDD
Welches Image: DMM original

Enigmalight anpassen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo

Ich lasse Enigmalight über poppen eine Wifi LED (Yeelight) steuern.
Einschalten lässt sich die LED. Aber sobald ich den roten Knopf "Lights off" betätige frirrt Enigmalight und die LED ein.

Nun habe ich in EL_MainMenu.py unter def keyRed(self): den Eintrag

code:
1:
self.controller.Control("grabber", "stop")


in

code:
1:
2:
bulb = Bulb("192.168.1.79") 		
bulb.turn_off()

geändert. Desweiteren oben

code:
1:
from yeelight import *


eingefügt.

Das Funktioniert natürlich nur auf dem roten Knopf aber nicht bei dem Rest z.b. Standby Mode = Lights off oder Timer bzw. Toggle on/off..

Da ich von Python so gut wie keine Ahnung habe wollte ich euch mal Fragen wie ich das eleganter lösen kann?

Enigmalight holt sich den Startbefehl ja über die enigmalight.conf und die darin verlinkte .py von mir.
Kann man so auch den Stopbefehl definieren?
Bzw. was hat es mit ("grabber", "stop") auf sich?
Grabber ist doch normal am USB oder?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
from yeelight import *
import sys 
import time 
bulb = Bulb(sys.argv[1])
time.sleep(0.5) try:        
bulb.stop_music()
except Exception as e:      
           pass  
time.sleep(0.5) 
bulb.start_music() 
counter = 0
dimming = 50 
while True:     
        input = sys.stdin.readline()      
       #print(input)      
        inputData=input.split(' ')    
        counter = (counter + 1) % 1000       
        if(len(inputData)>5 and (counter % 1 == 0)):      
          dim = 3       
          r = float(inputData[0])*dim       
          g = float(inputData[1])*dim        
          b = float(inputData[2])*dim       
          brightness = int((0.299*r + 0.567*g + 0.134*b)*dimming)        
          print(brightness)        
        # if brightness < 5:        
        #   bulb.turn_off()         
        # else:        
            bulb.turn_on()         
            bulb.set_brightness(brightness-5)        
            bulb.set_rgb(int(r*255), int(g*255), int(b*255))


Viele Grüße und vielen dank für die Hilfe.

Nachtrag:

Da ich keine andere Möglichkeit gesehen habe habe ich die Dateien ELTimer.py und ELControl.py auch noch angepasst.
Ich hoffe jetzt klappt alles (Toggle, Light off)
Timer macht noch Probleme da friert die Box ein sobald die LED startet.
Das muss ich mir nochmal angucken.

Dateianhänge:
unknown EL_Control.py (33,24 KB, 0 mal heruntergeladen)
unknown EL_MainMenu.py (14,39 KB, 1 mal heruntergeladen)
unknown EL_Timer.py (4 KB, 0 mal heruntergeladen)

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von bigfoot1313: 08.09.2017 15:58.

06.09.2017 16:31 bigfoot1313 ist offline E-Mail an bigfoot1313 senden Beiträge von bigfoot1313 suchen Nehmen Sie bigfoot1313 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
i-have-a-dreambox.com | Dreambox - Support » Developer Bereich (CVS, Openembedded) » Python » Enigmalight anpassen

Impressum | Team | Suchen | Hilfe


Powered by Burning Board 2.3.6 © 2001-2003 WoltLab GbR