🇩🇪Basics (Erste Schritte für Anfänger) - gickowtf/pixoo-homeassistant GitHub Wiki

In diesem Teil werde ich etwas weiter ausholen aber ich denke wenn dies verstanden ist kann man mit der Pixoo Integration alle möglichkeiten ausnutzen.

Für das Beispiel habe ich ein extra sensor sensor.example erstellt. devtools.jpg

[!INFO] Der Sensor hat den State 1337 diesen kann man mit der Jinja template Engine wie folgt ansprechen: {{ states("sensor.example") }} was die folgende ausgabe: 1337 ergibt.

In den Entwickler tools kann man dies im Tab Template überprüfen.

template_editor.jpg

Wenn wir also den State des sensors sensor.example auf unserem Pixoo Display ausgeben wollen können wir dies mit folgendem Code erreichen: Navigiere dazu in die Einstellungen / Geräte und Dienste / Integration / Divoom Pixoo 64 und dann auf Konfigurieren

configure.jpg

- page_type: components
  components:
    - type: text
      position: [0, 0]
      content: "{{ states('sensor.example') }}"

Die ausgabe auf dem Display sieht dann wie folgt aus:

1337_preview.png

Okay das ist der erste Erfolg!

Als nächstes passen wir die Position, Textfarbe und Font an: Die einzelnen Farben und möglichen Fonts sind in der Readme beschrieben. Farben kann man auch als [R, G, B] angeben.

- page_type: components
  components:
    - type: text
      position: [10, 20] # 10 = von links nach rechts und 20 von oben nach unten versetzt
      content: "{{ states('sensor.example') }}"
      font: gicko
      color: yellow

Fügen wir im nächsten Schritt ein Bild hinzu. Bilder können von einer URL, Pfad oder als Base64 eingefügt werden Image Readme

In unserem Beispiel nutzen wir image_path da das Bild bereits in der Installation der Integration vorhanden ist.

- page_type: components
  components:
    - type: text
      position: [10, 20] # 10 = von links nach rechts und 20 von oben nach unten versetzt
      content: "{{ states('sensor.example') }}"
      font: gicko
      color: yellow
    - type: image
      position: [5,5]
      image_path: "/config/custom_components/divoom_pixoo/img/haus.png"
      resample_mode: box
      height: 64

Als nächstes fügen wir ein rectangle ein und gehen auf layering (Ebenen) ein. Rectangle Readme

Im ersten Beispiel schreiben wir bewusst als letzte den - type: rectangle in die configuration.

- page_type: components
  components:
    - type: text
      position: [10, 20] # 10 = von links nach rechts und 20 von oben nach unten versetzt
      content: "{{ states('sensor.example') }}"
      font: gicko
      color: yellow
    - type: image
      position: [5,5]
      image_path: "/config/custom_components/divoom_pixoo/img/haus.png"
      resample_mode: box
      height: 64
    - type: rectangle
      position: [5,5]
      size: [30,  30]
      color: red

Was ist passiert? Das Rote Viereck verdeckt den text und das bild weil die config synchron von oben nach unten gelesen wurde. Somit wurde das Rote Viereck auch zuletzt hinzugefügt und verdeckt nun text und bild.

Die Lösung ist nun das Layering. Wenn wir das Rote Viereck als Hintergrund von Bild und Text haben wollen sollten wir dies auch zuerst in die Config schreiben.

- page_type: components
  components:
    - type: rectangle
      position: [5,5]
      size: [30,  30]
      color: red
    - type: text
      position: [10, 20] # 10 = von links nach rechts und 20 von oben nach unten versetzt
      content: "{{ states('sensor.example') }}"
      font: gicko
      color: yellow
    - type: image
      position: [5,5]
      image_path: "/config/custom_components/divoom_pixoo/img/haus.png"
      resample_mode: box
      height: 64

Nun ich hoffe ich konnte dir bis hierhin einiges näher bringen. Jetzt liegt es letztendlich an deiner Kreativität!

Als nächstes möchte ich auf verschiedene Seiten eingehen. Es wäre schliesslich langweilig wenn das Display immer nur eine Seite anzeigen würde.

Beispiel mit unserer erstellten Seite und einem ClockFace die in einem Zeit interval von 15 sekunden wechseln.

- page_type: components
  components:
    - type: rectangle
      position: [5,5]
      size: [30,  30]
      color: red
    - type: text
      position: [10, 20] # 10 = von links nach rechts und 20 von oben nach unten versetzt
      content: "{{ states('sensor.example') }}"
      font: gicko
      color: yellow
    - type: image
      position: [5,5]
      image_path: "/config/custom_components/divoom_pixoo/img/haus.png"
      resample_mode: box
      height: 64
- page_type: clock
  id: 182

Ok, nun gibt es Situation wo ich Seiten länger oder kürzer sehen möchte dafür gibt es den duration tag.

- page_type: components
  duration: 30
  components:
    - type: text
      position: [10, 20]
      content: "30 sekunden"
      font: gicko
      color: yellow
- page_type: clock
  duration: 10 # sekunden
  id: 182

Der page_type: components wird nun 30 sekunden angezeigt und der page_type: clock nur 10 sekunden.

Als nächste gibt es vielleicht Situation in der Seiten nur zu bestimmten Bedingungen angezeigt werden sollen. Hierzu gibt es das enabled tag.

Hierzu nutzen wir wieder jinja templates. Wir fragen in diesem Beispiel ab ob der state des sensor.example = 1337 ist und bekommen folglich ein true zurück da die bedingung zutrifft

{% if is_state('sensor.example', '1337') %} True {%else %} False {% endif %}

oder stark vereinfacht:

{{ is_state('sensor.example', '1337') }}

nutzen wir dies nun in unserer config, so wird nur noch der page_type: clock angezeigt da dieser true ist.

- page_type: components
  enabled: "{{ is_state('sensor.example', '1338') }}" #false
  duration: 30
  components:
    - type: text
      position: [10, 20]
      content: "30 sekunden"
      font: gicko
      color: yellow
- page_type: clock
  enabled: "{{ is_state('sensor.example', '1337') }}" #true
  duration: 10 # sekunden
  id: 182