openHASP: An MQTT driven Touchscreen / Scene controller

Check that that AP is using the 2.4GHz spectrum and that the SSID name is spelled correctly. Upper and lowercase letters matter when typing the SSID and password.

Move the Lanbon L8 near the AP and add the following commands in the serial console:

ssid myAccessPointName
pass myWifiPassword
reboot

If this still fails you can also do a factoryreset command to start afresh.

Thanks for the pointer
did double check everything

even rebooted access point

I put tasmota on it as I know all the commands and have a backlog command to paste in each time flash a Tasmota Thing which works

broken ONE

think I mite of f… it or its a bad batch

just found a SONOFF Basic and put tasmota on it and used the same backlog command and it work

sonoff basic

didn’t check before flashing it. Whether I f…k it or was like that

SO sad camper Here

just tried 7.0.0 same problem BUGGER

any other ideas …

If Tasmota has the same issue then it is likely hardware related.

The only thing I can think of is that it is a Tuya version of the Lanbon L8 and the external antenna is connected to the Tuya chip instead of the ESP32. This will cause a bad WiFi signal on the ESP32. You can remove the plastic backcover and check which chip the antenna is physically connected to. It should be possible to gently pry the antenna from the Tuya chip and connect it to the ESP32 to improve WiFi reception…

1 Like

Yeap Think its F…

here an image of the inside

only good thing is with v7 on it I can use it as a dump switch

again thanks @fvanroie for the pointer

only problem Know do I buy another one and will it be the same.

You could still try to salvage it with a different external antenna, which could be defective. Or remove the ESP32 with a hot-air station and swap it with a new one…

Good points bro. Didn’t think of that

1 Like

Hello,
maybe i get here some help. :slight_smile:
I have the Sunton ESP32-8048S070 without touch, i build a nice layout and it works now also with HA, but i discovered a strange behaviour:
When it is in idle, after roughly 5 min the backlight goes randomly off and on. This happens between 2-10min in a random pattern.
I have no Idea if this is a problem of my config of my Plate or a config problem in HA. My impression is that something in the config of the plate is triggering and switches the plate on/off but i have no idea what it could be.

A big thanks in advance for help!

code plate

{“page”:1,“comment”:“Layout top left”}
{“page”:1,“id”:50,“obj”:“obj”,“x”:0,“y”:0,“w”:50,“h”:50,“radius”:25,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:51,“obj”:“obj”,“x”:25,“y”:0,“w”:30,“h”:50,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:52,“obj”:“obj”,“x”:165,“y”:0,“w”:260,“h”:50,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:53,“obj”:“obj”,“x”:400,“y”:0,“w”:70,“h”:50,“radius”:25,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:54,“obj”:“obj”,“x”:400,“y”:25,“w”:70,“h”:70,“radius”:1,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:55,“obj”:“obj”,“x”:375,“y”:50,“w”:25,“h”:25,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:56,“obj”:“obj”,“x”:350,“y”:50,“w”:50,“h”:50,“radius”:25,“bg_color”:"#000000",“border_opa”:0}

{“page”:1,“id”:60,“obj”:“obj”,“x”:0,“y”:272,“w”:40,“h”:30,“radius”:15,“bg_color”:"#FF9935",“border_opa”:0}
{“page”:1,“id”:61,“obj”:“obj”,“x”:25,“y”:272,“w”:32,“h”:30,“radius”:0,“bg_color”:"#FF9935",“border_opa”:0}
{“page”:1,“id”:62,“obj”:“obj”,“x”:40,“y”:272,“w”:203,“h”:11,“radius”:0,“bg_color”:"#FF9935",“border_opa”:0}
{“page”:1,“id”:63,“obj”:“obj”,“x”:243,“y”:272,“w”:180,“h”:30,“radius”:0,“bg_color”:"#FF9935",“border_opa”:0}
{“page”:1,“id”:64,“obj”:“obj”,“x”:400,“y”:252,“w”:70,“h”:50,“radius”:25,“bg_color”:"#FF9935",“border_opa”:0}
{“page”:1,“id”:65,“obj”:“obj”,“x”:400,“y”:227,“w”:70,“h”:50,“radius”:1,“bg_color”:"#FF9935",“border_opa”:0}
{“page”:1,“id”:66,“obj”:“obj”,“x”:375,“y”:248,“w”:25,“h”:25,“radius”:0,“bg_color”:"#FF9935",“border_opa”:0}
{“page”:1,“id”:67,“obj”:“obj”,“x”:350,“y”:222,“w”:50,“h”:50,“radius”:25,“bg_color”:"#000000",“border_opa”:0}

