コード例 #1
0
 def publishStateFromDomoticzTopic(self, mqtt_client, device, base_topic, message):
     OnOffSwitchAdapter.publishStateFromDomoticzTopic(self, mqtt_client, device, base_topic, message)
     base_topic = base_topic + '/' + str(message['idx'])
     if message.get('svalue1') is not None:
         mqtt_client.Publish(base_topic + '/brightness/set', str(message['svalue1']))
     if message.get('Color') is not None:
         rgb_color = message['Color']
         color = '%02x%02x%02x' % (rgb_color['r'], rgb_color['g'], rgb_color['b'])
         mqtt_client.Publish(base_topic + '/colorsettingrgb/set', color)
コード例 #2
0
    def _get_adapter(self, domoticz_devices, group_name):
        if (group_name.endswith('_dimmer')):
            adapter = DimmableBulbAdapter(domoticz_devices)
        elif (group_name.endswith('_ct')):
            adapter = DimmableCtBulbAdapter(domoticz_devices)
        else:
            adapter = OnOffSwitchAdapter(domoticz_devices)

        # Remove LinkQuality device from adapter
        adapter.devices.pop(0)
        return adapter
コード例 #3
0
    def _get_adapter(self, group_name):
        if (group_name.endswith('_dimmer')):
            adapter = DimmableBulbAdapter()
        elif (group_name.endswith('_ct')):
            adapter = DimmableCtBulbAdapter()
        elif (group_name.endswith('_rgb')):
            adapter = RGBAdapter()
        elif (group_name.endswith('_rgbw')):
            adapter = RGBWAdapter()
        else:
            adapter = OnOffSwitchAdapter()

        # Remove LinkQuality device from adapter
        if domoticz.get_plugin_config('trackLinkQuality'):
            adapter.devices.pop(0)

        return adapter
コード例 #4
0
 def handleMqttMessage(self, device, data, action, domoticz_port):
     if action == 'brightness':
         params = {
             'param': 'switchlight',
             'idx': device['idx'],
             'switchcmd': 'Set Level',
             'level': data
         }
         OnOffSwitchAdapter.callDomoticzApi(self, domoticz_port, urllib.parse.urlencode(params))
     elif action == 'onoff':
         OnOffSwitchAdapter.handleMqttMessage(self, device, data, action, domoticz_port)
     elif action == 'colorsettingrgb':
         params = {
             'param': 'setcolbrightnessvalue',
             'idx': device['idx'],
             'hex': data
         }
         OnOffSwitchAdapter.callDomoticzApi(self, domoticz_port, urllib.parse.urlencode(params))
コード例 #5
0
from adapters.dimmable_adapter import DimmableAdapter
from adapters.on_off_switch_adapter import OnOffSwitchAdapter
from adapters.scene_adapter import SceneAdapter
from adapters.temperature_adapter import TemperatureAdapter
from adapters.temperature_sensor_adapter import TemperatureSensorAdapter
from adapters.open_close_switch_adapter import OpenCloseSwitchAdapter
import Domoticz

adapter_by_type = {
    'Dimmer': DimmableAdapter(),
    'Blinds Inverted': DimmableAdapter(),
    'Blinds': DimmableAdapter(),
    'Blinds Percentage': DimmableAdapter(),
    'Blinds Percentage Inverted': DimmableAdapter(),
    'Venetian Blinds EU': OpenCloseSwitchAdapter(),
    'On/Off': OnOffSwitchAdapter(),
    'Push On Button': OnOffSwitchAdapter(),
    'Push Off Button': OnOffSwitchAdapter(),
    'Scene': SceneAdapter(),
    'Group': SceneAdapter(),
    'Thermostat': TemperatureAdapter(),
    'Door Lock': OnOffSwitchAdapter(),
    'Temp': TemperatureSensorAdapter(),
    'Temp + Humidity': TemperatureSensorAdapter(),
    'Temp + Humidity + Baro': TemperatureSensorAdapter()
}


def getAdapter(device):
    if 'SwitchType' in device and device['SwitchType'] in adapter_by_type:
        Domoticz.Debug('getAdapter SwitchType: %s' % (device['SwitchType']))
コード例 #6
0
 def publishState(self, mqtt_client, device, base_topic, value):
     OnOffSwitchAdapter.publishState(self, mqtt_client, device, base_topic,
                                     value)