luma.oled#

class platypush.plugins.luma.oled.DeviceInterface(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

class platypush.plugins.luma.oled.DeviceRotation(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: IntEnum

class platypush.plugins.luma.oled.DeviceSlot(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: IntEnum

class platypush.plugins.luma.oled.LumaOledPlugin(interface: str, device: str, port: int = 0, slot: int = 0, width: int = 128, height: int = 64, rotate: int = 0, gpio_DC: int = 24, gpio_RST: int = 25, bus_speed_hz: int = 8000000, address: int = 60, cs_high: bool = False, transfer_size: int = 4096, spi_mode: int | None = None, font: str | None = None, font_size: int = 10, **kwargs)[source]#

Bases: Plugin

Plugin to interact with small OLED-based RaspberryPi displays through the luma.oled driver.

Requires:

  • luma.oled (pip install git+https://github.com/rm-hull/luma.oled)

__init__(interface: str, device: str, port: int = 0, slot: int = 0, width: int = 128, height: int = 64, rotate: int = 0, gpio_DC: int = 24, gpio_RST: int = 25, bus_speed_hz: int = 8000000, address: int = 60, cs_high: bool = False, transfer_size: int = 4096, spi_mode: int | None = None, font: str | None = None, font_size: int = 10, **kwargs)[source]#
Parameters:
  • interface – Serial interface the display is connected to (spi or i2c).

  • device – Display chipset type (supported: ssd1306 ssd1309, ssd1322, ssd1325, ssd1327, ssd1331, ssd1351, ssd1362, sh1106). :param port: Device port (usually 0 or 1).

  • slot – Device slot (0 for back, 1 for front).

  • width – Display width.

  • height – Display height.

  • rotate – Display rotation (0 for no rotation, 1 for 90 degrees, 2 for 180 degrees, 3 for 270 degrees).

  • gpio_DC – [SPI only] GPIO PIN used for data (default: 24).

  • gpio_RST – [SPI only] GPIO PIN used for RST (default: 25).

  • bus_speed_hz – [SPI only] Bus speed in Hz (default: 8 MHz).

  • address – [I2C only] Device address (default: 0x3c).

  • cs_high – [SPI only] Set to True if the SPI chip select is high.

  • transfer_size – [SPI only] Maximum amount of bytes to transfer in one go (default: 4096).

  • spi_mode – [SPI only] SPI mode as two bit pattern of clock polarity and phase [CPOL|CPHA], 0-3 (default:None).

  • font – Path to a default TTF font used to display the text.

  • font_size – Font size - it only applies if font is set.

arc(start: int, end: int, xy: Tuple[int] | List[int] | None = None, fill: str | None = None, outline: str | None = None, width: int = 1, clear: bool = False)[source]#

Draw an arc on the canvas.

Parameters:
  • start – Starting angle, in degrees (measured from 3 o’ clock and increasing clockwise).

  • end – Ending angle, in degrees (measured from 3 o’ clock and increasing clockwise).

  • xy – Two points defining the bounding box, either as [(x0, y0), (x1, y1)] or [x0, y0, x1, y1]. Default: bounding box of the device.

  • fill – Fill color - can be black or white.

  • outline – Outline color - can be black or white.

  • width – Figure width in pixels (default: 1).

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

chord(start: int, end: int, xy: Tuple[int] | List[int] | None = None, fill: str | None = None, outline: str | None = None, width: int = 1, clear: bool = False)[source]#

Same as arc, but it connects the end points with a straight line.

Parameters:
  • start – Starting angle, in degrees (measured from 3 o’ clock and increasing clockwise).

  • end – Ending angle, in degrees (measured from 3 o’ clock and increasing clockwise).

  • xy – Two points defining the bounding box, either as [(x0, y0), (x1, y1)] or [x0, y0, x1, y1]. Default: bounding box of the device.

  • fill – Fill color - can be black or white.

  • outline – Outline color - can be black or white.

  • width – Figure width in pixels (default: 1).

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

clear()[source]#

clear the display canvas.

ellipse(xy: Tuple[int] | List[int] | None = None, fill: str | None = None, outline: str | None = None, width: int = 1, clear: bool = False)[source]#

Draw an ellipse on the canvas.

Parameters:
  • xy – Two points defining the bounding box, either as [(x0, y0), (x1, y1)] or [x0, y0, x1, y1]. Default: bounding box of the device.

  • fill – Fill color - can be black or white.

  • outline – Outline color - can be black or white.

  • width – Figure width in pixels (default: 1).

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

image(image: str)[source]#

Draws an image to the canvas (this will clear the existing canvas).

Parameters:

image – Image path.

line(xy: Tuple[int] | List[int] | None = None, fill: str | None = None, outline: str | None = None, width: int = 1, curve: bool = False, clear: bool = False)[source]#

Draw a line on the canvas.

Parameters:
  • xy – Sequence of either 2-tuples like [(x, y), (x, y), …] or numeric values like [x, y, x, y, …].

  • fill – Fill color - can be black or white.

  • outline – Outline color - can be black or white.

  • width – Figure width in pixels (default: 1).

  • curve – Set to True for rounded edges (default: False).

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

pieslice(start: int, end: int, xy: Tuple[int] | List[int] | None = None, fill: str | None = None, outline: str | None = None, width: int = 1, clear: bool = False)[source]#

Same as arc, but it also draws straight lines between the end points and the center of the bounding box.

Parameters:
  • start – Starting angle, in degrees (measured from 3 o’ clock and increasing clockwise).

  • end – Ending angle, in degrees (measured from 3 o’ clock and increasing clockwise).

  • xy – Two points defining the bounding box, either as [(x0, y0), (x1, y1)] or [x0, y0, x1, y1]. Default: bounding box of the device.

  • fill – Fill color - can be black or white.

  • outline – Outline color - can be black or white.

  • width – Figure width in pixels (default: 1).

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

point(xy: Tuple[int] | List[int] | None = None, fill: str | None = None, clear: bool = False)[source]#

Draw one or more points on the canvas.

Parameters:
  • xy – Sequence of either 2-tuples like [(x, y), (x, y), …] or numeric values like [x, y, x, y, …].

  • fill – Fill color - can be black or white.

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

polygon(xy: Tuple[int] | List[int] | None = None, fill: str | None = None, outline: str | None = None, clear: bool = False)[source]#

Draw a polygon on the canvas.

Parameters:
  • xy – Sequence of either 2-tuples like [(x, y), (x, y), …] or numeric values like [x, y, x, y, …].

  • fill – Fill color - can be black or white.

  • outline – Outline color - can be black or white.

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

rectangle(xy: Tuple[int] | List[int] | None = None, fill: str | None = None, outline: str | None = None, width: int = 1, clear: bool = False)[source]#

Draw a rectangle on the canvas.

Parameters:
  • xy – Two points defining the bounding box, either as [(x0, y0), (x1, y1)] or [x0, y0, x1, y1]. Default: bounding box of the device.

  • fill – Fill color - can be black or white.

  • outline – Outline color - can be black or white.

  • width – Figure width in pixels (default: 1).

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).

text(text: str, pos: Tuple[int] | List[int] = (0, 0), fill: str = 'white', font: str | None = None, font_size: int | None = None, clear: bool = False)[source]#

Draw text on the canvas.

Parameters:
  • text – Text to be drawn.

  • pos – Position of the text.

  • fill – Text color (default: white).

  • fontfont type override.

  • font_sizefont_size override.

  • clear – Set to True if you want to clear the canvas before writing the text (default: False).