{“page”:1,“id”:68,“obj”:“obj”,“x”:400,“y”:103,“w”:70,“h”:115,“radius”:1,“bg_color”:"#DD6743",“border_opa”:0}

{“page”:1,“comment”:“Layout right”}
{“page”:1,“id”:70,“obj”:“obj”,“x”:490,“y”:0,“w”:70,“h”:50,“radius”:25,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:71,“obj”:“obj”,“x”:535,“y”:0,“w”:68,“h”:50,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:72,“obj”:“obj”,“x”:490,“y”:25,“w”:70,“h”:70,“radius”:2,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:73,“obj”:“obj”,“x”:490,“y”:103,“w”:70,“h”:140,“radius”:2,“bg_color”:"#96A0FF",“border_opa”:0}
{“page”:1,“id”:74,“obj”:“obj”,“x”:490,“y”:250,“w”:70,“h”:170,“radius”:2,“bg_color”:"#DD6743",“border_opa”:0}

{“page”:1,“id”:75,“obj”:“obj”,“x”:703,“y”:0,“w”:68,“h”:50,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:76,“obj”:“obj”,“x”:750,“y”:0,“w”:50,“h”:50,“radius”:25,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:77,“obj”:“obj”,“x”:560,“y”:50,“w”:25,“h”:25,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:78,“obj”:“obj”,“x”:560,“y”:50,“w”:50,“h”:50,“radius”:25,“bg_color”:"#000000",“border_opa”:0}

{“page”:1,“id”:80,“obj”:“obj”,“x”:490,“y”:428,“w”:70,“h”:30,“radius”:2,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:81,“obj”:“obj”,“x”:490,“y”:430,“w”:70,“h”:50,“radius”:25,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:82,“obj”:“obj”,“x”:520,“y”:450,“w”:280,“h”:30,“radius”:15,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:83,“obj”:“obj”,“x”:560,“y”:425,“w”:25,“h”:25,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:84,“obj”:“obj”,“x”:560,“y”:400,“w”:50,“h”:50,“radius”:25,“bg_color”:"#000000",“border_opa”:0}

{“page”:1,“comment”:“Layout button left”}
{“page”:1,“id”:90,“obj”:“obj”,“x”:0,“y”:308,“w”:40,“h”:30,“radius”:15,“bg_color”:"#96A0FF",“border_opa”:0}
{“page”:1,“id”:91,“obj”:“obj”,“x”:25,“y”:308,“w”:32,“h”:30,“radius”:0,“bg_color”:"#96A0FF",“border_opa”:0}
{“page”:1,“id”:92,“obj”:“obj”,“x”:40,“y”:327,“w”:203,“h”:11,“radius”:0,“bg_color”:"#96A0FF",“border_opa”:0}
{“page”:1,“id”:93,“obj”:“obj”,“x”:243,“y”:308,“w”:180,“h”:30,“radius”:0,“bg_color”:"#96A0FF",“border_opa”:0}
{“page”:1,“id”:94,“obj”:“obj”,“x”:400,“y”:308,“w”:70,“h”:50,“radius”:25,“bg_color”:"#96A0FF",“border_opa”:0}
{“page”:1,“id”:95,“obj”:“obj”,“x”:400,“y”:330,“w”:70,“h”:57,“radius”:1,“bg_color”:"#96A0FF",“border_opa”:0}

{“page”:1,“id”:96,“obj”:“obj”,“x”:0,“y”:450,“w”:440,“h”:30,“radius”:15,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:97,“obj”:“obj”,“x”:400,“y”:430,“w”:70,“h”:50,“radius”:25,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:98,“obj”:“obj”,“x”:400,“y”:395,“w”:70,“h”:60,“radius”:1,“bg_color”:"#D69B6F",“border_opa”:0}

