ESPresense Bluetooth-Proxy (Aktiv) mit einem Shelly 1 Mini Gen3

Salü :slight_smile:

Schon lange hab mich damit beschäftigt ein Präsenz-System ins Haus zu integrieren, bin aber nicht wirklich damit weiter gekommen, da vieles an Bastelei ähnelt. Sinn des Ganzen ist zu bemerken wenn alle schlafen (anhand der Smartphones) bzw. ein Dashboard zu bauen was den entsprechenden Raum anzeigt wenn man ihn betritt bzw. drin ist. Wir haben ein altes iPhone als “Fernbedienung”, wenn das jetzt noch je nach Raum das passende anzeigt, ist das schon ein Mehrwert :wink:

Meine für mich grösste Abschreckung war der Aufwand der Hardware:
Man braucht einen ESP32, ein USB-Netzteil, das passende Kabel, eine freie Steckdose, eventuell ein Gehäuse für den ESP und so weiter. Damit verbunden komme ich für die ganzen Teile auf ca.15 € wenn ich nicht bei alibaba einkaufen will. Daher dachte ich mir, es muss doch eine Alternative geben die was hermacht.

Letztendlich nach ganz viel google, war der Shelly 1 Mini Gen3 meine Wahl. Er ist sehr klein, kann irgendwo mit reingebaut werden, sei es hinter eine Steckdose, Lichtschalter oder wo auch immer Platz und 220V vorhanden sind. Theoretisch sogar in einen Toaster (unabhängig davon ob das sinnvoll ist). Der Shelly hat einen ESP32 und kostet in der Schweiz bei Alternate nur 13CHF, im 8er Pack nur 11CHF.
Damit bin ich preiswerter als alles selbst basteln zu müssen.

Nun zur Frage, wie bekommt man da ein ESPresense drauf?
Man muss wissen, der Shelly ist danach kein Shelly mehr, da die Firmware keine ESPHome-Firmware ist und man so den ShellyPart nicht mit integrieren kann. (bzw. ich zumindest nicht :wink: )

Der Shelly wie gesagt ist sehr klein und lässt sich mit einem sehr dünnen Schraubendreher ganz leicht öffnen

Was es noch benötigt, aber viele denke ich haben einen daheim, ist ein CP2104 Programmer.
Den da zum Beispiel

Ein paar alte Dupont Kabel in weiblich und eins in männlich machen das ganze noch einfacher.


Das rote Kabel ist das männliche, was benötigt wird um den Bootloader zu starten, männlich deshalb weil man dann neben den normalen weiblichen GND auch das Rote mit GND verbinden kann.

Nun kommt der Teil mit den ruhigen Fingern :laughing:
Das Pinout ist bei ESPHome gelistet, jetzt muss der Lötkolben her um die Litzen seeeehr sorgfältig an dem Shelly zu löten (ich verzichte jetzt auf eine waghalsige Konstruktion um mir das Löten zu sparen).
PinOut Shelly
RX und TX nicht verkehrt rum einstecken, das RX und TX auf dem Pinout müssen auch genauso an den Programmer gesteckt werden. Normalerweise macht man ja RX zu TX und TX zu RX.

Nach der Ruhige-Finger-Lötaktion sieht das dann so aus:

Dann…das rote Kabel mit GND verbinden, ab in den Rechner damit, espresense.com/firmware aufrufen, und Connect drücken
Das gewohnte Popup mit den gelisteten COMs öffnet sich, den richtigen Port auswählen und warten.

Bei der Frage ob das Device gelöscht werden soll…ja, soll es.

Jetzt kannst du das rote Kabel schon vorsichtig abziehen.

und fertig :slight_smile:

Wenn das rote Kabel vorher abgezogen wurde kommt jetzt noch die Frage nach dem WLAN, alternativ kannst du das eintragen wenn du dich mit dem AP des ESPresence verbindest.

Na dann…viel Spass beim verstecken des kleinen Bluetooth Proxies :slight_smile:

Achja…Kabel ablöten und Shelly in sein Gehäuse packen versteht sich ja von selbst :wink:

6 „Gefällt mir“

Besten Dank an @der_Micro für die Beschreibung und Inspiration.
Ich habe es dir heute gleich getan und zwei Shelly Minis geflashed.

