Hallo,
vielen Dank für die Hilfe. Jetzt sieht Sie so aus wie vorher.
Merci
Hallo,
vielen Dank für die Hilfe. Jetzt sieht Sie so aus wie vorher.
Merci
Hallo erstmal und vielen Dank für das Forum und die tolle Arbeit von lubeda für Anbindung von LED-Matrizen. Super Projekt.
Ich hätte da auch gleich mal ne Frage. Ich möchte gerne 2 8x32 Matrix Display untereinander mit 2 x ESP8266 betreiben. Funktioniert auch soweit. Kann man die Displays irgendwie untereinander synchronisieren, so das sie nicht auseinander driften? Kann man die Uhrzeit auch deaktivieren? Beim Datum gehts ja.
Danke schonmal
Martin
Eine Möglichkeit wäre z.B. das automatische Weiterschalten der Screens zu verhindern und das über HA zu erledigen. Vielleicht über ein API-Call “next_screen” oder so ähnlich. Dann würden beide ESP zur fast gleichen Zeit das übermittelt bekommen. Dann würde es kein auseinander driften geben. Nur so’ne Idee.
Martin
Moin. Hat sich erledigt. Habe ne Lösung mit “del_screen” gefunden über Automatisierung oder Script-Sequenz. Will dann später über Alexa bestimmte Screens einblenden können.
Danke
Hello everyone,
recently the icons on my Ulanzi Clock (integrated via the ID at LaMetric: Web) have been “destroyed” - i.e. they are no longer displayed correctly (see photo).
However, everything is displayed correctly on the ulanzi-easy.html created when installing the firmware:
It started shortly after installing a new firmware version (which actually worked without any problems).
Several attempts with new and old firmware have not helped - is there a way to solve the problem? And if so, which one? I am grateful for any help.
Bernd
Have you ever tried AWREIX3-firmware on your Ulanzi Clock?
This works for me on three clocks without any problems.
3 YT-videos in German:
and another one in English:
Hallo harryp,
ich schau mir gerade die awtrix Firmware an. Ich konnte mittlerweile die TC001 auf diese Firmware umstellen (lesson learned - don’t use USB3) und versuche jetzt mit Automationen etwas darzustellen. Das klappt noch nicht - aber zumindest ging die Einbindung im HA mit den Videos recht gut.
Vielen Dank für deinen Tipp!
Bernd
Das ist in den verlinkten Videos (und es gibt auf YT noch mehr), gut beschrieben.
Ich habe mir dafür noch folgende HACS-Integration
“homeassistant-custom_components-awtrix”
installiert, mache aber alles mit Node-Red.
das Node-Red Addon installiere ich gerade
… und der Kaninchenbau wird immer tiefer …
Ist aber aber kein NR-Addon, sondern eine HA-HACS-Integration, die Du sowohl für HA-Automatisierungen, als auch in NR nutzen kannst.
Tibber Price Chart Script
I made a tibber price chart with following features:
Credits to: anon71759204 for the idea (Hourly Tibber rates on matrix displays (e.g. Ulanzi TC001)
Automation can be easily made with toggle helper to switch on/off
Script: Tibber Price Chart to Awtrix Display
alias: Tibber Price Chart to Awtrix Display
description: Draw Tibber Price Chart to Awtrix Display
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_a9b7ac/custom/tibberPriceChart
payload: >-
{% set prices_today = state_attr("sensor.tibber_prices", "today") %} {%
set prices_tomorrow = state_attr("sensor.tibber_prices", "tomorrow") %}
{% set prices_today_and_tomorrow = prices_today|list +
prices_tomorrow|list %}
{% set my_now = now().year|string + "-" + now().month|string + "-" +
((now().day)|int + 0)|string + "T" + (now().hour-1)|string +
":00:00.000+01:00" %}
{% set ns = namespace(min_price=100.0, max_price=0.0, now_index=-1) %}
{# Get index of current hour in price array #} {%- for hour_cost in
prices_today_and_tomorrow -%}
{%- if as_timestamp(hour_cost.startsAt) == as_timestamp(my_now) -%}
{%- set ns.now_index = loop.index -%}
{%- break %}
{%- endif %}
{%- endfor %}
{# Get start_index in price array #} {% if
prices_today_and_tomorrow|length > 24 -%}
{% if ns.now_index > (48-16) -%}
{% set start_index = 48-24 -%}
{% else -%}
{% set start_index = ns.now_index - 7 -%}
{% endif -%}
{% else -%}
{% set start_index = 0 -%}
{% endif -%}
{# get ns.min_prices, ns.max_prices and diff_price #} {%- for i in
range(start_index,start_index+24) %}
{%- if float(prices_today_and_tomorrow[i].total) < float(ns.min_price) -%}
{%- set ns.min_price = float(prices_today_and_tomorrow[i].total) -%}
{%- endif -%}
{%- if float(prices_today_and_tomorrow[i].total) > float(ns.max_price) -%}
{%- set ns.max_price = float(prices_today_and_tomorrow[i].total) -%}
{%- endif -%}
{%- endfor %} {%- set diff = ns.max_price - ns.min_price %}
{% macro getY(price) -%}
{{ 6 - int((price - ns.min_price) * 6 / diff + 0.5) -}}
{% endmacro -%}
{%- macro getColor(level) -%}
{%- if level == "VERY_CHEAP" -%}
"#00ff00" {#- Grün -#}
{%- elif level == "CHEAP" -%}
"#48a43f" {#- Gelbgrün -#}
{%- elif level == "NORMAL" -%}
"#ffff00" {#- Gelb -#}
{%- elif level == "EXPENSIVE" -%}
"#ff8800" {#- Orange -#}
{%- elif level == "VERY_EXPENSIVE" -%}
"#ff0000" {#- Rot -#}
{%- endif -%}
{%- endmacro -%}
{"draw":[
{# draw current hour -#}
{"dp":[{{ns.now_index-start_index}},7,"#ffffff"]},
{#- draw price chart-#}
{%- for i in range(start_index,start_index+24) %}
{"dl":[{{i-start_index}},6,{{i-start_index}},{{getY(prices_today_and_tomorrow[i].total)}},{{getColor(prices_today_and_tomorrow[i].level)}}]},
{%- endfor -%}
{#- draw min or max indicator #}
{%- if (prices_today_and_tomorrow[ns.now_index].total*100)|round == (ns.max_price*100)|round %}
{"dl":[27,6,29,6,"#ffffff"]},
{"dp":[28,7,"#ffffff"]},
{%- endif -%}
{%- if (prices_today_and_tomorrow[ns.now_index].total*100)|round == (ns.min_price*100)|round -%}
{"dp":[28,6,"#ffffff"]},
{"dl":[27,7,29,7,"#ffffff"]},
{%- endif -%}
{#- draw current price in Cent #}
{"dt":[24,0,"{{(prices_today_and_tomorrow[ns.now_index].total*100)|round}}",{{getColor(prices_today_and_tomorrow[ns.now_index].level)}}]}
]}
Automation: Awtrix Tibber Price Chart
alias: Awtrix Tibber Price Chart
description: Upon tibber price change trigger an update to the awtrix tipper price chart
triggers:
- trigger: state
entity_id:
- sensor.tibber_prices
id: tibber_price_update_available
- trigger: state
entity_id:
- input_boolean.awtrix_toggle_tibber_prices
to: "on"
id: toggle_helper_on
- trigger: state
entity_id:
- input_boolean.awtrix_toggle_tibber_prices
to: "off"
id: toggle_helper_off
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id:
- tibber_price_update_available
- toggle_helper_on
sequence:
- action: script.test_tibber_price_chart
data: {}
- action: mqtt.publish
data:
qos: 0
retain: false
topic: awtrix_a9b7ac/switch
payload: |-
{
"name": "tibberPriceChart"
}
- conditions:
- condition: trigger
id: toggle_helper_off
sequence:
- action: mqtt.publish
metadata: {}
data:
qos: "0"
retain: false
topic: awtrix_a9b7ac/custom/tibberPriceChart
mode: single
Helper: Awtrix Toggle Tibber Prices
Entity ID: input_boolean.awtrix_toggle_tibber_prices
Type: Input Boolean