{“page”:1,“id”:100,“obj”:“obj”,“x”:375,“y”:338,“w”:25,“h”:25,“radius”:0,“bg_color”:"#96A0FF",“border_opa”:0}
{“page”:1,“id”:101,“obj”:“obj”,“x”:350,“y”:338,“w”:50,“h”:50,“radius”:25,“bg_color”:"#000000",“border_opa”:0}
{“page”:1,“id”:102,“obj”:“obj”,“x”:375,“y”:425,“w”:25,“h”:25,“radius”:0,“bg_color”:"#D69B6F",“border_opa”:0}
{“page”:1,“id”:103,“obj”:“obj”,“x”:350,“y”:400,“w”:50,“h”:50,“radius”:25,“bg_color”:"#000000",“border_opa”:0}

{“page”:1,“comment”:“Data/texts top left”}
{“page”:1,“id”:1,“obj”:“label”,“x”:60,“y”:0,“w”:200,“h”:50,“text”:“Guten Tag”,“text_color”:"#FF0000",“text_font”:“OkudaBold42”}
{“page”:1,“id”:2,“obj”:“label”,“x”:90,“y”:60,“w”:300,“text”:“tmp °C”,“text_font”:“Okuda40”,“align”:“right”}
{“page”:1,“id”:4,“obj”:“label”,“x”:90,“y”:110,“w”:300,“text”:“tmp °C”,“text_font”:“Okuda40”,“align”:“right”}
{“page”:1,“id”:6,“obj”:“label”,“x”:90,“y”:160,“w”:300,“text”:“tmp °C”,“text_font”:“Okuda40”,“align”:“right”}

{“page”:1,“id”:8,“obj”:“label”,“x”:300,“y”:210,“w”:100,“text”:“XX”,“text_font”:“Okuda40”}
{“page”:1,“id”:10,“obj”:“label”,“x”:100,“y”:210,“w”:200,“text”:“Alles Licht aus:”,“text_font”:“Okuda40”}
{“page”:1,“id”:12,“obj”:“label”,“x”:400,“y”:180,“w”:70,“text”:“Status”,“text_font”:“OkudaBold30”,“align”:“center”}

{“page”:1,“comment”:“Clock”}
{“page”:1,“id”:14,“obj”:“label”,“x”:60,“y”:280,“w”:180,“align”:“center”,“text”:“00:00”,“text_color”:"#FF0000",“text_font”:“OkudaBold40”}

{“page”:1,“comment”:“Data/texts buttom left”}
{“page”:1,“id”:16,“obj”:“label”,“x”:30,“y”:340,“w”:350,“text”:“rain”,“text_font”:“Okuda40”,“align”:“right”}
{“page”:1,“id”:18,“obj”:“label”,“x”:220,“y”:395,“w”:200,“text”:“XX”,“text_font”:“Okuda40”,“align”:“left”}
{“page”:1,“id”:20,“obj”:“label”,“x”:62,“y”:395,“w”:150,“text”:“Gelber Sack ist”,“text_font”:“Okuda40”,“align”:“right”}
{“page”:1,“id”:22,“obj”:“label”,“x”:400,“y”:392,“w”:70,“text”:“Info”,“text_font”:“OkudaBold30”,“align”:“center”}

{“page”:1,“comment”:“Data/texts right”}
{“page”:1,“id”:30,“obj”:“label”,“x”:610,“y”:0,“w”:200,“h”:50,“text”:“Forecast”,“text_color”:"#FF0000",“text_font”:“OkudaBold42”}
{“page”:1,“id”:31,“obj”:“label”,“x”:490,“y”:201,“w”:70,“h”:50,“text”:“Today”,“text_font”:“OkudaBold30”,“align”:“center”}
{“page”:1,“id”:32,“obj”:“label”,“x”:580,“y”:190,“w”:200,“text”:“Wetter heute”,“text_font”:“Okuda40”,“align”:“center”}
{“page”:1,“id”:33,“obj”:“img”,“src”:“L:/openhasp_dummy_img.png”,“x”:615,“y”:55}

