Kilian Eller



This terrarium is for a corn snake and can be used as a template for different terrariums. I mention on this page why I used different construction methods, but also what problems occurred and what I would improve next time.

Most of the products I use have a link, either to the manufacturer or where I bought this (Amazon/OBI). 



Cordless screwdriver

for drilling and screwing.


for screws in T20.

Wood drill

to pre-drill for the screws, otherwise the OSB panels could crack (~3 mm)


to cut out the air openings.

Sanding machine

I had a belt sander. This is used to grind the OSB boards outside (avoid splinters) and the edges (very sharp edges).


for the nails on the grids.

Side cutters

for cutting to size for the grids.


can help if you work alone (see pictures of building)

Cartridge pistol

for the assembly adhesive.

Folding rule

because you have to measure something from time to time.

Craft Knife

to cut the polystyrene and PU foam to size (inner wall). Here a styrofoam cutter/ hot wire cutter may be better.


a carpenter or mason's pencil is better visible through the thick lead than "normal" pencils.


eg a construction ruler for straight lines, I had simply taken 2 aluminium rods for this.

Brush Set

the big ones are best because of their relatively hard bristles, the small ones for corners that are difficult to reach. Both to apply the epoxy resin and for the tile adhesive, so I recommend cheap ones here, because you can throw them away afterwards.


because the epoxy resin can cause skin problems and allergic reactions, I strongly recommend to use gloves. Personally I had a rash on my arms and had to have a doctor prescribe me an ointment.



here I used (and almost used up) the Spax installation screws 4,5x60 150 pieces package. Reason: the screws are very long and hold well in the OSB boards, and I find Torx better than cross slot.


i used a few of these to fix the ventilation grills, because it is easier to fix with them than with screws and they are not exposed to any stress.


everything in 12mm thickness, back and sides in 2 parts, otherwise too big to transport by car and easier to assemble.

  • 4* 90 x 60 cm (sides right, left)
  • 120 x 60 cm (floor)
  • 117.6 x 57.6 cm (ceiling)
  • 20 x 117,6 cm (top front)
  • 12 x 117,6 cm (bottom front)
  • 2* 40 x 117.6 cm (intermediate struts)
  • 2* 90 x 1176 cm (back side)

Wooden Slats

also called substructure batten. to reinforce the panel construction. The battens are 19 mm x 44 mm x 2500 mm and must be cut to:

  • 4* 174,8 cm (corners)
  • 3* 113,8 cm (reinforcement front, rear)
  • 2* 51,4 cm (reinforcement right, left)

Grid/ Sheet Metal

to cover the ventilation slots. The linked one is well bendable, but strong enough so that the snake cannot escape. Cut the whole thing to about 2* 12 x 44 cm (preferably a little bit bigger at first and later cut off the excess).

Clear varnish

the clear varnish is applied on the outside to protect the wood, e.g. from some moisture.


for thermal insulation and later still the interior construction. In 5 cm thickness for the sides for insulation, thicker for interior decoration.


is used for the interior construction and moulds and thus better holds the polystyrene pieces on the back wall. Depending on how the size of the terrarium and how detailed the interior should be.

Mounting adhesive

stick the styrofoam to the wall, you need about 2 pieces. For this you need a cartridge gun (see tools).

Tile adhesive

forms the structure of the back wall, 5kg should be enough here - otherwise you can do the whole thing on 2 times.

Epoxy resin with hardener

about 5kg was used by me. This makes everything waterproof, both the floor and the tile adhesive. As an alternative for the floor there would also be liquid film.


e.g. play box sand is thrown on the not yet dried epoxy resin, this makes the wall nice and rough, so that the snake can climb well later.

Glass Guide

here the upper rails are a bit lower, because the glass is lifted to the top. You need

  • 4* 117,6 cm (top)
  • 4* 117,6 cm (bottom)
  • 2* 97 cm (sides)
The width must match the glass, I have it for 4 mm glass, because then it fits very well on the wood (see pictures).
A good alternative would be a glass guide on rollers, but it's very expensive.