Ich habe einen CP2102 verwendet und nach dem Shelly PinOut TX mit RX verbunden und RX mit TX … andersrum startet das Löschen vom Shelly erst garnicht.
Den RST konnte ich bei meinem CP2102 nicht anschließen (eine Lötstelle weniger🥳)

Grüße

Na das ist doch super. Ob nun RX zu RX / TX zu TX oder wie normal, sind ja nur 2 Versuche nötig :wink: Ich werde das mal bei Gelegenheit noch mit ESPHome dokumentieren, da knobel ich noch (vermute ein Bug) wie ich den doppelten Flash nutzen kann den der Shelly hat.

Öhm, kennt man doch seit gefühlt hundert Jahren, wenn man sich mit der seriellen Schnittstelle beschäftigt: Tx->Rx, Rx->Tx …

Ja, aber mit meinem CP2104 Programer ist es eben andersrum, wahrscheinlich nach dem Motto “Stecke bitte hier RX an”, deswegen hab bei dem Teil RX zu RX und TX zu TX verbinden müssen damit der Transfer funktioniert

Asche auf mein Haupt. Ist bei mir auch so. Ich hatte eine “Lötbrücke” zwischen RX und TX, daher ging gar nichts - klar. Da ich offensichtlich den gleichen Adapter wie Du habe, verhält sich das Ganze gleich …

Nachtrag:
Müsste ich den Shelly mit ‘ESPresense’ auf einem Handy nicht per Bluetooth ‘sehen’?
Per WLAN ist er erreichbar und funktioniert wohl.

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Nein, der ist nur sichtbar wenn du mit nem iPhone diesen IRK- Key haben willst, wenn du im ESPresence auf „Enroll Device“ klickst wird der kurz via Bluetooth sichtbar.

Ich habe leider keine “Apfelgeräte”, geht das auch mit Android?
//GG

Steht hier

1 „Gefällt mir“

Hallo Mirco,
ich muß noch einmal auf das Thema zurückkommen und ich hoffe, dass ich Dich nicht nerve :confused:
Mein Ziel ist es, den Gardena Bluetooth-Bewässerungscomputer in Homeassistant einzubinden. Mit einem ESP32-MiniD1 geht das halbwegs wenn ich den ESPhome BT-Proxy flashe.
Ich möchte aber gerne den Shelly-Mini verwenden, da ich diesen ohne Aufwand in eine Unterputzdose reinpacken kann ohne ein zusätzliches Netzteil zu benötigen.
Man könnte natürlich den ESP-D1 mit einem Mikronetzteil verlöten, da gibt es aber Probleme, weil die 5V des Netzteils nicht wirklich sauber ist.
In der Zwischenzeit habe ich ca. 2 … 3 Shellys ‘zersägt’ - besser gesagt zerlötet.
Der ESPhome-BT-Proxy läuft nicht auf dem Shelly, weil die Prozessorvariante des Shellys nicht unterstützt wird (oder kann man den austriksen?).
Egal, funktioniert ESPresense wirklich als Proxy oder scannt der nur Geräte in der Umgebung? Den Gardena"Computer" konnte ich bisher nur mit dem ESPhome-BT-Proxy auf einem ESP32-Board einbinden aber nicht mit hilfe des Shellys und ESPresence.
Ich sehe in zware unter http://<adresse_des_shellys>/ui/#/fingerprints und wenn ich ihn wegtrage ändert sich auch die (fiktive) Entfernung. aber als Proxy im HomeAssistant arbeitet der Shelly nicht.
Was mache ich falsch?

LG, Gerald.

der Shelly ist von Haus aus ein Proxy für Bluetooth, da musst du gar nichts flashen. Einfach bei dem Gerät auf Konfigurieren klicken und dann Bluetooth auf aktiv oder passiv stellen

Vielen Dank für den Tipp. Das habe ich schon viele Male versucht. Ein ESP-D1Mini ESPHome-Proxy funktioniert mit meinem Gardena, der Shelly nicht :confused:

Frage an Leute mit Gardena BT: Habt ihr den “BT Bewässerungscomputer” mit dem Shelly Mini als Proxy schon mal zum Laufen bekommen?

Ich brauche den Schelly, weil ich keinen Platz für ein USB-Netzeil habe - nur eine Unterputzdose, in der ein Schlter sitzt, aber noch genügend Platz für den Schelly ist.

hmm seltsam…würde mir nur noch die Option einfallen, dann auch ESPHome drauf zu flashen und dort dann den Proxy aktivieren