{“page”:1,“id”:35,“obj”:“label”,“x”:490,“y”:351,“w”:70,“h”:50,“text”:“Next”,“text_font”:“OkudaBold30”,“align”:“center”}
{“page”:1,“id”:36,“obj”:“label”,“x”:490,“y”:381,“w”:70,“h”:50,“text”:“Days”,“text_font”:“OkudaBold30”,“align”:“center”}
{“page”:1,“id”:37,“obj”:“label”,“x”:580,“y”:250,“w”:100,“text”:“Tag +1”,“text_font”:“Okuda40”}
{“page”:1,“id”:38,“obj”:“label”,“x”:660,“y”:250,“w”:70,“text”:“Tmp. Tag +1”,“text_font”:“Okuda40”,“align”:“right”}
{“page”:1,“id”:39,“obj”:“img”,“src”:“L:/openhasp_dummy_img.png”,“x”:750,“y”:255}
{“page”:1,“id”:40,“obj”:“label”,“x”:580,“y”:310,“w”:100,“text”:“Tag +2”,“text_font”:“Okuda40”}
{“page”:1,“id”:41,“obj”:“label”,“x”:660,“y”:310,“w”:70,“text”:“Tmp. Tag +2”,“text_font”:“Okuda40”,“align”:“right”}
{“page”:1,“id”:42,“obj”:“img”,“src”:“L:/openhasp_dummy_img.png”,“x”:750,“y”:315}
{“page”:1,“id”:43,“obj”:“label”,“x”:580,“y”:370,“w”:100,“text”:“Tag +3”,“text_font”:“Okuda40”}
{“page”:1,“id”:44,“obj”:“label”,“x”:660,“y”:370,“w”:70,“text”:“Tmp. Tag +3”,“text_font”:“Okuda40”,“align”:“right”}
{“page”:1,“id”:45,“obj”:“img”,“src”:“L:/openhasp_dummy_img.png”,“x”:750,“y”:375}

config.yaml in HA

smartmirror:
objects:
- obj: “p1b2” # temperature of balkony on page 1
properties:
“text”: “Temp. Balkon: {{ states(‘sensor.temperature_5’) }}°C”
- obj: “p1b4” # temperature of living room on page 1
properties:
“text”: “Temp. Wohnzimmer: {{ states(‘sensor.temperature_2’) }}°C”
- obj: “p1b6” # temperature of bed room on page 1
properties:
“text”: “Temp. Schlafzimmer: {{ states(‘sensor.temperature_11’) }}°C”
- obj: “p1b16” # will it rain in next 30min?
properties:
“text”: “{{ ‘Kein regen’ if is_state(‘sensor.rrrainin30min’,‘0’) else ‘Es regnet’ | e}} in den nächsten 30min.”
- obj: “p1b14” # Clock
properties:
“text”: “{{ states(‘sensor.time_date’) }}”

- obj: "p1b8" # Check if any light is on
  properties:
    "text": "{{ 'nein' if is_state('light.alle_lichter','on') else 'ja' | e}}"

- obj: "p1b18" # When is the next garbage collection
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": >
        {% if is_state('sensor.mullabfuhr_wann','0') -%}
        heute
        {% elif is_state('sensor.mullabfuhr_wann','1') -%}
        morgen
        {% elif is_state('sensor.mullabfuhr_wann','2') -%}
        ubermorgen
        {% elif is_state('sensor.mullabfuhr_wann','3') -%}
        in drei Tagen
        {% elif is_state('sensor.mullabfuhr_wann','4') -%}
        in vier Tagen
        {% elif is_state('sensor.mullabfuhr_wann','5') -%}
        in funf Tagen
        {% elif is_state('sensor.mullabfuhr_wann','6') -%}
        in sechs Tagen
        {% elif is_state('sensor.mullabfuhr_wann','7') -%}
        naechste Woche
        {% elif is_state('sensor.mullabfuhr_wann','8') -%}
        naechste Woche
        {% elif is_state('sensor.mullabfuhr_wann','9') -%}
        naechste Woche
        {% elif is_state('sensor.mullabfuhr_wann','10') -%}
        naechste Woche
        {% elif is_state('sensor.mullabfuhr_wann','11') -%}
        in zwei Wochen
        {% elif is_state('sensor.mullabfuhr_wann','12') -%}
        in zwei Wochen
        {% elif is_state('sensor.mullabfuhr_wann','13') -%}
        in zwei Wochen
        {% elif is_state('sensor.mullabfuhr_wann','14') -%}
        in zwei Wochen
        {% else %}
        {{ states('sensor.mullabfuhr_wann') }}
        {%- endif %}