is preferable instead of plexiglass in any case, because plexiglass discolors and can bend. It should be safety glass, in case it breaks. Esg Glas is a safety glass, which is very shock resistant and copes well with temperature changes (Source).
4mm thick ESG glass (with polished edges) is used by me, too thick glasses could be too heavy for the glass guide.

  • 2* 97,5 x 61 cm
  • 2* 1175 x 19 cm


The project was planned with Sketchup , also roughly how the lights are arranged later.
The size is 120 cm x 180 cm x 60cm (W x H x D), a larger width like 140 cm + would be better. These dimensions are much more than the minimum dimensions for a corn snake, but the animal really uses the whole space.
There are bars at the top and bottom to prevent the glass from being too heavy, otherwise it would not be easy to push it. If you use guide rails with rollers this should not be necessary.
The ceiling is recessed by 4 cm to hide the electronics later.
It is also important to check the electronics before the interior work.





Due to the construction, with only screws without glue, parts can be replaced very easily in case of problems. For moisture problems, for example, the bottom plate can be completely replaced in a few hours (see picture gallery).The terrarium is very stable and has survived a 120km trip in a van without problems, the height has also still fit through all doors. Carried it would be on the back and then also so put in a transporter, later simply pushed into the apartment with a slippery floor protection mat. I recommend staying on the first floor.Translated with (free version)


Guide rails with rollers would have been nicer, then you would not always need a suction cup and could additionally close it.
You could have painted/plastered the wood on the outside, but with OSB this is quite difficult due to the unevenness.There were moisture problems on the floor and you have to be careful when you plant plants, for example, that you do not damage the epoxy resin. Whether liquid film is better I do not know.


The terrariums from Hoppe-Terrarienbau always look very good, there are certainly other good providers. In any case, you can get a lot of inspiration here.


Rubber mat (floor protection)

is also called building protection mat, the linked fits very well in size with 125x80cm.

Suction lifter

suction lifter glass insert & move



Soldering station

for soldering on the sensors.


for soldering of course...

Hair dryer

for shrinking the heat shrinkable tubing


the one from lamp protection basket possibly a little small

Heat shrinkable tubing

I use them to protect the connection point directly at the sensor (even after 2 years I have not had a water problem because of this)

Copper strands

required quantity depends on whether you buy the temperature sensors with or without cable.

Insulating tape

for so that one can protect the connection points, the sensor cables.


to screw on the ceramic socket.

Cordless screwdriver

to screw on the lamp protection baskets.


a 10 mm drill bit for the ceramic sockets.


is needed to install the kermaic socket, more can be found there in the manual


As lighting I currently have 3 lamps, 2 daylight lamps in different strengths and a heat spot. Previously, I had only a heat spot and a led, however, the plants have grown very poorly. The size and the location (light / dark) of the terrarium determine the required lighting.

Full spectrum daylight lamps

2 pieces in 13W and 25W, so that the plants get enough light.

Trixie Neodymium

50w heat spot for heat development.

Trixie ceramic socket

since the lamps can get quite warm, 3 pieces.

AOFO socket strip

with this the single lamps can be time controlled, the usb connectors are used for the sensors.

Lamp protection basket

of this one for each lamp, otherwise the snake can burn itself. The size depends on whether the lamps are installed at an angle or straight. For the daylight lamps I used the larger, round ones and for the spot the smaller, square one.


DS18B20 Temperature sensor

these are available with or without cable.
I used 8 pieces, even if that is exaggerated.

Resistance 4.7 - 10kOhm

only one resistor is needed for this circuit, 4.7 - 10kOhm are possible for the DS18B29. I use 10kOhm

Jumper Wire

to connect the sensors to the board.

Adafruit htu21d-f

is used to measure the humidity, as an alternative there is still the DHT22 sensor, but this supplied me after 2 weeks no longer correct values.

NodeMCU ESP8266

this board can be used without programming knowledge and has Wlan directly on the board. Alternative would be a Wemos D1 (mini).


