Exemple #1
0
    def send_message(self, message="", **kwargs):
        """Send a message mycroft to speak on instance."""

        text = message
        mycroft = MycroftAPI(self.mycroft_ip)
        if mycroft is not None:
            mycroft.speak_text(text)
        else:
            _LOGGER.log("Could not reach this instance of mycroft")
Exemple #2
0
    def send_message(self, message="", **kwargs):
        """Send a message mycroft to speak on instance."""
        from mycroftapi import MycroftAPI

        text = message
        mycroft = MycroftAPI(self.mycroft_ip)
        if mycroft is not None:
            mycroft.speak_text(text)
        else:
            _LOGGER.log("Could not reach this instance of mycroft")
 def test_squint_eyes(self, mock_create_conn):
     # Create simple replacement websocket object and return it
     # when creating sockets
     mock_ws = MockWS()
     mock_create_conn.return_value = mock_ws
     # Test that init calls create_connection with correct param
     m = MycroftAPI('127.0.0.1')
     mock_create_conn.assert_called_with("ws://" + '127.0.0.1' +
                                         ":8181/core")
     # Check that message bus message looks like what we expect
     # Expected data to websocket
     mycroft_type = '"enclosure.eyes.narrow"'
     message = '{"type": ' + mycroft_type + '}'
     m.squint_eyes()
     self.assertEqual(message, mock_ws.message)
 def test_eyes_look(self, mock_create_conn):
     # Create simple replacement websocket object and return it
     # when creating sockets
     mock_ws = MockWS()
     mock_create_conn.return_value = mock_ws
     # Test that init calls create_connection with correct param
     m = MycroftAPI('127.0.0.1')
     mock_create_conn.assert_called_with("ws://" + '127.0.0.1' +
                                         ":8181/core")
     # Check that message bus message looks like what we expect
     # Expected data to websocket
     side = "u"
     mycroft_type = '"enclosure.eyes.look"'
     mycroft_data = '{"side": "%s"}, ' \
                    '"context": null' % side
     message = '{"type": ' + mycroft_type + \
               ', "data": ' + mycroft_data + '}'
     m.eyes_look(side)
     self.assertEqual(message, mock_ws.message)
 def test_ws_connection(self, mock_create_conn):
     # Create simple replacement websocket object and return it
     # when creating sockets
     mock_ws = MockWS()
     mock_create_conn.return_value = mock_ws
     # Test that init calls create_connection with correct param
     m = MycroftAPI('127.0.0.1')
     mock_create_conn.assert_called_with("ws://" + '127.0.0.1' +
                                         ":8181/core")
     # Check that message bus message looks like what we expect
     text = 'hello brian'
     # Expected data to websocket
     mycroft_speak = ('"{}"'.format(text))
     mycroft_type = '"speak"'
     mycroft_data = '{"expect_response": false, "utterance": %s}, ' \
                    '"context": null' % mycroft_speak
     message = '{"type": ' + mycroft_type + \
               ', "data": ' + mycroft_data + '}'
     m.speak_text(text)
     self.assertEqual(message, mock_ws.message)
    def __init__(self, light):

        # Fixture configuration
        self._host = light.get(CONF_HOST)

        self._name = light.get(CONF_NAME)
        
        self._brightness = light.get(CONF_DEFAULT_LEVEL, 0)
        self._rgb = light.get(CONF_DEFAULT_COLOR, COLOR_MAP)

        # Brightness needs to be set to the maximum default RGB level, then
        # scale up the RGB values to what HA uses
        self._brightness = max(self._rgb) * (self._brightness/255)

        if self._brightness > 0:
            self._state = STATE_ON
        else:
            self._state = STATE_OFF

        # Create Mycroft API.
        self._mycroft = MycroftAPI(self._host)
        
        _LOGGER.debug(f"Intialized Mycroft {self._name}")
 def test_os_error(self):
     self.assertRaises(OSError, MycroftAPI.__init__(self, mycroft_ip='1.1'))
class MycroftInstance(LightEntity):
    """Representation of a Mycrof instance."""

    def __init__(self, light):

        # Fixture configuration
        self._host = light.get(CONF_HOST)

        self._name = light.get(CONF_NAME)
        
        self._brightness = light.get(CONF_DEFAULT_LEVEL, 0)
        self._rgb = light.get(CONF_DEFAULT_COLOR, COLOR_MAP)

        # Brightness needs to be set to the maximum default RGB level, then
        # scale up the RGB values to what HA uses
        self._brightness = max(self._rgb) * (self._brightness/255)

        if self._brightness > 0:
            self._state = STATE_ON
        else:
            self._state = STATE_OFF

        # Create Mycroft API.
        self._mycroft = MycroftAPI(self._host)
        
        _LOGGER.debug(f"Intialized Mycroft {self._name}")
        
    @property
    def host(self):
        """Return the Mycroft host."""
        return self._host

    @property
    def name(self):
        """Return the display name of this Mycroft."""
        return self._name

    @property
    def brightness(self):
        """Return the brightness of Mycroft's eyes."""
        return self._brightness
    
    @property
    def rgb(self):
        """Return the RGB values of Mycroft's eyes."""
        return self._rgb

    @property
    def is_on(self):
        """Return true if light is on."""
        return self._state == STATE_ON

    @property
    def hs_color(self):
        """Return the HS color value."""
        if self._rgb:
            return color_util.color_RGB_to_hs(*self._rgb)
        else:
            return None

    @property
    def min_mireds(self):
        """Return the coldest color_temp that this light supports."""
        # Default to the Philips Hue value that HA has always assumed
        # https://developers.meethue.com/documentation/core-concepts
        return 192

    @property
    def max_mireds(self):
        """Return the warmest color_temp that this light supports."""
        # Default to the Philips Hue value that HA has always assumed
        # https://developers.meethue.com/documentation/core-concepts
        return 448

    @property
    def supported_features(self):
        """Flag supported features."""
        return (SUPPORT_BRIGHTNESS | SUPPORT_COLOR)

    @property
    def should_poll(self):
        return False

    @asyncio.coroutine
    def async_turn_on(self, **kwargs):
        """Instruct the light to turn on."""
        self._state = STATE_ON

        # Update state from service call
        if ATTR_BRIGHTNESS in kwargs:
            self._brightness = kwargs[ATTR_BRIGHTNESS]

        if self._brightness == 0:
            self._brightness = 255

        if ATTR_HS_COLOR in kwargs:
            self._rgb = color_util.color_hs_to_RGB(*kwargs[ATTR_HS_COLOR])

        if self._mycroft is not None:
            self._mycroft.eyes_color(*scale_rgb_to_brightness(self._rgb, self._brightness))

        self.async_schedule_update_ha_state()
        
        _LOGGER.debug(f"Turned on Mycroft {self._name}")

    @asyncio.coroutine
    def async_turn_off(self, **kwargs):
        """Instruct the light to turn off."""
        self._state = STATE_OFF
        if self._mycroft is not None:
            self._mycroft.eyes_color(0, 0, 0)
        self.async_schedule_update_ha_state()
        _LOGGER.debug(f"Turned off Mycroft {self._name}")

    def update(self):
        """Fetch update state."""