- obj: "p1b32" # Current weather condition
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": >
        {% if is_state('weather.home','clear-night') -%}
        Clear night
        {% elif is_state('weather.home','cloudy') -%}
        Cloudy
        {% elif is_state('weather.home','fog') -%}
        Fog
        {% elif is_state('weather.home','hail') -%}
        Hail
        {% elif is_state('weather.home','lightning') -%}
        Lightning
        {% elif is_state('weather.home','lightning-rainy') -%}
        Thunderstorms
        {% elif is_state('weather.home','partlycloudy') -%}
        Partly cloudy
        {% elif is_state('weather.home','pouring') -%}
        Pouring rain
        {% elif is_state('weather.home','rainy') -%}
        Rainy
        {% elif is_state('weather.home','snowy') -%}
        Snowy
        {% elif is_state('weather.home','snowy-rainy') -%}
        Snowy-rainy
        {% elif is_state('weather.home','sunny') -%}
        Sunny
        {% elif is_state('weather.home','windy') -%}
        Windy
        {% elif is_state('weather.home','windy-variant') -%}
        Windy
        {% elif is_state('weather.home','exceptional') -%}
        Exceptional
        {% elif is_state('weather.home','unavailable') -%}
        (not available)
        {% else -%}
        {{ states('weather.home') }}
        {% endif -%}
- obj: "p1b33" # Icon for the weather today
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "src": "{{ 'L:/z-128-' + states('weather.home') + '.png' if not is_state('weather.home','unavailable') }}"

- obj: "p1b37" # Forecast date +1d
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": >
        {%- if not is_state('weather.home','unavailable') %}
        {%- set now = as_timestamp(strptime(state_attr('weather.home','forecast')[0]['datetime'], '%Y-%m-%dT%H:%M:%S%z', default='2020-01-00T00:00:00+00:00')) %}
        {%- set day = now | timestamp_custom("%w") %}
        {%- set days = ["Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa.", "So."] %}
        {{- now | timestamp_custom(" %d") }}. {{ days[ day | int -1 ] }}
        {%- endif %}
- obj: "p1b38" # Forecast temp +1d
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": "{{ state_attr('weather.home','forecast')[0]['temperature'] if not is_state('weather.home','unavailable') else '-' }}°C"
- obj: "p1b39" # Forecast icon +1d
  properties:
    "src": >
        {%- if not is_state('weather.home','unavailable') %}
        L:/z-32-{{ state_attr('weather.home','forecast')[0]['condition'] }}.png
        {%- endif %}

- obj: "p1b40" # Forecast date +2d
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": >
        {%- if not is_state('weather.home','unavailable') %}
        {%- set now = as_timestamp(strptime(state_attr('weather.home','forecast')[1]['datetime'], '%Y-%m-%dT%H:%M:%S%z', default='2020-01-00T00:00:00+00:00')) %}
        {%- set day = now | timestamp_custom("%w") %}
        {%- set days = ["Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa.", "So."] %}
        {{- now | timestamp_custom(" %d") }}. {{ days[ day | int -1 ] }}
        {%- endif %}
- obj: "p1b41" # Forecast temp +2d
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": "{{ state_attr('weather.home','forecast')[1]['temperature'] if not is_state('weather.home','unavailable') else '-' }}°C"
- obj: "p1b42" # Forecast icon +2d
  properties:
    "src": >
        {%- if not is_state('weather.home','unavailable') %}
        L:/z-32-{{ state_attr('weather.home','forecast')[1]['condition'] }}.png
        {%- endif %}

- obj: "p1b43" # Forecast date +3d
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": >
        {%- if not is_state('weather.home','unavailable') %}
        {%- set now = as_timestamp(strptime(state_attr('weather.home','forecast')[2]['datetime'], '%Y-%m-%dT%H:%M:%S%z', default='2020-01-00T00:00:00+00:00')) %}
        {%- set day = now | timestamp_custom("%w") %}
        {%- set days = ["Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa.", "So."] %}
        {{- now | timestamp_custom(" %d") }}. {{ days[ day | int -1 ] }}
        {%- endif %}
- obj: "p1b44" # Forecast temp +3d
  properties: #based on: https://openhasp.haswitchplate.com/0.7.0/integrations/home-assistant/sampl_conf/#current-weather-and-forecasts
    "text": "{{ state_attr('weather.home','forecast')[2]['temperature'] if not is_state('weather.home','unavailable') else '-' }}°C"
