8x32 Pixel Uhr mit HomeAssistant Anbindung

Hallo Smarthomer und Danke Simon,
endlich ein deutsches Homeassistant Forum wo etwas los ist. Ich möchte anfangen mit einer kleinen Angeberei:

Vielleicht kennt ihr das Youtube-Video

Da wird meine ESPHOME Komponente vorgestellt, die Doku ist hier: EsphomeMatrix

Man kann nicht nur die bekannten flexiblen 8x32 RGB Matrizen nehmen, neuerdings wird auch ein fertige Modul von Ulanzi Model TC001 unterstützt.
Falls es euch gefällt spendet und geht mir einen Stern auf Github, Falls ihr Fragen habt, gerne auch hier.

@Simon42: Klasse und weiter so.

Ludger

11 „Gefällt mir“

Hallo Ludger,
vielen Dank für dein Tolles Projekt.
Ich hätte da noch eine Frage:
Ich benutze Home Assistant um das Display zu steuern.
Über die Api würde ich gerne folgendes machen:

    - service: delscreen
      variables:
        Scr_Name: string
      then:
        lambda: |-
          id(rgb8x32)->del_screen(Scr_Name);

Hiermit würde ich den Alarm Text ggfs. früher killen.
Habe ich hier einen Denkfehler, denn über Home Assistant kann ich zwar “delscreen” ausführen, aber es hat nicht den gewünschten Effekt.
Bei deinem Beispiel scheint auch ein Fehler zu sein:

    - service: alarm
      variables:
        Screen_name: string
        text: string
        duration: int
      then:
        lambda: |-
          id(rgb8x32)->add_screen(Screen_name,text,duration,20,true);
          id(rgb8x32)->force_screen(Screen_name);

Ich habe die 1. Variable hier auf Screen_name geändert, da es ja nicht wirklich das Icon ist.
Gruß
Normen

Hi, danke. Wenn ich Dir helfen konnte kannst Du mir gerne einen Github Stern geben :wink:

Für das:

 - service: delscreen
      variables:
        Scr_Name: string
      then:
        lambda: |-
          id(rgb8x32)->del_screen(Scr_Name);

brauchst Du keine Service Definition auf der Uhr. Der del_screen service steht direkt in Homeassistant zur Verfügung (developer tools => service)
z. B. so in yaml:

service: esphome.ulanzi_del_screen
data:
  icon_name: solar_icon

“ulanzi” heißt meine Uhr und “solar_icon” das Icon.

- service: alarm
      variables:
        icon_name: string
        text: string
        lifetime: int
      then:
        lambda: |-
          id(rgb8x32)->add_screen(icon_name,text,lifetime,30,true); 
          id(rgb8x32)->force_screen(icon_name);

funktioniert bei mir. Kannst Du mal den Fehler posten?

Ludger

Ich glaube das Problem ist gelöst. Da scheint eine Verzögerung drin zu sein, wenn ich eine Nachricht über 9 Min duration eingebe und dann (ha wäre mein Icon) del_screen ha mit dienst ausführen auslöse dauert es ca. 30 Sekunden bis die Nachricht verschwindet :slight_smile:
Die Verzögerung hatte ich nicht drin. Ich bin wirklich der Meinung gewesen das der Bildschirm (den man mit add ja erzeugt mit einem Beliebigen Namen gefüllt wird)
Danke schonmal. Funktioniert erst mal alles :slight_smile:
Gruß
Normen

Den Stern habe ich natürich gegeben :slight_smile:

Eigentlich sollte del_screen sofort wirken, ich prüfe das mal. Danke

Hallo @lubeda,

Auch von mir vielen Dank für das tolle Projekt. Ich probiere diese Integration ([Afvalbeheer])aus , um eine Home Assistant automation nach deinen Schema “Müllanzeige” hinzukriegen. Leider gelingt mir das nicht. Wie kann ich das am besten umsetzen?

