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:
- GND=GND
- 3.3=3.3
- RX=RX
- 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)
- Zet GPIO25 op SerBr RX
- Controleer of GPIO27 op Output Hi staat
- Save
- Ga naar Tools → Console
- Voer in commando SSerialMode 3
- Dan regel aanmaken voor na herstart:
- Rule1 on system#init do Backlog SSerialMode 3; DspLine1 [WTS01#Temperature]; DspLine2 [WTS01#Temperature] endon
- Rule1 1
- Daarna herstarten met bijv. Restart 1
Zwarte temperatuur en luchtvochtigheidssensor (THS01)
- Zet GPIO25 op SI7021
- Controleer of GPIO27 op Output Hi staat
- Save
- Ga naar Tools → Console
- Voer in commando DhtDelay 500,40
- Dan regel aanmaken voor na herstart:
- Rule1 ON System#Init DO DhtDelay 500,40 ENDON
- Rule1 1
- 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.
