Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Oh - das ist aber nicht schön, hoffe, der kriegt sich wieder ein. Das mit dem .state konntest Du dann vermutlich nicht mehr testen?der ESp hat sich weggehängt
Danke, Dir auch! Und hey, immerhin hast Du einen Sensor mit der richtigen Ausgabe angelegt, von da aus sollte es eigentlich nurnoch ein kleiner Schritt sein... wird es dann hoffentlich auch (und azrael783 kann nen bisschen die Hände über dem Kopf zusammenschlagen ohne dass es schon gelöst ist).Ich wünsche Dir noch nen schönes Wochenende...
"%s.1f °C"
stört. Ich gebe es ohne das "C" wie folgt an: "%s.1f°"
und das funktioniert..has_state()
soll vermeiden, dass wenn der Wert mal nicht vorhanden ist - weil HA zb grade neu startet - etwas falsch dargestellt wird, aber ich glaube das hattet ihr ja bereits geklärt./config/esphome/clean-101.yaml: In lambda
function: /config/esphome/clean-101.yaml:72:68: warning: format '%f' expects argument of type 'double', but argument 6 has type 'esphome::homeassistant::HomeassistantSensor*' [-Wformat=]
it.printf(150 ,0, id(digit_font), "%.1f°C", id(forecast_temperature));
^
[14:21:09][D][homeassistant.sensor:024]: 'sensor.forecast': Got state 11.40 [14:21:09][D][sensor:125]: 'Vorhersage von Home Assistant': Sending state 11.40000 with 1 decimals of accuracy
/config/esphome/clean-101.yaml: In lambda function:
/config/esphome/clean-101.yaml:72:67: warning: format '%s' expects argument of type 'char*', but argument 6 has type 'esphome::homeassistant::HomeassistantSensor*' [-Wformat=]
it.printf(150 ,0, id(digit_font), "%.1s°", id(forecast_temperature));
Prima. Sobald der hier steht erklär ich Dir gerne noch wie genau das warum funktioniert wenn es Dich interessiert - ist einfacher, den Stück für Stück auseinander zu nehmen als freihand etwas zu erläutern.ok, das mit dem code mache ich dann noch....
- platform: template
sensors:
forecastlow:
value_template: >
{{ state_attr('weather.home', 'forecast')[0]['templow'] }}
friendly_name: VorhersageLow
forecasthigh:
value_template: >
{{ state_attr('weather.home', 'forecast')[0]['temperature'] }}
friendly_name: VorhersageHigh
- platform: homeassistant
id: forecastlow
name: "Vorhersage min von Home Assistant"
entity_id: sensor.forecastlow
- platform: homeassistant
id: forecasthigh
name: "Vorhersage max von Home Assistant"
entity_id: sensor.forecasthigh
# Example configuration entry
spi:
clk_pin: GPIO14
mosi_pin: GPIO12
display:
- platform: max7219digit
cs_pin: GPIO15
num_chips: 8
scroll_delay: 20s
intensity: 0
lambda: |-
it.scroll( true, max7219digit::STOP, 350, 5000, 5000);
it.strftime(10, 0, id(digit_font), "%H:%M", id(hass_time).now());
it.printf(38, 0, id(digit_font), "Uhr ");
if (id(forecastlow).has_state()) {
it.printf(71, 0, id(digit_font), "Vorh min: %.1f°C ", id(forecastlow).state);
}
if (id(forecasthigh).has_state()) {
it.printf(155, 0, id(digit_font), " max: %.1f°C ", id(forecasthigh).state);
}
it.strftime(222, 0, id(digit_font), " _%d-%h-%y_ ", id(hass_time).now() );
font:
- file: "pixelmix.ttf"
id: digit_font
size: 8
- platform: homeassistant
anspricht eben mit diesem kleinen Umweg.- platform: template
verwenden wir, da wir hier innerhalb von value_template: >
quasi beliebige Ausgaben aus allem erzeugen können, das innerhalb von HA erreichbar ist (auch mehrzeilige Ausgaben, dafür muss daran nur ein Bindestrich angehängt werden: value_template: >-
).state_attr()
gearbeitet, hier eben für die Entität weather.home mit dem Attribut forecast. Da dieses Attribut verschachtelt ist müssen wir die einzelnen Unterpunkte mit Zahlen ansprechen, also 0 für morgen, 1 für übermorgen... und dadrin dann den genaueren Wert wie templow oder temperature wählen (kleine Randbemerkung, bei dem friendly_name:
dürftest Du auch Leerzeichen verwenden).- platform: homeassistant
heran, damit ist klar, wohin man sich wenden muss, um die Sensorenwerte zu bekommen.id()
kannst Du eben an die vorher definierten Objekte heran, mittels .state
an den Wert davon.has_state()
besagt, dass es eine mit eingebaute Funktion hat, die aufgerufen werden kann um zu informieren, ob sie aktuell einen Zustand / Wert besitzt.state_attr()
oder id()
- das würde den Funktionalitäten wie "fahren" oder "bremsen" entsprechen, wie genau das funktioniert und was dabei passiert musst Du garnicht wissen, Hauptsache, es tut wie es soll / gibt die gewünschten Dinge oder Informationen aus - während Dinge ohne Klammern Eigenschaften entsprechen, also z.B. [0]['templow']
oder .state
, das kann man direkt "angucken" - wie die Farbe eines Autos oder die Anzahl der Türen.