Shelly - The Pill - was kann ich damit machen? Kompendium jetzt hier

Hier kommt in den nächsten Tagen / Wochen alles rein zur Pille^^ Hier das Video erst mal:

Jetzt jetzt gibt es seit geraumer Zeit etwas Neues, nämlich die Pille. Ja, und das Ding ist wirklich klein. Ich zeig dir das hier mal anhand eines 10 Cent Stückes. Und mit diesem Gerät kannst du wirklich so einiges anstellen. Das erste Schöne ist natürlich, du hast ein Gehäuse. Aber nicht nur das - es gibt einiges an Addons. Doch es gibt noch etwas neues - UART - in diesem Video zeige ich dir wie ich mit einem Script und der UART Funktion den Radarsensor LD2414 auslese und die Entfernung in eine virtuelle Komponente speichere.

Was ist drin? Ausser the Pill noch ein Kabeladapter für eben 3,5 Klinke, aber das war’s. Kannst du jetzt damit so viel anfangen? Schwierig. Ich empfehle dir deshalb auf jeden Fall minimum hier noch dieses Terminal Addon.

Der Integrationsprozess

Ganz normal an 5 Volt mit USB anschließen und dann wird das Gerät direkt entdeckt. Genauso straight forward wie bei anderen Shelly Geräten auch mit der App. So, und da sind wir in der Weboberfläche und werden direkt begrüßt mit der Konfiguration. Und du siehst es, da sind bis zu 5 DS18B20 möglich, das kennst du vielleicht schon. Und dann haben wir aber noch zusätzlich zweimal IO. Bluetooth, Range Extender gehen auch hier. Für die Temperatur gibt es was zu kaufen direkt eben bei Shelly - diese 18B20 eben mit dem Klinkenstecker. Das heißt, den können wir natürlich jetzt hier direkt mal anschließen und dann haben wir ein 18B20 direkt an der Pill angeschlossen. Und was machst du jetzt, wenn du mehr als einen anschließen möchtest? Auch da hat Shelly was parat. Einen Adapter für 5x Klinke - vorausgesetzt, ja, du hast fünf Stück DS18b20 davon natürlich auch bestellt funktioniert das out of the box. Du hast die Standard DS18B20 ohne Klinke? Kein Problem! Wago Klemmen mit gelb auf gelb, schwarz auf schwarz, rot auf rot. - dann das Addon und das kommt jetzt hier eben zum Einsatz und funktioniert. Also soweit ganz schön. können da natürlich auch drauf klicken und können hier noch ein Temperaturoffset und ein Delta Threshold mit einstellen. Und was war das mit dem IO? Was heißt das? Eingänge, Ausgänge. Du siehst es auch hier schon. Digitaler Input oder? 3,3 Volt Logic Level - wer so ein ESP oder so schon mal benutzt hat, der kennt das Ganze. Und jetzt kann ich eben die anderen zwei noch konfigurieren. Und hier können wir jetzt einfach sagen, okay, nutzen wir das mal als digitalen Output und schon erscheint hier auch etwas zum Schalten, das heißt on off. So, und wie testen wir das jetzt am besten? indem wir einfach hier eine LED anschließen. Das heißt, wir haben das jetzt bei der 2 angeschlossen und GW Ground. Dann drücken wir hier mal drauf. Ja, und du siehst, das ganze leuchtet. Also wunderbar.

Warnungen

Und jetzt ist es an der Zeit genau hier eine Warnung auszusprechen. Als Beispiel nehme ich mal diesen Ultraschallsensor. Der hat als Eingang 5 Volt. Sagst du alles gut? The Pill hat doch 5 Volt, hast du doch gerade gesagt, das ist richtig. Aber das ist ein Standard TTL, das heißt Transistor zu Transistor, das heißt der gibt hier dir auch 5 Volt aus und genau da ist der Casus Knaktus. Wenn du aufgepasst hattest, waren das 3,3 Volt bei the Pill eben, was den Eingang betrifft. Lass uns doch einfach mal das Dokument anschauen. So, hier sehen wir noch mal das Schema. Das heißt einmal USB-C rein und hier war ja das Addon und da hatten wir einmal Ground und die 5 Volt. Soweit so gut. und natürlich hier die Eingänge, Ausgänge 1, 2 und 3. So, das heißt, da kann man schon natürlich so einiges mit anschließen, aber was uns natürlich viel mehr interessiert, ist genau das. Das heißt, wann wird eben getriggert? Und du siehst das, es gibt das Low und das High.

Hier mal ein Dokument was einiges dazu erklärt: https://www.elektronik-kompendium.de/public/schaerer/pullr.htm Ist auf jeden Fall lesenswert. Also, du siehst es, wenn es höher als 2,48 Volt sind, dann wird es eben als High getriggert und kleiner eben als 0,83. Das ganze als Low. Aber auch max sind hier die 3,3 Volt - ergo wenn du da eben 5 Volt reinpowerst, dann kann es dir natürlich passieren, dass der Pill irgendwann Geschichte ist.