on it the sensors are linked with the board, is worthwhile itself very well for testing, since one can change simply. Later you could also solder the sensors to the board.


Red is3V3, black is GND.

The Violette Cable is connected to D3 and at the middle point of the DS18B20.
Blue is connected to D2 and SDA, Yellow to D1 and SLC of the HTU21D-F.


For the cables of the sensors I have drilled a large hole in the ceiling, very close to the rear wall.
As you can see on the circuit diagram, the DS18B20 sensors are connected in parallel, thereby saving much length of cable. These run all behind the Styrofoam and are protected at the soldering points by insulating tape. On the sensors themselves, I have a small heat shrink tube on each cable and another large one around the outside. It is important to test the sensors after the installation and before the interior removal if the sensors really work with the software because only then you can repair the wiring. Alternatively, you could also do the wiring behind the rear wall and would thus always have access.

Die Kabel der der niedrigen Lampe verläuft unterhalb des Styropors und geht dann durch ein Loch in der Decke. Hierfür musste ich das Kabel auseinander schneiden und hinterher wieder zusammenlöten.
Bei den Lampenschutzkörben habe ich eigene Schauben verwendet, da die mitgelieferten etwas klein sind, hier kann man auch evtl Löcher vorbohren da die Körbe erst nach dem Styropor und allem anderen Installiert wurden.

TODO Anleitung keramikfassung und Bild wie die Sensoren aussehen und das Loch


As software I use Sonoff-Tasmota.

Here you don't need to program anything, there is a web interface and a large community in case of problems.

Power strip

Since the power strip is a so-called China product and sends a lot of data to their server (including Wlan passwords), it is not put into operation as described in the user manual, but another software is installed before.

You can find more information in this Heise Ct Article read.

To do this, you use the Tuya-Convert.


  • Linux PC or Raspberry Pi with WLAN
  • Connect this PC to the Internet via LAN (important)
  • a smartphone

There are already a lot of tutorials about this, so I'll keep it short and only describe the version with the Raspberry Pi.

  1. Raspbian to install on an SD card
  2. You create a file in the boot partition (without file extension!) with the name SSH
  3. Make sure that the Rpi is connected via LAN and boot with the SD card
  4. Im Router die IP-Adresse herausfinden und per Putty verbinden
  5. Folgendes ausführen:
    # git clone
    # cd tuya-convert
    # ./
  6. Hier muss man dann den Anweisungen folgen und schon hat das Gerät eine saubere Software

Wenn etwas nicht funktioniert hilft der Heise Ct Article.

Nach dem Flashen habe ich im Router eingestellt, dass dieses Gerät eine feste IP zugewiesen bekommt.
Danach kann man über die Weboberfläche (IP im Browser in die URL Zeile eingeben) das Gerät Updaten.
Hier muss dann auch die Software richtig eingestellt werden, mit diesem Template:


Installiert wird es über Configuration -> Configure Other -> im Template Feld.

Dann kann man das ganze Testen, bei mir war wie auf der Template Seite beschrieben, die USB Ports “invertiert” hierzu braucht man dann dieses Template:


Die anderen Einstellungen nehme ich später vor.

NodeMCU ESP8266

Dieses Board zu flashen ist wesentlich einfacher, da man hier Zugriff auf einen USB Port hat.

  1. Tasmotizer herunterladen (im Releases Tab)
  2. Board per Micro USB an den PC Anschließen
  3. Tasmotizer starten, bei Select port den Port auswählen und Tasmotize drücken
  4. Auf Send Config gehen, die Wlan Daten eingeben und Ok drücken (andere Einstellungen wieder später)

Jetzt ist man hier schon fertig, muss nach dem Schaltplan oben noch das Board mit dem Breadboard verbinden, Strom verbinden und kurz warten bis es gebootet ist. Dann kann man wieder die IP auf statisch stellen und die Weboberfläche öffnen.

Wenn die Software die Sensoren nicht automatisch erkannt hat, kann man das in Configuration -> Configure Module Einstellen. 

