Inhoud

Tasmota

De Sonoff TMH316D werkt met Tasmota, maar het display werkt dan niet meer.

De instellingen gaan als volgt:

Installatie

Gebruik een 3.3V FTDI interface!
Sluit als volgt aan:

  1. GND=GND
  2. 3.3=3.3
  3. RX=RX
  4. TX=TX

Dan bij inpluggen van USB 5-8 seconden de knop indrukken
Dan flashen via https://tasmota.github.io/install/

Ik heb gekozen voor de standaard Tasmota

Configuratie

Omdat ik het display niet nodig heb en vooral de temperatuur uit wil lezen heb ik het volgende gedaan:

in Configuration → Other en dan bij Template:

{"NAME":"Sonoff THR316D","GPIO":[32,0,0,0,225,9280,0,0,0,321,0,576,320,9184,9216,0,0,224,0,9248,0,1,0,3840,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}

Dan Activate

Let op, dan verschijnen twee relais, dat klopt niet.

Onder Configuration en Template kun je bij GPIO4 relay2 uitschakelen en op None zetten.

Temperatuursensor

Waterdichte temperatuursensor (WTS01)

  1. Zet GPIO25 op SerBr RX
  2. Controleer of GPIO27 op Output Hi staat
  3. Save
  4. Ga naar Tools → Console
  5. Voer in commando SSerialMode 3
  6. Dan regel aanmaken voor na herstart:
    1. Rule1 on system#init do Backlog SSerialMode 3; DspLine1 [WTS01#Temperature]; DspLine2 [WTS01#Temperature] endon
    2. Rule1 1
  7. Daarna herstarten met bijv. Restart 1

https://github.com/arendst/Tasmota/discussions/24606

Zwarte temperatuur en luchtvochtigheidssensor (THS01)

  1. Zet GPIO25 op SI7021
  2. Controleer of GPIO27 op Output Hi staat
  3. Save
  4. Ga naar Tools → Console
  5. Voer in commando DhtDelay 500,40
  6. Dan regel aanmaken voor na herstart:
    1. Rule1 ON System#Init DO DhtDelay 500,40 ENDON
    2. Rule1 1
  7. Daarna herstarten met bijv. Restart 1

Sonoff THR316D uitlezen via Tasmota HTTP API

De Sonoff THR316D is geflasht met Tasmota32 en kan lokaal via de HTTP API worden uitgelezen.

Basis

De Tasmota HTTP API gebruikt dit formaat:

http://<ip-adres>/cm?cmnd=<commando>

Voor dit device:

http://192.168.1.214/cm?cmnd=Status%2010

Hierbij betekent Status%2010 hetzelfde als het Tasmota-consolecommando:

Status 10

Sensorwaarden uitlezen

Gebruik voor temperatuur- en vochtigheidswaarden:

http://192.168.1.214/cm?cmnd=Status%2010

Voorbeeld met curl:

curl -s "http://192.168.1.214/cm?cmnd=Status%2010"

De response is JSON. Afhankelijk van de aangesloten sensor staat de waarde onder bijvoorbeeld SI7021, WTS01 of een andere sensornaam.

Voorbeeldresponse:

{
  "StatusSNS": {
    "Time": "2026-05-24T12:00:00",
    "SI7021": {
      "Temperature": 21.4,
      "Humidity": 48.0,
      "DewPoint": 10.1
    },
    "TempUnit": "C"
  }
}

Alleen de temperatuur uitlezen met jq:

curl -s "http://192.168.1.214/cm?cmnd=Status%2010" | jq '.StatusSNS.SI7021.Temperature'

Alleen de luchtvochtigheid:

curl -s "http://192.168.1.214/cm?cmnd=Status%2010" | jq '.StatusSNS.SI7021.Humidity'

Bij een WTS01-sensor eerst controleren hoe de sensor in de JSON heet:

curl -s "http://192.168.1.214/cm?cmnd=Status%2010" | jq '.StatusSNS'

Relais uitlezen en schakelen

Status van het relais:

http://192.168.1.214/cm?cmnd=Power

Relais aan:

http://192.168.1.214/cm?cmnd=Power%20On

Relais uit:

http://192.168.1.214/cm?cmnd=Power%20Off

Relais togglen:

http://192.168.1.214/cm?cmnd=Power%20Toggle

Beveiliging

Als de Tasmota webinterface met gebruikersnaam en wachtwoord is beveiligd:

http://192.168.1.214/cm?user=<user>&password=<password>&cmnd=Status%2010

Let op: dit is HTTP zonder TLS. Gebruik dit alleen op een vertrouwd intern netwerk of IoT-VLAN.

Opmerking

Voor periodiek uitlezen via HTTP is een interval van 60 tot 300 seconden meestal voldoende. Voor continue integratie is MQTT netter, omdat Tasmota dan zelf volgens TelePeriod de sensorwaarden publiceert.