Wie kann ich 5V zu 3,3V ummünzen?

Eine Möglichkeit hast du bestimmt schon mal in der Schule gelernt und zwar z.B. Reihenschaltung von Widerständen etc. So, ich empfehle dir auf jeden Fall so ein Multimeter. Du siehst hier 2 kOhm. So, und dort sehen wir 1 kOhm. Also ungefähr das doppelte immer. Das heißt, du könntest das auch mit 10 kOhm machen. In dem Fall wäre das jetzt nicht weiter tragisch. Und Ja - 3,3 Volt. Wunderbar.

So, jetzt denkst du vielleicht, du hast so ein Spannungsreglermodul, da kannst du auch fünf wohl reingeben und würde stabilisiert 3,3 rauskriegen. Das funktioniert natürlich nicht, genauso wie hier irgendwie so ein Stepdown Wandler oder sowas, der das auch machen würde, aber die sind viel zu träge, zu langsam. Die würden natürlich hier was nicht gewährleisten, die Signale, die eben super schnell sind. Deswegen brauchen wir hier so ein Logic Level Shifter. Problem hierbei, ja, der braucht auf der einen Seite die 5 Volt und auf der anderen Seite brauch er die 3,3 Volt, damit er weiß, okay, das soll ich hier runter regeln. Also, was machst du am besten? Ja, du kaufst so ein Gerät als 3,3V Variante, denn das funktioniert auch. Oder du musst zumindest aufpassen, dass überall 3,3V dann entsprechend auch rauskommt, was Logik betrifft und du hattest vielleicht eben auch schon gesehen - der LD2410, das ist ein Radarsensor und auch der arbeitet hier mit den 5 Volt ohne Probleme, aber du kriegst eben die 3,3V raus und das ist doch schon mal schön.

Als nächstes ein Reedsensor, der schaltet nämlich dann, wenn hier ein Magnetfeld ist, können wir mal ganz kurz so machen. Einsatzmöglichkeiten? Z.B. ja ein Gaszähler bei dir zu Hause. Im Video haben wir noch ein kleines Skript so zum Aufwärmen, was das Ganze bei einer virtuellen Komponente speichert.

Der Reedkontakt. wird entsprechend an Input 1 und an Ground angeschlossen. Das heißt, wenn jetzt ein Magnetfeld sich nähert, dann wird das Ganze natürlich geschlossen. Das heißt, der Input wird auf Ground gezogen. Das kannst du übrigens beim Shelly auch entsprechend ändern, dass das eben umgekehrt ist.

Analog Addon

So und bevor wir jetzt eben zum Analog Addon kommen, sei noch mal ganz kurz angemerkt, dass es auch ohne funktioniert zwischen 0 Volt und 2,5 Volt. Das heißt, das ist eben Build In. Ja, und was machst du natürlich, wenn du jetzt beispielsweise bis zu 5 Volt hast? Hatten wir vorhin ja schon. Das kannst du mit Widerständen natürlich beeinflussen und kannst das eben j runter rechnen, bis du eben auf die 2,5 als höchsten Wert kommst. Das analoge Addon geht von 0 bis 30 Volt. Und wichtig ist auf jeden Fall, du brauchst auch hier das 5 Terminal Add-On, um sich eben zu verbinden. Ja, das heißt eben DC bis zu 30 Volt und ja, du siehst es schon Batterien oder so, das ist das einfachste. Analogeingang, aber auch hier hast du eben zwei Digitaleingänge, Ausgänge mit 3,3 Volt Logic Level. Wunderbar. Kannst also auch damit ziemlich viel anstellen gleichzeitig.

4 „Gefällt mir“

Moin! Habe diese Frage schon in den Kommentaren zum YouTube Video gestellt: Meldet sich das Ding nach Stromunterbrechung von selbst wieder an? Meine Pille steigt dann immer aus, ist offline, muss in der App gelöscht und dann wieder neu angemeldet werden. Gibt es eine Einstellung, die ich übersehen habe? Und ist dieser Kreis auf der einen Seite der Pille ein Knopf? Beim Drücke tut sich gefühlt nichts.

Ja das Gerät meldet sich nach einer Unterbrechung wieder an. Hast du bereits Addons dran die möglicherweise Probleme machen? Wenn nein - beim Support melden! Du meinst den Button? Damit machst du doch beispielsweise den Reset? Wie hast du denn den sonst gemacht? Siehe https://www.shelly.com/de/blogs/documentation/the-pill-by-shelly

grüsse, Jörg