Hier wählt man (die Zahl in den Klammern kann anders sein): 

  • Module Type – Generic (18)
  • D3 GPIO0 Button1 – DS18x20 (4)
  • D2 GPIO4 – I2C SDA (6)
  • D1 GPIO5 – I2C SCL (5)

alle anderen Felder sollten auf None (0) stehen.

Durch Save wird das Board neu gestartet und jetzt sollten die Sensoren alle erkannt werden. Wenn dies nicht funktioniert muss man die Schaltung nochmal überprüfen.


Es gibt verschiedene Möglichkeiten das Licht zeit gesteuert zu schalten, zusätzlich kann man auch wie hier gezeigt, das Licht mit Sonnenaufgang/Sonnenuntergang steuern, wodurch das Tier auch einen Leichten Sommer-Winterrhythmus hat.

Ich Zeige eine Variante ohne weiter Software zu nutzen und wie man es mithilfe von Node-Red macht, welches zB mit Home Assistant als Docker Container läuft.


Diese Einstellung findet man in der Weboberfläche der Steckdose unter Configuration - Timer.
Um Sunrise und Sunset richtig zu nutzen, muss man die eigene Position Einstellen, mehr Information in der Dokumentation unter Timer.

  • Enabled Timers: schaltet alle Timer an/aus
  • 1-10: verschiedene Timer
  • Ouput: Nummer der Steckdose (Achtung: nicht die Sensoren ausschalten)
  • Action: On/Off/Toggle - Veränderung des Lichts
  • Arm: dieser Timer wird ausgeführt
  • Repeat: Wiederholung an den Ausgewählten tagen
  • Time/Sunrise/Sunset: hier kann man zusätzlich noch einen Delay einbauen, meine EInstellungen seht ihr im Abschnitt zu Node-Red
  • Sun-Sat: Wochentage zum wiederholen

Automatisierung mit Home Assistant

Mit Home Assitant kann man die Daten der Sensoren graphisch Darstellen und die Steckdosen zB mittels Node-Red ansteuern.
Hierfür benötigt man einen MQTT-Server und muss die SonOff/Tasmota Software richtig einstellen, dazu gibt es viele simple Tutorials im Internet.
Mein MQTT Server läuft wie auch Node-Red in einem Docker Container als Home Assistant Add-On.

Node-Red mit Home Assistant

Ich nutze Node-Red in Home Assistant, es gibt jedoch auch andere Möglichkeiten.

Die Zeiten werden über einen Big Timer eingestellt:

  • Wärme Spot
    • An Sunrise 160 Minuten Offset
    • Aus Sunset -160 Minuten Offset
  • Oben
    • An Sunrise, 45 Minuten Offset
    • Aus Sunset, -45 Minuten Offset
  • Unten
    • An Sunrise, kein Offset
    • Aus Sunset, kein Offset

Der Switch erkennt ob der Timer An oder Aus ist.
Includes Current State wird erkannt ob die Lampe aktuell an oder aus ist und mit Call Service wir die Steckdose an- oder ausgeschaltet.


Die Daten der Sensoren können entweder über deren Weboberfläche angesehen werden, oder über eine Zusatzssoftware dargestellt werden.
Wie man an den Werten schön sehen kann gibt es ein gutes Temperaturgefälle im Terrarium, wodurch die Schlange sich Ihre gewünschte Temperatur aussuchen kann.

  • Bodentemperaturen zwischen 20-22 °C
  • Mehrere Stellen mit 25-26 °C
  • Einen Platz mit 25-26 °C oder 29-30 °C
  • Unter dem Wärmespot 32-33.5 °C

Sollten die Daten sich nicht aktualisieren (zB der Sensor hat einen Fehler) könnte man zusätzlich über Node-Red die Sensoren neu starten. Dies ist mir schon ein/zweimal passiert, jedoch habe ich noch keinen automatisierten Neustart eingebaut.

Hier sind meine Sonoff MQTT Einstellungen und die dazu passenden Configuration.yaml Einträge für Home Assistant.

