Yeah was $68 + $27 USD shipping to the US, pre-ordered 2 for testing (and to support EST) - already have a couple FP1's onhand which work well. Those are $50 USD.
I've had my 10 units for months. I just tried setting them up tonight, and haven't been able to get the actual entities work yet.
You can flash firmware configured for 1) Home Assistant, or 2) SmartThings. The ESPHome driver in HPM has specific support for this device.
When using the EP1 in HA-mode, the ESPHome driver in HE can communicate, but no entities appear.
When using the EP1 in ST-mode, the ESPHome driver cannot communicate, but interestingly-enough the EP1 then has its own UI you can access, like Tasmota.
If I figure this out, I'll report back.
btw temp and illuminance do report right out the box.
Yeah I know that. I'm just saying it's not as obvious as ZigBee and zwave. Just trying to find out how to get this to pair without smart things or HA. I can't find any instructions. Plus you don't have to be a dick about it. Just asking the question.
For anyone reading this here in this thread, it's a rather simple process of configuring via the browser applet in the EP1 documentation. This allows you to upgrade the code/firmware, and configure Wi-Fi.
From there, you would download the ESPHome drivers from HPM.
Not being a dick. I was merely pointing out that if there's any question whatsoever as to whether this device uses Zigbee, Z-Wave, or Wi-Fi, even after making the purchase, then said individual would really do well for themselves to take a deep-dive into the product documentation and perhaps watch any number of the super helpful YouTube videos from the creator, and other reviewers.
I finally got the PC to recognize the ep1, but now I having to figure out how to get the sensors to detect right with the custom driver the other guy made, Only showing illumination and tempature currently. YAY. :-/
I had the same problem (no entities and therefore no state info) and have now got it working.
In case anyone else is trying to get it working, the problem (at least in my case) was in the ParseKeys function in the driver. It was trying to search for parts of strings to identify which type of entity it's being told about, but nothing matched because it was expecting them to contain an underscore and none of them do. Maybe something changed in the firmware since the driver was written.
To fix it I just made it match exact strings instead, so my ParseKeys function now looks like this:
void parseKeys(final Map message) {
if (logEnable) { log.debug "ESPHome entity: ${message}" }
if (state.entities == null) { state.entities = [:] }
final long key = message.key as long
switch (message.objectId) {
case 'illuminance':
// Illuminance Sensor
state.entities['illuminance'] = key
break
case 'mmwave':
// Millimeter wave radar sensor
state.entities['mmwave'] = key
break
case 'occupancy':
// Occupancy Sensor
state.entities['occupancy'] = key
break
case 'pir':
// Passive Infrared Sensor
state.entities['pir'] = key
break
case 'temperature':
// Temperature Sensor
state.entities['temperature'] = key
break
case 'humidity':
// Humidity Sensor
state.entities['humidity'] = key
break
case 'esp32_status_led':
// ESP32 Status LED
state.entities['status_led'] = key
break
case 'everything-presence-one_safe_mode':
// Safe mode switch
state.entities['safe_mode'] = key
break
case 'mmwave_distance':
// Millimeter wave radar sensor distance
state.entities['mmwave_distance'] = key
break
case 'mmwave_led':
// Millimeter wave radar sensor LED
state.entities['mmwave_led'] = key
break
case 'mmwave_off_latency':
// Millimeter wave radar sensor off latency
state.entities['mmwave_off_latency'] = key
break
case 'mmwave_on_latency':
// Millimeter wave radar sensor on latency
state.entities['mmwave_on_latency'] = key
break
case 'mmwave_sensitivity':
// Millimeter wave radar sensor sensitivity
state.entities['mmwave_sensitivity'] = key
break
case 'mmwave_sensor':
// Millimeter wave radar sensor switch
state.entities['mmwave_switch'] = key
break
case 'restart_everything-presence-one':
// Restart everything switch
state.entities['restart'] = key
break
case 'uart_presence_output':
case 'uart_target_output':
// ignore
break
default:
log.warn "ESPHome entity not supported: ${message}"
break
}
}
Not claiming it's perfect or even "correct", just saying it seems to have worked for me.
I just found another issue. It wouldn't use the DHCP reservation I set for it so it kept changing IP address every time it rebooted so the driver lost the connection with it.
After investigating it looks like the MAC address the router shows in the DHCP reservations list isn't the right one so it was treating it like any other DHCP client without a reservation.
Documenting my fix here as much for my own benefit as anything as I'm bound to forget what I did
I ran:
arp -a <ip address of sensor>
Which gave me a different MAC address to the one shown in my router's reservations. Updated the DHCP reservation on the router to use the new MAC address and now it seems to work.
All this could be something to do with my network setup though so it might not be the same for anyone else.