Hallo Jörg!

Danke für die Antwort. Ich habe das Teil gerade neu angeschafft und noch keinerlei Erfahrung, benjtze Shelly aber an zwei Stellen im Haus mit einer schaltbaren Steckdose und einem Außentemperatursensor. Jetzt sollte noch ein Sensor in der Sauna dazustoßen.

Zunächst zum Button: Ich hatte gelesen, dass man damit einen Reset machen kann und es so auch versucht. Pille zeigt aber nicht, ob das dann auch passiert und ich merke beim Drücken nicht, dass ich einen Knopf betätige. Es gibt bei meiner Pille keinerlei feedback. Da gibt nichts nach oder klickt oder etc. Es ist als würde ich einen Legostein drücken. Ist das normal?

Nach einem Wechsel der Powerbank habe ich gemerkt, dass sie sich neu anmeldet. Ich bin aber auch näher an den Router gerückt. Die neue Powerbank schaltet sich leider ab, wenn kein Strom oder zu wenig gezogen wird. Beim Wiedereinschalten, meldet sich Pille aber wieder von alleine. Ich werde es jetzt doch noch mit Ladegerät und Verlängerungskabel (ich habe am Einsatzort keine Steckdose in der Nähe) probieren. Es hängt nur der Temperatursensor für die Sauna dran. Mehr brauche ich dort aber auch nicht.

Gruß

Klaus

Die Last von der Pille ist zu gering und die Powerbank schaltet ab. Google doch mal nach USB Load Resistor^^ Würde auch andere Möglichkeiten geben mit bisserl löten oder so aber da ich von ausgehe du bist da nicht so firm drin lass ich das mal hier weg als Lösung….lg

Danke! Die benutzte Powerbank hat zwei USB-A Ausgänge. Ich habe an den anderen Ausgang eine kleine USB Lampe angesteckt, die das Abschalten verhindert. Damit funktioniert jetzt alles.

Halo Jörg, ich war der Hoffnung, dass ich doch so viel Geschick habe The Pill als Zähler für meien Wasseruhr zu konfigurieren ich hab es zumindest so weit gebracht dass, es mir einen Impuls anzeigt wenn der Kontakt zwischn Ground und 1 geschlossen wird nur wie komme ich zu dem Script? Gruß Bernd

Hab grad einiges zu tun - werd am Wochenende mal schauen wo ich es habe - da ich da eh noch nen Video mit Gaszähler oder so versuchen will^^ Mal gespannt :wink: LG

Ich habe gerade mal ClaudeAI gefragt:

Hier ist eine vollständige Übersicht der Situation:


Shelly „The Pill" + Wasseruhr-Pulszählung

Das Problem: Kein nativer Pulse-Counter

The Pill by Shelly ist ein kompaktes Multi-Purpose-Gerät mit ESP32, USB-C (5V), Gen3-Funktionalität (Scripting, Virtual Components), digitalen I/Os (3,3V Logic Level) und Bluetooth. Shelly Cloud

Allerdings: In der Shelly-Community wurde explizit gefragt, ob The Pill den Pulse-Counter-Feature des Shelly Plus Uni bekommen könnte – aktuell ist der Shelly Plus Uni das einzige Shelly-Gerät mit nativem Hardware-Pulse-Counter. Shelly

Das bedeutet: Ein fertiges, offizielles Script für Pulszählung an The Pill gibt es nicht. Aber es lässt sich per Scripting selbst umsetzen!


Lösung: Script für The Pill via Digital Input + Virtual Component

Da The Pill über Virtual Components und Script.storage verfügt (persistenter Speicher über Neustarts hinweg) und per Shelly.addEventHandler auf Input-Events reagieren kann, Shelly lässt sich ein vollständiger Pulszähler selbst bauen:

// Wasseruhr Pulse Counter für Shelly "The Pill" (Gen3)
// Sensor am Digital Input (z.B. Reed-Kontakt oder Hallsensor)
// 1 Impuls = 1 Liter (je nach Zählertyp anpassen!)

let LITERS_PER_PULSE = 1;    // Liter pro Impuls (anpassen!)
let INPUT_ID = 0;             // Digital Input ID (0, 1 oder 2)
let STORAGE_KEY = "water_total";

// Gespeicherten Zählerstand laden
let totalLiters = 0;
let stored = Script.storage.getItem(STORAGE_KEY);
if (typeof stored === "string") {
  totalLiters = JSON.parse(stored);
}
print("Zählerstand geladen:", totalLiters, "L");

// Virtual Component (Number) als sichtbaren Sensor anlegen
// Einmalig via HTTP erstellen:
// POST /rpc/Virtual.Add  { "type": "number", "config": { "name": "Wasserstand L", "persisted": true } }

