DIY LCD touchscreen for Home Automation

Overview

HA SwitchPlate HASPone

The HASPone is a DIY touchscreen controller you can mount into a standard North American work box. It connects to your home automation system over Wifi+MQTT to display useful information and to control your smart devices. The result is an attractive and highly-customizable home controller you can build yourself!

HA SwitchPlate Models

Demo screens

Scene controller Status display Media control Alarm Panel Slider/Dimmer Controls HVAC Controls Light toggles Fan controller WiFi Setup

Purchase an assembled unit

This build requires some specialist skills and tools. You can buy an assembled device here if you want to get started without picking up a soldering iron.

Build your own HASPone

Check out the build guide in the HASPone wiki.

Setup HASPone for Home Assistant

If you're purchased or built a HASPone, now it's time to make it talk to Home Assistant

Have a question?

Come talk to us in the HASPone discussion forum or chat with us on Discord.

Buy me a coffee

Buy me a coffee

This project is powered by coffee. I might get a little weird about it at times, but it's not much of a stretch to suggest that coffee both powers and consumes a fair portion of my mental energy. Hook me up if you think HASP is cool. Thanks!

Comments
  • Iddle not working

    Iddle not working

    Hi, my next problem is, that iddle blueprint not working on all HASPOne devices. I have a scorlling page in basic for all, as 1 page as basic. In Iddle, I have a page 1 after 30 sec. Not working. Thank you for help.

    obrázok

    bug 
    opened by proasnet 14
  • Getting an error when trying to flash the Nextion display using an SD Card - File Version is too low

    Getting an error when trying to flash the Nextion display using an SD Card - File Version is too low

    Getting an error when using putting the FAT-32 formatted micro SD Card in the Nextion display and booting it - File Version is too low Is this a problem with the HASwitchPlate.tft that I downloaded? Something else?

    opened by rkhanso 13
  • HA with 6pcs HASPOne is very very slowly

    HA with 6pcs HASPOne is very very slowly

    Hi, today I configured 6pcs of HASPOne, each witch 24 automations. Now is WebUI of HA very very slowly. If is core slowly for running automations in house, I dont know, I will know after Sunset. And a GUI of each HASPone is very slowly, I see it with page scrolling and re-drawing texts. Before this update, all hasps was quick :( Is it normaly?

    I am running it on RPI as HASSIO standard install.

    question 
    opened by proasnet 12
  • Odd json state return when querying text attribute

    Odd json state return when querying text attribute

    I'm using the hasp with my own MQTT based home automation system. I do use the default display sw. HASP Version: 1.02 LCD Version: 3

    Right now, I just have page 1 defined with actual button values. If I query the txt attribute, I not only get a state button response with the correct text, but also get a state json response from p[7].b[15] with the same text. This is the log from my system:

    12:06:35.991 mqttx: Published hasp/hasp01/command/p[1].b[7].txt, !
    12:06:36.001 mqttx: Received PUBLISH (d0, q0, r0, 'hasp/hasp01/state/p[1].b[7].txt', ... (9 bytes))
    12:06:36.002 hasp: hasp: topic:hasp/hasp01/state/p[1].b[7].txt,msg:Overcast ;
    12:06:36.008 mqttx: Received PUBLISH (d0, q0, r0, 'hasp/hasp01/state/json', ... (46 bytes))
    12:06:36.009 hasp: hasp: topic:hasp/hasp01/state/json,msg:{"event":"p[7].b[15].val","value":"Overcast "};
    

    You can see the correct "Overcast " response for p[1].b[7], but the json is reported mistakenly from p[7].b[15]!

    Here is the response if I query p[7].b[15] directly:

    12:06:42.265 mqttx: Published hasp/hasp01/command/p[7].b[15].txt, !
    12:06:42.273 mqttx: Received PUBLISH (d0, q0, r0, 'hasp/hasp01/state/p[7].b[15].txt', ... (0 bytes))
    12:06:42.274 hasp: hasp: topic:hasp/hasp01/state/p[7].b[15].txt,msg:;
    12:06:42.278 mqttx: Received PUBLISH (d0, q0, r0, 'hasp/hasp01/state/json', ... (37 bytes))
    12:06:42.280 hasp: hasp: topic:hasp/hasp01/state/json,msg:{"event":"p[7].b[15].val","value":""};
    

    You can see that both the state button and state json responses are the correct empty value.

    Sending queries to page 1 buttons 4-7 yield the same response from page 7 button 15.

    But, further testing shows that querying button 4 on any page (or any other valid button for that page) returns the incorrect page/button for the json return (but the correct attribute value). So while the second log above seems to show a correct json response for page 7 button 15, that's just a coincidence since queries to ALL page have in the response page 7 button 15 as the button address. And it doen't always return p[7].b[15] in the json. the actual page/button seems to change based on query history and page selections. At one point during my testing of this issue, the json return changed to p[11].b[5].

    Possibly, there is some incorrect "memory" somewhere that is being used as the json page/button value in the return (although the actual text attribute value is returned properly).

    New info: The page/button returned in the json appears to be that of the last button pressed. So this is where the bad page/button number is coming from.

    Steps to reproduce:

    • Go to any page.
    • press a button
    • via MQTT, query another page/button text value.
    • See that the "event" page/button shown in the json return is the button pressed in step 2, not the page/button of the query. Note that the "value" in the response is correct for the query page/button.
    opened by rebel7580 10
  • Stuck on wifi connected

    Stuck on wifi connected

    I use to have the old haswitchplate installed on my HA. Now trying to upgrade to HASPone.

    My device keeps getting stuck on WIFI connected. I tried factory resetting. Double checking names. And nothing is working. I can see if it Blueprint as device. Any ideas what issue is?

    opened by scubieman 8
  • HASPone Overlay Issues

    HASPone Overlay Issues

    Reference discussion: #20 Including what is mentioned in the above discussion, I have also noticed the page buttons stay white (as if they are active, unlike their normal grey, inactive state). This happens every now and then and required pressing different page buttons a few times until things go back to normal. Can provide more info if necessary.

    opened by IIAIronWolf 8
  • Errors with Blueprints

    Errors with Blueprints

    After my system was shut down for some time, all the HASPone I have in the house, blanked their display back to the basic core configuration. I've attempted running the BPs again, even going back and running the core configuration BP, but I get errors whenever I run them. I also get the following error on HA startup. So all my HASPone are currently not programmable. I'm on the latest Blueprint Version: 1.05.00 for everything.

    The following error on HA startup:

    2022-07-22 08:13:32 ERROR (MainThread) [homeassistant.components.automation] Blueprint HASPone p[x].b[y] displays a toggle button generated invalid automation with inputs OrderedDict([('ycen_select', '1 - Centered'), ('haspdevice', '6d4c8c9161af143210a835cdf66845ee'), ('entity', 'input_boolean.master_bedroom_automation'), ('state_on', 'on'), ('text_on', '||'), ('text_off', '>'), ('on_fgcolor', 0), ('off_bgcolor', 0), ('off_fgcolor', 0), ('action_on', [OrderedDict([('service', '')])]), ('action_off', [OrderedDict([('service', '')])]), ('xcen_select', '1 - Centered'), ('hasppage', 10), ('font_select', '8 - Noto Sans 64'), ('haspbutton', 7), ('on_bgcolor', 0)]): Service  does not match format <domain>.<name> for dictionary value @ data['action'][0]['choose'][2]['sequence'][0]['choose'][0]['sequence'][0]['choose'][0]['sequence'][0]['service']. Got None
    

    The following error when I run any BP:

    2022-07-22 08:21:23 ERROR (MainThread) [homeassistant.components.automation.hasp_master_p10b1_displays_a_toggle_button] Error rendering variables: UndefinedError: None has no element 0
    

    The following error intermittently (about every 30sec):

    2022-07-22 08:22:46 ERROR (MainThread) [homeassistant.components.automation.hasp_p1b3_displays_a_toggle_button] Error rendering variables: UndefinedError: None has no element 0
    
    opened by omayhemo 7
  • hasp_Display_Text.yaml fails on import

    hasp_Display_Text.yaml fails on import

    Discussed in https://github.com/HASwitchPlate/HASPone/discussions/186

    Originally posted by robellis-zz May 5, 2022 When i try to import the hasp_Display_Text.yaml blueprint i get an 'unknown error' is there a different way to import or can i copy and paste it into HA?

    bug 
    opened by aderusha 7
  • HASPOne page 7 (Alarm)

    HASPOne page 7 (Alarm)

    Hello, I have found that automation created with blueprint for page 7 is able to arm / disarm the alarm without entering the code. More precisely saying - last entered code is used. For instance, when I do arm the alarm using correct code, it is enough to hit "disarm" to get the alarm disarmed. Obviously entering wrong code before hitting "disarm" does not do anything. Same is for "Arming" - if the alarm was disarmed using good code, it is enough to hit "Arm" and the alarm is armed. I feel that the code is cached / stored and not cleared after hitting the "operation button". Can we get it cleared after hitting the action button? Another idea - can we have several codes for few people at home? Say - per user code? Please don't shoot if I missed something :-)

    opened by ekrotki 7
  • Blueprint

    Blueprint "HASP p[x].b[y] displays the current temperature with icon and colors" fails with temperature sensor

    When creating an automation from this blueprint and selecting a temperature sensor instead of a weather provider, the automation fails. When saved, no "Run" is shown, and the automation does not show in the Automation list. The automations do show up in automations.yaml.

    The homeassitant log shows the following ERRORs (tried twice with two different temperature sensors):

    2021-05-03 16:19:26 ERROR (MainThread) [homeassistant.components.automation] Blueprint HASP p[x].b[y] displays the current temperature with icon and colors generated invalid automation with inputs OrderedDict([('haspdevice', 'cfc57889d19f2ce169bf924e4d916c67'), ('hasppage', 2), ('haspbutton', 5), ('temperature_sensor', 'sensor.outside_temp'), ('colortemp', True)]): Entity IDs can not be None for dictionary value @ data['entity_id']. Got None

    2021-05-03 16:19:27 ERROR (MainThread) [homeassistant.components.automation] Blueprint HASP p[x].b[y] displays the current temperature with icon and colors generated invalid automation with inputs OrderedDict([('haspdevice', 'cfc57889d19f2ce169bf924e4d916c67'), ('hasppage', 2), ('haspbutton', 4), ('temperature_sensor', 'sensor.hotwater_am2301_temperature'), ('colortemp', True)]): Entity IDs can not be None for dictionary value @ data['entity_id']. Got None

    When choosing a weather provider instead, the automation is successful and is shown inthe Automation list.

    I know almost zero about blueprint/automation coding, but these lines in hasp_Display_Temperature_with_Icon_and_Colors.yaml look suspicious to me:

    381: trigger:
    382: - platform: state
    383:   entity_id: !input 'weather_provider'
    
    opened by rebel7580 7
  • Struggling to convert to NX4832T035_011R

    Struggling to convert to NX4832T035_011R

    Hey, I have two NX4832T035_011R, and one 2.4" all were running on the older version of HASP. I've moved and got a new HA install on the go - tried to convert the vanilla nextion file into one that'll work with my NX4832T035_011R - but i get an error on model match. I can't seem to select the NX4832T035_011R in nextion editor, only NX4832T035_011 shows up.

    Do you know how i can amend this before compiling?

    Looking forward to trying out the new version!

    opened by OliPassey 7
  • Dimmer slider issues

    Dimmer slider issues

    Might be my configurations but when I slide the dimmer in home assistant, my HASPone slider moves accordingly and the light obeys. When i move the slider on the HASPone, nothing happens. So basically, the HASPone slider is only a status indicator instead of a control device. The dimmer is a DIY lamp I've built with esphome and a led strip. It's very strait forward PWM dimming from a wemo D1 mini. The dimmer was configured from the default blueprint from this repo (hasp_Display_Dimmer_with_Icon.yaml) Software version : Home Assistant 2022.11.3, Supervisor 2022.10.2, Operating System 9.3 hardware: RPI3B+ here's the relevant automation.yaml entry :

    - id: '1667772236417'
      alias: HASPone p[x].b[y] displays a dimmer with a toggle on/off icon
      description: ''
      use_blueprint:
        path: HASwitchPlate/hasp_Display_Dimmer_with_Icon.yaml
        input:
          font_select: 6 - Noto Sans 32
          haspdevice: 43f87b51c35fe9a31c395bb715839774
          haspbutton: 8
          dimmer: light.salle_de_bain
          text_on: Lum Pharmacie |
          ycen_select: 1 - Centered
          icon_off: 
          icon_on: 
          xcen_select: 2 - Right aligned
          hasppage: 4
    

    Thanks for your help

    opened by Gurulu-pc 4
  • Won't Stay Connected

    Won't Stay Connected

    This is the first HASPone I installed. It's no longer staying connected and constantly reboots to the QR code. Most of the time sits on connecting to Wi-Fi. I've tried setting it up with the BPs again, but it's hard to keep online, usually crashes and heads back to the Wi-Fi connecting screen or QR code.

    I've attempted to follow these instructions https://github.com/HASwitchPlate/HASPone/wiki/Flashing-HASPone-to-an-ESP8266 that I found recommended for a similar now closed issue, but when I plug it into the computer ~~it never registers a port, the blue light on the ESP lights briefly then goes out and no further activity. Seems like it maybe bricked.~~

    Got it to connect to the PC as a COM, attempting flash.

    After flash (with erasure as instructed), I get back to the QR code and I can see the hotspot, but I cannot connect to it.

    opened by omayhemo 6
  • Temperature blueprint - doesn't save

    Temperature blueprint - doesn't save

    First noticed when I keep turning this option off, but it won't save. In fact, turning the option off does not prompt for "save". I have to change something else to get the save button. But it doesn't save the automation. colorize

    Further, I deleted the automation and the blueprint, then downloaded the blueprint again, clicked on create automation, clicked on save. And there was no "run automations" at the top of the blueprint. And there is no automation saved in "Automations".

    Tried is on a different device. Create the temperature button, click on save then run actions. Works fine. Open the automation and turn on the colorize option, click "save" then - nothing. The "run automations" button did not appear and the saved automation

    opened by SteveRMann 2
  • Alarm panel not working (Page 7)

    Alarm panel not working (Page 7)

    Hello, i can't activate an alarm in the alarm viewer. If I enter the code and then press arm away or arm home, nothing happens. What am I doing wrong? My blueprint looks like this:

    alias: HASPone p[7].b[all] displays an alarm control panel description: '' use_blueprint: path: HASwitchPlate/hasp_Display_Alarm_Control_page7_new.yaml input: b15armservice: alarm_arm_away haspdevice: be9fd115990418ac490f4dbd6727839e alarmpanel: alarm_control_panel.alarm b13armservice: alarm_arm_home

    Thanks Stephan

    opened by Stephan1908 0
  • Any way to reboot the ESP from the touchscreen?

    Any way to reboot the ESP from the touchscreen?

    I had a failure mode recently I haven't encountered before where the touch panel is working, but it is not on the network or connected to MQTT. I eventually had to disconnect power to recover. It came back fine - not sure what the issue was.

    But, it made me realize I don't think there's any other way to force a reboot other than via MQTT. I saw an option in the code to force a reboot when p[0].b[1] is pressed, but it's false by default. Is something like that the best/only option? I see you can restart the nextion lcd with a button command, but I don't think that would have helped.

    I was thinking long-pressing any button for more than X seconds might be a reasonable watchdog-style reboot mechanism. Not sure if that's possible. Or, if the ESP can see the nextion reboot I could use that option to trigger it.

    enhancement 
    opened by mattster98 2
Owner
null
Universal State Monitor software for home automation input devices

Universal State Monitor Copyright 2019-2021 SuperHouse Automation Pty Ltd www.superhouse.tv A binary state monitor for DIY home automation projects. T

SuperHouse Automation 3 Aug 24, 2021
CQC (Charmed Quark Controller) a commercial grade, full featured, software based automation system. CQC is built on our CIDLib C++ development system, which is also available here on GitHub.

The CQC Automation System What It Is CQC is a commercial quality, software based automation system, suitable for residential or commercial application

Dean Roddey 60 Oct 2, 2022
The C++ Automation Language

Circle The C++ Automation Language 2021 Sean Baxter Download here Follow me on Twitter @seanbax for compiler updates. NEW CUDA NEW Pattern Matching NE

Sean Baxter 1.5k Nov 29, 2022
Native cross-platform system automation

Native System Automation GET STARTED | DOCUMENTATION | API | COMMUNITY Introducing Robot for C++, a library aimed at facilitating the development of s

Robot 198 Nov 10, 2022
AI-powered Smart Robotic Process Automation 🤖

Automagica The Automagica project began in 2018 with a focus on creating open source software to ensure that Robotic Process Automation technologies w

Automagica 2.7k Nov 21, 2022
This project shows how to interface Nokia 5110 LCD with Esp32 module to show current prices of any cryptocurrency like Bitcoin, Dogecoin, etc

ESP32 Cryptocurreny Ticker Introduction This project shows how to interface Nokia 5110 LCD with Esp32 module to show current prices of any cryptocurre

Aniket Katkar 20 Jun 16, 2022
PACMAN for Raspberry Pi Pico (QVGA LCD)

PACMAN for Raspberry Pi Pico ラズベリーPi PicoにQVGAの液晶を接続して動作する本格的なパックマンです。 小型スピーカーを接続して音声も鳴らせます。 とてもシンプルな回路なので、簡単に製作することができます。 液晶は240x320ドット、コントローラにILI934

null 36 Sep 16, 2022
A simple tool using PC mouse via USART to control MCU and LCD/OLED (with LVGL library), if your screen cannot be controlled by touch.

LVGL_USB_Mouse A simple tool using PC mouse via USART to control MCU and LCD/OLED (with LVGL library), if your screen cannot be controlled by touch. 如

k_ying 5 May 5, 2022
The ultimate battery tester with ESR measurement and discharge graph. Based on an Arduino Nano and a 1602 LCD.

Ultimate-Battery-Tester Version 1.0.0 Features Measures the ESR (equivalent series resistance) of the battery. This is an idicator of the health of th

Armin 10 Nov 1, 2022
USB serial TTY for the Arduino Uno with ILI9341 LCD screen shield

ILI9341TTY USB serial TTY for the Arduino Uno with ILI9341 LCD screen shield [video] Semigraphics, ANSI, unicode, and an Arduino LCD-screen terminal I

M Rule 72 Sep 30, 2022
F Graphics Library (FGL) is a small graphics C++ portable library for LCD displays on embedded systems

F Graphics Library (FGL) Full documentation: fgl.docsforge.com (By Filipe Chagas) F Graphics Library is a C++ library that I created for use in embedd

Filipe Chagas 9 Oct 31, 2022
An Arduino library to control 2-bit (4 gray level) LCD displays

TwoBitDisplay (2-bpp LCD library) Project started 10/23/2021 Copyright (c) 2021 BitBank Software, Inc. Written by Larry Bank [email protected] The pur

Larry Bank 8 Mar 21, 2022
LCD capture for Rigol DS1074 using UVC on Cypress FX3

UVC Scope Stream LCD screen of your Rigol DS1074 using UVC to your PC. UVC video capture This repository contains source code for Cypress FX3 UVC vide

null 12 Nov 19, 2022
See your system information on LCD with Arduino!

Nodejs Arduino System Info See your system information on LCD with Arduino! You can see RAM usage, and CPU usage. Requipments: An Arduino Board. [ You

Akif9748 4 Jan 14, 2022
This repository is a study repository to implement the LCD 16x2 in my project below

This repository is a study repository to implement the LCD 16x2 in my project below. Index ?? About ?? Functionalities ?? Deploy ?? Requirements ?? Pi

Rickelme Dias 3 Jun 7, 2022
Import of the DIY Dynamic Template v2, retrieved from the Internet Archive

Dynamic Templates This is a copy of the D*I*Y Planner Dynamic Template application that was posted to diyplanner.com/node/6210 back in 2009,

Trammell Hudson 21 Aug 7, 2022
ESP32 based DIY word clock project

Wordclock ESP32 based DIY wordclock project TL;DR: check out this ✨ demo video ✨ Another take on the classic DIY word clock. This one requires a laser

null 39 Nov 9, 2022
Arduino firmware for DIY haptic gloves. Officially compatible with LucidVR gloves.

lucidgloves-firmware This repo contains the arduino firmware as well as the STL files for Prototype 3 of the LucidVR glove prototype. This is a finger

null 1.6k Nov 25, 2022
Arduino/ESP32 firmware for DIY haptic gloves. Officially compatible with LucidVR gloves.

Arduino/ESP32 firmware for DIY haptic gloves. Officially compatible with LucidVR gloves.

null 1.6k Nov 25, 2022