Ulanzi Smart Pixel Uhr

Die Ulanzi Pixel Clock TC001 kostet ca. 40€ und besitzt 8×32 RGB-Pixel. Drin steckt ein ESP32 auf dem ESPHome oder Awtrix laufen kann. Die Pixel Clock lässt sich mit MQTT von Homeassistant aus ansteuern. Neben der Anzeige von statischen und animierten GIFs verfügt sie über Sensoren für Helligkeit, Luftfeuchtigkeit und Temperatur. Die Sensoren und der Lautsprecher sind jedoch von grauseliger Qualität und nicht zu gebrauchen. Den eingebauten Akku hätte man sich auch sparen sollen.

Bildschirmfoto 2024-04-01 um 11.08.16.

Hier ist die Awtrix-Flash-Anleitung: klick. Im Kern läuft das wie immer, nur daß das Timing nach dem Anschalten etwas hakelig ist. Wenn man nicht genau den richtigen Zeitpunkt erwischt, klappt es nicht. Nach dem 10. Versuch ging es dann aber, da hilft einfach nur Geduld.

Ich benutze zwei Ulanzis für verschiedene Räume, , desegen sind da zwei MQTT-Publish-Aktionen drin.. Bis auf Uhrzeit habe ich über das Geräte-Menü alle internen Apps abgeschaltet. Die Uhrzeit ist also die Standard-Anzeige, die dauerhaft aktiv ist.

Dann schiebe ich alle 15 Sekunden für 10 Sekunden einen Notify auf die Awtrix. Das ergibt dann genau die vier Werte die ich regelmäßig anzeigen will:

  • Aktueller Stromverbrauch
  • Aktueller PV-Ertrag
  • Ladezustand der Fenecon-Batterie
  • Temperatur des Warmwasserspeichers

Wenn die 10 Sekunden für die Anzeige vorbei sind, kommt wieder für 5 Sekunden die Uhrzeit, bis der nächste Wert kommt.

Bildschirmfoto 2024-04-01 um 11.45.45.

Dazu habe ich mir vier Automatisierungen gebaut, die im Kern alle so aus sehen:

alias: Awtrix PV Batterie
description: Awtrix PV Batterie
trigger:
- platform: time_pattern
  seconds: „15“
condition: []
action:
- service: mqtt.publish
  metadata: {}
  data:
    qos: „2“
    topic: awtrix_4711/notify
    retain: false
    payload: >-
      {text: "Akku {{ states.sensor.fems_esssoc.state|round(0,default=0)}}%", "color": "#99ff66“, "duration": 10}
- service: mqtt.publish
  metadata: {}
  data:
  qos: „2“
  topic: awtrix_4712/notify
  retain: false
  payload: >-
    {text: "Akku {{ states.sensor.fems_esssoc.state|round(0,default=0)}}%", "color": "#99ff66“, "duration": 10}
mode: single

Etwas blöd beim Basteln ist, daß Awtrix bei Fehlern in der Payload nicht sehr gesprächig ist, sondern das nicht versteht und dann auch kommentarlos nichts anzeigt. Das hat mich am Anfang ziemlich Zeit gekostet. Ich hatte den Fehler irgendwo im MQTT vermutet und nicht in der Payload. Da habe ich die ganze MQTT Konfiguration diverse Male völlig unnötig auf- und abgebaut.

Die 8-Bit Grafik sieht so schön Retro aus 🙂