service: esphome.ulanzi_screen
data:
  icon_name: >-
    avri{{ states("sensor.avri_morgen") | replace("GFT","gft")|
    replace("Papier","papier")| replace("PMD","pmd|") | truncate(3,true,"") 
    }}  
  text: "{{ states(\"sensor.avri_morgen\")}}\""

Dankeschön für die Hilfe

Was funktioniert den nicht? Kommt das icon aber der Text nicht?

Dann würde ich mal

text: |-
  {{ states("sensor.avri_morgen")}}

In deinem Beispiel ist hinten ein \" zuviel

Schon angeschaut :slight_smile: warte nur auf die blöde Lieferung vom Ali :grinning:

1 „Gefällt mir“

@lubeda Gibt es eine Möglichkeit, Esphomatrix auf eine AWTRIX2 zu flashen? Mit funktionierendem LDR?

Danke & Gruß

Klar, aber nicht so einfach.

Du musst die Logik für die Helligkeitsregeln irgend wie mit ESP HOME Bordmitteln neu programmieren. Vielleicht gibt es im Quellcode von Awtrix Hinweise wie man das macht.

Den LDR kann man als ADC einbinden und jenachdem welchen Messwert man hat die Helligkeit des Displays einstellen.

Wenn ich mal Langeweile habe kann ich mir das ansehen, also nicht kurzfristig.

1 „Gefällt mir“

also panel ist da und erfolgreich eingerichtet :slight_smile: tolle arbeit @lubeda

musste nur das

yoffset: 2 

auf 6 ändern da hier die schrift zu hoch war

jetzt erstmal gehöuse drucken oder evtl aus holz bauen … ok muss nochmal drüber schlafen und am abend etwas mit dem display spielen :slight_smile:

STERN ist raus :slight_smile:

1 „Gefällt mir“

Hallo,
Die icon funktioneren nicht. Das ist die benaming von die icons: avri_gft, avri_papier, avri_pmd

hast du die auch lokal mit abgespeichert (in welchen ordner) oder nutz du lameid: xxxx

Details oder Fehlermeldung?

Hi Community,

Ulanzi(ESP) def.?
habe seit ca. 2 Wochen eine Ulanzi mit esphomematrix in Betrieb.
Habe die Vorlage von blakadder genommen.
Zusätzlich ca. 20 lameid und eine Helligkeitsregelung.
Gestern ist die Uhr leider stehen geblieben, aber die Matrix hat noch geleuchtet.
Akku ist geladen und mit Netzteil angeschlossen.
Habe dann die Ulanzi mit links und rechts Button ausgeschaltet und wollte sie wieder einschalten, aber leider ohne Erfolg. Display bleibt dunkel.
Ich kann auch leider nicht über ESPHome mit USB neu flashen, mein Rechner erkennt die Ulanzi nicht mehr.
Hat jemand eine ähnliche Erfahrung gemacht, oder kann noch einen Tipp geben?
Grüße

Nö, hatte ich noch nicht.
Aufgrund deiner Beschreibung würde ich auch auf einen defekten ESP32 tippen :sob:. Hatte ich aber noch nie. Selbst wenn ich mal beim Testen eine falsche Firmware geflasht hatte ging USB immer und nach ein paar Sekunden sogar wieder das flashen über WLAN.

So, LDR, Buttons und DF-Player habe ich laufen mit der AWTRIX2-Platine und ESPhomatrix.

Wo ich nicht weiterkomme: Die 4 8x8 LED-Panels. Da wird nur Murks dargestellt.

@lubeda Hast Du da ne Idee für den Pixelmapper?

Nicht wirklich, aber ich würde mal das probieren:

    width: 32
    height: 8
    pixel_mapper: |-
      return ((int) (x/8 * 64)) + x % 8 + y * 8;

Wenn es läuft nehme ich gerne einen Stern auf Github als Belohnung! Wenn nicht, auch!!

1 „Gefällt mir“