- obj: "p1b45" # Forecast icon +3d
  properties:
    "src": >
        {%- if not is_state('weather.home','unavailable') %}
        L:/z-32-{{ state_attr('weather.home','forecast')[2]['condition'] }}.png
        {%- endif %}
config from plate

openHASP Version: 0.7.0-rc7 f76dee8

{
    "wifi": {
        "ssid": "xxxxx",
        "pass": "xxxx"
    },
    "mqtt": {
        "host": "xxxxxxxxx",
        "user": "MQTT",
        "pass": "********",
        "topic": {
            "node": "hasp/%hostname%/%topic%",
            "group": "hasp/plates/%topic%",
            "broadcast": "hasp/broadcast/%topic%",
            "hass": "homeassistant/status"
        },
        "port": 1883,
        "name": "smartmirror"
    },
    "telnet": {
        "enable": 1,
        "port": 23
    },
    "mdns": {
        "enable": 1
    },
    "http": {
        "enable": true,
        "port": 80,
        "user": "",
        "pass": "********"
    },
    "gpio": {
        "config": [
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
        ]
    },
    "debug": {
        "ansi": 0,
        "baud": 115200,
        "tele": 300,
        "host": "",
        "port": 514,
        "proto": 0,
        "log": 0
    },
    "gui": {
        "idle1": 60,
        "idle2": 120,
        "bckl": 2,
        "bcklinv": 0,
        "rotate": 0,
        "cursor": 0,
        "invert": 0,
        "calibration": [
            0,
            65535,
            0,
            65535,
            0,
            0,
            0,
            0
        ]
    },
    "hasp": {
        "startpage": 1,
        "startdim": 0,
        "theme": 3,
        "color1": "#ffffff",
        "color2": "#ff9962",
        "font": "",
        "pages": "/pages.jsonl"
    }
}
a part of the Log
2023-05-29 10:26:00.064 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:26:00.150 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:27:00.026 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=68> changed, updating with: 10:27, 2023-05-29
2023-05-29 10:27:00.300 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:27:00.353 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:27:00.399 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:27:00.442 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:28:00.018 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=70> changed, updating with: 10:28, 2023-05-29
2023-05-29 10:28:01.297 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:28:01.338 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:28:01.389 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:28:01.463 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:29:00.018 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=72> changed, updating with: 10:29, 2023-05-29
2023-05-29 10:30:00.019 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=74> changed, updating with: 10:30, 2023-05-29
2023-05-29 10:30:00.303 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:30:00.345 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:31:00.029 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=76> changed, updating with: 10:31, 2023-05-29
2023-05-29 10:32:00.023 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=78> changed, updating with: 10:32, 2023-05-29
2023-05-29 10:32:00.324 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is long - Dimming to 13; Backlight to 0
2023-05-29 10:32:00.389 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': False, 'brightness': 13}
2023-05-29 10:33:00.021 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=80> changed, updating with: 10:33, 2023-05-29
2023-05-29 10:33:00.085 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:33:00.132 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:33:00.178 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:34:00.022 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=82> changed, updating with: 10:34, 2023-05-29
2023-05-29 10:34:00.303 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:34:00.343 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:35:00.032 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=84> changed, updating with: 10:35, 2023-05-29
2023-05-29 10:36:00.018 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=86> changed, updating with: 10:36, 2023-05-29
2023-05-29 10:36:00.062 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:36:00.143 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:37:00.017 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=88> changed, updating with: 10:37, 2023-05-29
2023-05-29 10:38:00.017 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=90> changed, updating with: 10:38, 2023-05-29
2023-05-29 10:38:00.306 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:38:00.355 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:39:00.016 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=92> changed, updating with: 10:39, 2023-05-29
2023-05-29 10:40:00.016 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=94> changed, updating with: 10:40, 2023-05-29
2023-05-29 10:40:00.097 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is long - Dimming to 13; Backlight to 0
2023-05-29 10:40:00.115 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:40:00.209 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': False, 'brightness': 13}
2023-05-29 10:40:00.252 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:41:00.023 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=96> changed, updating with: 10:41, 2023-05-29
2023-05-29 10:41:00.301 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:41:00.346 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:41:00.411 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:41:00.465 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:42:00.024 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=98> changed, updating with: 10:42, 2023-05-29
2023-05-29 10:42:01.313 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:42:01.350 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:42:01.397 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:42:01.436 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:43:00.024 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=100> changed, updating with: 10:43, 2023-05-29
2023-05-29 10:43:02.305 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:43:02.352 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 10:44:00.022 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=102> changed, updating with: 10:44, 2023-05-29
2023-05-29 10:45:00.020 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=104> changed, updating with: 10:45, 2023-05-29
2023-05-29 10:45:02.305 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is long - Dimming to 13; Backlight to 0
2023-05-29 10:45:02.355 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': False, 'brightness': 13}
2023-05-29 10:46:00.026 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=106> changed, updating with: 10:46, 2023-05-29
2023-05-29 10:47:00.024 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=108> changed, updating with: 10:47, 2023-05-29
2023-05-29 10:47:37.813 DEBUG (MainThread) [custom_components.openhasp.light] refresh(smartmirror backlight) backlight - {'state': True, 'brightness': 13}
2023-05-29 10:47:37.863 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:47:40.292 DEBUG (MainThread) [custom_components.openhasp.light] refresh(smartmirror backlight) backlight - {'state': False, 'brightness': 13}
2023-05-29 10:47:40.343 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': False, 'brightness': 13}
2023-05-29 10:47:40.386 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:47:40.403 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is off - Dimming to 13; Backlight to 1
2023-05-29 10:47:40.441 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:47:41.446 DEBUG (MainThread) [custom_components.openhasp.light] refresh(smartmirror backlight) backlight - {'state': False, 'brightness': 13}
2023-05-29 10:47:41.494 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': False, 'brightness': 13}
2023-05-29 10:47:41.826 ERROR (MainThread) [frontend.js.latest.202305033] :0:0 ResizeObserver loop completed with undelivered notifications.
2023-05-29 10:48:00.030 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=110> changed, updating with: 10:48, 2023-05-29
2023-05-29 10:49:00.033 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=112> changed, updating with: 10:49, 2023-05-29
2023-05-29 10:50:00.024 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=114> changed, updating with: 10:50, 2023-05-29
2023-05-29 10:51:00.022 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=116> changed, updating with: 10:51, 2023-05-29
2023-05-29 10:52:00.024 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=118> changed, updating with: 10:52, 2023-05-29
2023-05-29 10:52:00.088 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 13}
2023-05-29 10:53:00.026 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=120> changed, updating with: 10:53, 2023-05-29
2023-05-29 10:53:00.314 DEBUG (MainThread) [custom_components.openhasp.light] Idle state for smartmirror backlight is short - Dimming to 25; Backlight to 1
2023-05-29 10:53:00.361 DEBUG (MainThread) [custom_components.openhasp.light] received backlight smartmirror backlight: {'state': True, 'brightness': 25}
2023-05-29 12:13:56.253 WARNING (MainThread) [homeassistant.helpers.entity] Update of sensor.regenradar is taking over 10 seconds
2023-05-29 12:13:56.295 ERROR (MainThread) [homeassistant.components.rest.data] Timeout while fetching data: https://morgenwirdes.de/api/v3/rain.php?lat=53.86582350790879&long=10.700454718842884
2023-05-29 12:13:56.300 WARNING (MainThread) [homeassistant.components.rest.sensor] Empty reply found when expecting JSON data
2023-05-29 12:52:00.022 DEBUG (MainThread) [custom_components.openhasp] p1b14.text - Template<template=({{ states('sensor.time_date') }}) renders=360> changed, updating with: 12:52, 2023-05-29