let counter = Virtual.getHandle("number:200");
if (counter !== null) {
  counter.setValue(totalLiters);
}

// Input-Events abonnieren (Flanke = Impuls)
Shelly.addEventHandler(function(event) {
  if (event.component === "input:" + INPUT_ID &&
      event.event === "single_push") {
    
    totalLiters += LITERS_PER_PULSE;
    
    // Speichern (alle 10 Impulse um Flash-Schreibzyklen zu schonen)
    if (totalLiters % 10 === 0) {
      Script.storage.setItem(STORAGE_KEY, JSON.stringify(totalLiters));
    }
    
    // Virtual Component updaten → sichtbar in App & MQTT
    if (counter !== null) {
      counter.setValue(totalLiters);
    }
    
    print("Impuls! Gesamt:", totalLiters, "L");
  }
});
```

---

### Wichtige Hinweise zur Einrichtung

**1. Digital Input konfigurieren**
Im Shelly Web-UI den gewünschten I/O-Pin auf **„Digital Input"** setzen und Modus auf `detached` (kein Relay-Kopplung).

**2. Virtual Component anlegen** (einmalig per HTTP-Call):
```
POST http://<shelly-ip>/rpc/Virtual.Add
{ "type": "number", "config": { "name": "Wasser Liter", "persisted": true, "unit": "L" } }

Die zurückgegebene ID (z.B. number:200) im Script eintragen.

3. Sensor-Typ am Zähler

  • Reed-Kontakt (Magnetimpuls) → direkt an Digital Input + GND

  • Hallsensor (S0-Ausgang) → ebenfalls direkt anschließbar

  • Debouncing nicht vergessen (The Pill hat keine Hardware-Entprellung)

4. MQTT / Home Assistant The Pill unterstützt MQTT, WebSocket und HTTP Shelly Cloud – der Virtual Component-Wert wird automatisch über MQTT publiziert und ist in Home Assistant als Sensor verfügbar.


Alternative: Shelly Plus Uni

Falls du den nativen Hardware-Pulse-Counter ohne Scripting bevorzugst: Der Shelly Plus Uni hat einen dedizierten Pulse-Counter-Eingang und unterstützt ebenfalls Scripting Shelly Europe – und ist dafür die robustere Wahl, da der Counter im Firmware-Level läuft und keine Pulse verliert.


Fazit: Ein fertiges Script speziell für The Pill existiert noch nicht offiziell, aber das obige Script ist für Gen3-Geräte direkt einsatzbereit.

Ich habe das allerdings für meinen Gaszähler (im Prinzip das gleiche) mit einer ESP-Hardware und Tasmota gelöst. Dort habe ich dann ein Script, was einen Tasmotazähler auswertet, umrechnet und per MQTT als Zählerstand und als momentanen Verbrauchswert published.

Sieht gut aus - ähnlich hatte ich das auch - muss aber an der ein oder anderen Stelle etwas modifiziert werden aber sehr guter Startpunkt dazu!

So ein Fenster/Türkontakt ist auch sehr gut für Pulsezählungen. Nutze bei mir eine modifizierten homematic Fensterkontakt (wegen der RF Verbindung, weil der Zähler hinter einer geschlossenen Wand liegt) und läuft jetzt etwas über 1 Jahr sehr stabil und zuverlässig. In HA habe ich dann ein kleines Script für die Umrechnung. Kennt ihr bestimmt auch, wollte das nur nochmal mit aufführen.

Danke für das Script ich bin heute leider ohne Erfolg dran gesessen wie und wo soll man die wichtigen Hinweise am Ende des Skripts einstellen?

Das ist ja ein Script von ClaudeAI, ich habe es nicht getestet.
### Wichtige Hinweise zur Einrichtung

**1. Digital Input konfigurieren**
Im Shelly Web-UI den gewünschten I/O-Pin auf **„Digital Input"** setzen und Modus auf `detached` (kein Relay-Kopplung).

**2. Virtual Component anlegen** (einmalig per HTTP-Call):
```
POST http://<shelly-ip>/rpc/Virtual.Add
{ "type": "number", "config": { "name": "Wasser Liter", "persisted": true, "unit": "L" } }

Die WebUI ist die Webbedienoberfläche des “The Pill” die rufst Du über die IP-Adresse auf.
Dort muss natürlich der Pin auf Input eingestellt werden.
Das Virtual Component geht auch über einen http-Befehl, Du musst nur Deine IP-Adresse von “The Pill” dort statt eintragen.

Hallo Jörg, ich hab das ganze jetzt doch mit einem Shelly Plus Uni gelöst mit dem Script hatte ich es nicht zum laufen bekommen.Aber trotzdem würden im mich auf ein Video freuen wie du es mit The Pill löst und ich bin mir sicher ich bin nicht der einzige :wink: Gruß Bernd