1 „Gefällt mir“

Das habe ich auch schon probiert, aber der WEB-Flasher für den ESPhome Proxy ‘sagt’ mir, dass die Plattform - ein ESP32-C3 - nicht unterstützt wird …
Keine Ahnung, wie oft ich schon hin- und hergeflasht habe.

HINT: Es ist eine gute Idee, vor dem ersten Flashen ein Backup mit dem ‘esptool’ zu ziehen, weil es schwierig ist, die originale Firmware im Netz wiederzufinden …

Man braucht wahrscheinlich keinen Shelly, aber er ist die beste Wahl, das Ding überbrückt etliche Meter die kein ESP aus der Bastelkiste schafft. Wie auch immer sie das gemacht haben :grinning:
Aber, es geht nicht nativ, man muss ein ESPHome draufprügeln. Der C3 wird unterstützt, auf dem Github von ESPHome gibts den Code dafür, in einer anderen Ecke der Bluetooth Doku steht dann auch wie man den Scanner in Betrieb nimmt damit sich WLAN und Bluetooth nicht streiten (wegen dem einem Core)

Sitz grad am Handy, ich verlinke das dann in Kürze vom PC aus

Etwas später:

in ESPHOME manuell ein Gerät erstellen, ESP32-C3 auswählen und dann das DevKit:
Dann folgender Code rein:
der da
(Nicht wahllos alles überschreiben, wegen den OTA Key etc)

und noch folgende Anpassung damits nicht hakt:
ganz unten (Use on single-core chips)

und das ganze dann über USB draufpappen, wenn es drauf ist kannst du in Zukunft das ganze wie WLAN machen

1 „Gefällt mir“

Hi ich hab bei mir den shelly plus 1 laufen für 2 gardena bluetooth Geräte. Keinesfalls funktioniert das Gerät mit akutellem bluetooth scan.
OTA Flashen hat auch nicht funktioniert. Dir bleibt nur das löten über, dann mit Programmer flashen.
Anbei noch mein aktueller Code, da die Adresse vor wenigen Tagen geändert wurde

substitutions:
  name: esp32-bluetooth-proxy-d280e4
  friendly_name: Bluetooth Proxy Shelly
packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: 0yLiLtKB30r5158LMZe21fQH28FMyKgMQB/Mk7oJaD0=


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Hallo @der_Micro ,
ich möchte shelly 1 pm mini gen3 BT proxy für Ortung in den Zimmern verwenden. Habe da zuerst an bermuda gedacht, weil das wohl ohne flashen gehen soll, möchte aber mal ESPresence versuchen, da das mit room map wohl genauer sein soll.
Da ich was flashen angeht noch Laie bin und auch das Löten vermeiden will, kann man den Shelly nicht auch OTA flashen, mit ESPHome über tasmota soll das ja auch gehen?
Also z.B. tasmota installieren und dann OTA die ESPresence firmware?
Geht das? Oder stelle ich mir das zu einfach vor?

Und kann ich dann noch die Schalter- und PM Funktion des shelly nutzen, oder ist die dann weg?

Yesterday I flashed five Shelly 1 gen3’s and two Shelly 1 mini gen3’s. Initially I bricked one when I tried to flash one after completing the 8th step in GitHub - tasmota/mgos32-to-tasmota32: ESP32 Mongoose OS to Tasmota32 OTA updates for Shelly, meaning I did the auto-configuration and then tried to upload the esp32c3.bin file from espresence and another one by “filling auto data” from my iphone for wifi settings in tasmota settings. I didn’t have any TTL adapter on hand so flashed them using just a random ESP32 I had on hand at the time. You can do that just by connecting the EN pin to GND. It will act as a serial/TTL adapter. You have to connect TX/RX for that matter of course, but that’s besind the main point…
First you need to install tasmota according to the link I shared above, but MUST skip the auto-configuration part, at the time you reached the step 8, you need to upload the espresence firmware. It will return you to the main screen. Fear not! The process requires to be repeated twice. After the second time you upload the firmware, it will take a bit of time (probabably a minute or a bit more) and then you’ll be able to connect to your new shiny espresence node via wifi.
Even after setting the correct GPIO pins for switch/button, manipulation of them wasn’t represented in the HA, so these devices are dedicated solely for presence detection. There are no control over relays