Weird, it seems like it registers ghost touches… To be sure, check with MQTT Explorer and/or the openHASP log using Telnet. That should rule out other stuff.

One way to disable the idle massages, is to set both idle1 and idle2 to zero in the Display Settings and see if that helps.

1 Like

Thank you very much for the fast answer.
Setting idle1 and idle2 to 0 seems to fix it.
To debug it like you suggested i have to pass becaus i dont understand what you mean. :smiley:
But i think it works now and i can continue from here on. Thank you!

1 Like

Hello!

I hope this is the right place to post this… I’m trying to replicate the weather display shown on the OpenHASP example page: Example Configurations - openHASP

I’m making progress, but this block of code isn’t working:

      - obj: "p1b21" # Forecast time +1h
        properties:
          "text": >
            {%- set update = states('sensor.date') %}
            {%- set midnight = now().replace(hour=0, minute=0, second=0, microsecond=0).timestamp() %}
            {%- set event = as_timestamp(strptime(state_attr('weather.openweathermap','forecast')[1]['datetime'], '%Y-%m-%d %H:%M:%S')) %}
            {%- set delta = ((event - midnight) // 86400) | int %}
            {%- if delta == 0 %}
            Today
            {%- elif delta == 1 %}
            Tomorrow
            {%- endif %}
            {{- event | timestamp_custom(" %-I %p") }}

It’s supposed to output either “Today” or “Tomorrow” followed by a time. Instead the plate shows the ‘place holder text’ from the jsonl-file: “hour+2”.

Here’s the corresponding jsonl-line:

{"page":1,"id":21,"obj":"label","x":8,"y":143,"w":120,"h":30,"align":"left","text":"hour+2","parentid":11,"pad_top":3,"click":0}

If I’m not mistaken, the broken line is:

            {{- event | timestamp_custom(" %-I %p") }}

I’ve been fiddling with this for hours now… I’m still stumped. If anyone has an idea, I’d be very grateful!

Thanks!

Greetings! I’m a Home Assistant user, and I recently got the SenseCAP Indicator D1 (display only, no sensors).

My intentions are to:

  • Use the display with HA and the openHASP integration
  • Set up a custom display with controls
  • Have several screens (including one with bitmaps, if possible)

Right now, my main obstacle is finding the right firmware binary to load onto the SenseCAP device.

I saw that @fvanroie had it working (see the review at the bottom of the SenseCAP Indicator webpage), and I’m hoping to get a copy of the firmware (even if it’s still preliminary).

openHASP on HA looks like a winning combination, and I’d like to try it out. Any help would be appreciated. Thank you!

The nightly builds are here https://nightly.openhasp.com/

The Seeed Studio SenseCap binary is currently only available from the Github Actions tab.
Click the latest successful build and scroll down to download the seeed-studios.zip (login requried).

Got it! Thank you so much for the quick response, and I can’t wait to try it out…! :grinning:

@fvanroie - the good news: I got the firmware images downloaded (the full + OTA versions) for the SenseCAP Indicator (yay!). That was the easy part…

I need help loading the firmware onto the device because it’s not showing up as a modem, or anything else for that matter. I can’t put it into bootload mode or find the USB serial interface in my device file folder.

Here’s what I have listed in my /dev directory:

% ls /dev/*usb*
zsh: no matches found: /dev/*usb*
% ls /dev/cu.*
/dev/cu.Bluetooth-Incoming-Port	/dev/cu.wlan-debug

I also tried erasing the firmware using this sequence of commands:

% python3 -m esptool --chip esp32s3 --port /dev/cu.wlan-debug erase_flash
esptool.py v4.6.2
Serial port /dev/cu.wlan-debug
Connecting......................................

A fatal error occurred: Failed to connect to ESP32-S3: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

I can’t find the GPIO0 and GPIO2 pins on the SenseCAP board to put it into boot mode, so I’m stuck.

Any recommendations on how I can get the openHASP firmware uploaded to the SenseCAP Indicator would be greatly appreciated!

I think the device under Linux is called tty*. You don’t need to push any buttons to put it in flash mode, esptool will do that automatically of you specify the correct serial port device…

Please confirm if you got this working, so we can add it to the nightly web installer page too.

I just ordered two of them to add to the pile of stuff my wife thinks are useless :slight_smile:

1 Like

When a display has been loaded with firmware, and mqtt configured - what could be the reason for the openhasp interagtion in HA not being able to discover the new display ?

Check the version of the firmware and version of the Custom Component in HAVS. Both need to be either 0.6.x or 0.7.x. If these versions don’t match, then the plate won’t be discovered.

To install version 0.7.1 of the HA Custom Component, you need to enable “Show Beta versions” in HACS.

Hi

Well, I switched of the display, removed all traces of it in MQTT, restarted HA and also the MQTT - and then all of a sudden the system was able to detect the display…
Displays are running 0.7.0-rc6, and the integration says 0.7.1 …

Regards
Brian