Sonoff MQTT Configuration
Topic: terrariumleiste
Full Topic: %prefix%/%topic%/

  – platform: mqtt
    name: “terrariumoben”
    command_topic: “cmnd/terrariumleiste/POWER2”
    state_topic: “stat/terrariumleiste/POWER2”
    availability_topic: “tele/terrariumleiste/LWT”
    payload_available: “Online”
    payload_not_available: “Offline”
    payload_on: “ON”
    payload_off: “OFF”
    state_on: “ON”
    state_off: “OFF”
    retain: false
  – platform: mqtt
    name: “terrariumunten”
    command_topic: “cmnd/terrariumleiste/POWER1”
    state_topic: “stat/terrariumleiste/POWER1”
    availability_topic: “tele/terrariumleiste/LWT”
    payload_available: “Online”
    payload_not_available: “Offline”
    payload_on: “ON”
    payload_off: “OFF”
    state_on: “ON”
    state_off: “OFF”
    retain: false
  – platform: mqtt
    name: “terrariumspot”
    command_topic: “cmnd/terrariumleiste/POWER3”
    state_topic: “stat/terrariumleiste/POWER3”
    availability_topic: “tele/terrariumleiste/LWT”
    payload_available: “Online”
    payload_not_available: “Offline”
    payload_on: “ON”
    payload_off: “OFF”
    state_on: “ON”
    state_off: “OFF”
    retain: false
  – platform: mqtt
    name: “staubsauger”
    command_topic: “cmnd/terrariumleiste/POWER4”
    state_topic: “stat/terrariumleiste/POWER4”
    availability_topic: “tele/terrariumleiste/LWT”
    payload_available: “Online”
    payload_not_available: “Offline”
    payload_on: “ON”
    payload_off: “OFF”
    state_on: “ON”
    state_off: “OFF”
    retain: false
  – platform: mqtt
    name: “tadoundsensoren”
    command_topic: “cmnd/terrariumleiste/POWER5”
    state_topic: “stat/terrariumleiste/POWER5”
    availability_topic: “tele/terrariumleiste/LWT”
    payload_available: “Online”
    payload_not_available: “Offline”
    payload_on: “ON”
    payload_off: “OFF”
    state_on: “ON”
    state_off: “OFF”
    retain: false

Sonoff MQTT Configuration
Topic: sonofft
Full Topic: %prefix%/%topic%/

  – platform: mqtt
    name: “terrarium_s”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“HTU21”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_h”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“HTU21”][“Humidity”] }}’
    unit_of_measurement: “%”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_0”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“DS18B20-1”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_1”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“DS18B20-2”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_2”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“DS18B20-3”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_3”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“DS18B20-4”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_4”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“DS18B20-5”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_5”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“DS18B20-6”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1
  – platform: mqtt
    name: “terrarium_s_6”
    state_topic: “tele/sonofft/SENSOR”
    value_template: ‘{{ value_json[“DS18B20-7”][“Temperature”] }}’
    unit_of_measurement: “°C”
    qos: 1


The electronics was a fun and learning project, although it is very exaggerated for corn snakes, which are relatively undemanding, but still you can implement these possibilities for other animals or on a smaller scale very easily, even without programming skills.
For example, you could time a sprinkler system and additionally link it to the values of a humidity sensor or send notifications when a lamp breaks, or turn on an emergency heat lamp, this could prevent problems with very temperature sensitive animals....


Notify of
Oldest Most Voted
Inline Feedbacks
View all comments
Luca Brünner

Also deine Seite ist ja mal Klasse! Gefällt mir richtig gut, wie du alles genau beschrieben hast zum Terrabau, werde ich auf jeden Fall weiterempfehlen!

Habe eine Frage zur Steckdose/Software.
Mit deiner beschriebenen Software und Steckdose ist es möglich jede einzelne Steckdose nach Zeit zu schalten und so hoch und runter zu dimmen, wie man es selbst einstellt?

Gruß, Luca

Would love your thoughts, please comment.x